SimpleType.STRING };
CompositeType compositeType = new CompositeType(ThreadInfo.class
.getName(), ThreadInfo.class.getName(), names, names, types);
CompositeData data = new CompositeDataSupport(compositeType, names,
values);
ThreadInfo threadInfo = ThreadInfo.from(data);
assertEquals(values[0], threadInfo.getThreadId());
assertEquals(values[1], threadInfo.getThreadName());
assertEquals(GOOD_THREAD_STATE, threadInfo.getThreadState());
assertEquals(values[3], threadInfo.isSuspended());
assertEquals(values[4], threadInfo.isInNative());
assertEquals(values[5], threadInfo.getBlockedCount());
assertEquals(values[6], threadInfo.getBlockedTime());
assertEquals(values[7], threadInfo.getWaitedCount());
assertEquals(values[8], threadInfo.getWaitedTime());
assertEquals(values[9], threadInfo.getLockName());
assertEquals(values[10], threadInfo.getLockOwnerId());
assertEquals(values[11], threadInfo.getLockOwnerName());
StackTraceElement[] stackElements = threadInfo.getStackTrace();
assertEquals(GOOD_STACK_SIZE, stackElements.length);
for (StackTraceElement element : stackElements) {
assertEquals(GOOD_STACK_CLASSNAME, element.getClassName());
assertEquals(GOOD_STACK_NATIVEMETHOD, element.isNativeMethod());
assertEquals(GOOD_STACK_FILENAME, element.getFileName());