91 // Convert LockInfo[] and MonitorInfo[] to CompositeData[]
92 LockInfo[] lockedSyncs = threadInfo.getLockedSynchronizers();
93 CompositeData[] lockedSyncsData =
94 new CompositeData[lockedSyncs.length];
95 for (int i = 0; i < lockedSyncs.length; i++) {
96 LockInfo li = lockedSyncs[i];
97 lockedSyncsData[i] = LockInfoCompositeData.toCompositeData(li);
98 }
99
100 MonitorInfo[] lockedMonitors = threadInfo.getLockedMonitors();
101 CompositeData[] lockedMonitorsData =
102 new CompositeData[lockedMonitors.length];
103 for (int i = 0; i < lockedMonitors.length; i++) {
104 MonitorInfo mi = lockedMonitors[i];
105 lockedMonitorsData[i] = MonitorInfoCompositeData.toCompositeData(mi);
106 }
107
108 // CONTENTS OF THIS ARRAY MUST BE SYNCHRONIZED WITH
109 // threadInfoItemNames!
110 final Object[] threadInfoItemValues = {
111 new Long(threadInfo.getThreadId()),
112 threadInfo.getThreadName(),
113 threadInfo.getThreadState().name(),
114 new Long(threadInfo.getBlockedTime()),
115 new Long(threadInfo.getBlockedCount()),
116 new Long(threadInfo.getWaitedTime()),
117 new Long(threadInfo.getWaitedCount()),
118 lockInfoData,
119 threadInfo.getLockName(),
120 new Long(threadInfo.getLockOwnerId()),
121 threadInfo.getLockOwnerName(),
122 stackTraceData,
123 threadInfo.isSuspended(),
124 threadInfo.isInNative(),
125 lockedMonitorsData,
126 lockedSyncsData,
127 };
128
129 try {
130 return new CompositeDataSupport(threadInfoCompositeType,
131 threadInfoItemNames,
132 threadInfoItemValues);
133 } catch (OpenDataException e) {
134 // Should never reach here
135 throw new AssertionError(e);
136 }
137 }
138
139 // Attribute names
140 private static final String THREAD_ID = "threadId";
|
91 // Convert LockInfo[] and MonitorInfo[] to CompositeData[]
92 LockInfo[] lockedSyncs = threadInfo.getLockedSynchronizers();
93 CompositeData[] lockedSyncsData =
94 new CompositeData[lockedSyncs.length];
95 for (int i = 0; i < lockedSyncs.length; i++) {
96 LockInfo li = lockedSyncs[i];
97 lockedSyncsData[i] = LockInfoCompositeData.toCompositeData(li);
98 }
99
100 MonitorInfo[] lockedMonitors = threadInfo.getLockedMonitors();
101 CompositeData[] lockedMonitorsData =
102 new CompositeData[lockedMonitors.length];
103 for (int i = 0; i < lockedMonitors.length; i++) {
104 MonitorInfo mi = lockedMonitors[i];
105 lockedMonitorsData[i] = MonitorInfoCompositeData.toCompositeData(mi);
106 }
107
108 // CONTENTS OF THIS ARRAY MUST BE SYNCHRONIZED WITH
109 // threadInfoItemNames!
110 final Object[] threadInfoItemValues = {
111 threadInfo.getThreadId(),
112 threadInfo.getThreadName(),
113 threadInfo.getThreadState().name(),
114 threadInfo.getBlockedTime(),
115 threadInfo.getBlockedCount(),
116 threadInfo.getWaitedTime(),
117 threadInfo.getWaitedCount(),
118 lockInfoData,
119 threadInfo.getLockName(),
120 threadInfo.getLockOwnerId(),
121 threadInfo.getLockOwnerName(),
122 stackTraceData,
123 threadInfo.isSuspended(),
124 threadInfo.isInNative(),
125 lockedMonitorsData,
126 lockedSyncsData,
127 };
128
129 try {
130 return new CompositeDataSupport(threadInfoCompositeType,
131 threadInfoItemNames,
132 threadInfoItemValues);
133 } catch (OpenDataException e) {
134 // Should never reach here
135 throw new AssertionError(e);
136 }
137 }
138
139 // Attribute names
140 private static final String THREAD_ID = "threadId";
|