SimpleType.STRING, stackTraceArray, SimpleType.STRING };
CompositeType compositeType = getCompositeType(initialNames, types);
CompositeData data = new CompositeDataSupport(compositeType,
initialNames, initialValues);
ThreadInfo.from(data);
ThreadInfo threadInfo = ThreadInfo.from(data);
assertEquals(initialValues[0], threadInfo.getThreadId());
assertEquals(initialValues[1], threadInfo.getThreadName());
assertEquals(GOOD_THREAD_STATE, threadInfo.getThreadState());
assertEquals(initialValues[3], threadInfo.isSuspended());
assertEquals(initialValues[4], threadInfo.isInNative());
assertEquals(initialValues[5], threadInfo.getBlockedCount());
assertEquals(initialValues[6], threadInfo.getBlockedTime());
assertEquals(initialValues[7], threadInfo.getWaitedCount());
assertEquals(initialValues[8], threadInfo.getWaitedTime());
assertEquals(initialValues[9], threadInfo.getLockName());
assertEquals(initialValues[10], threadInfo.getLockOwnerId());
assertNull(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());