Hi all,

as requested I've reverted the patch to threadinfo.

Andrew, could you add some documentation about the role of the class to
the VM interface document, and add some documentation in the
documentation blocks of the constructors?

cheers,
dalibor topic

2007-09-24  Dalibor Topic  <[EMAIL PROTECTED]>

        * java/lang/management/ThreadInfo.java: Reverted patch from
        2007-09-21, as it breaks JikesRVM.

Index: java/lang/management/ThreadInfo.java
===================================================================
RCS file: /sources/classpath/classpath/java/lang/management/ThreadInfo.java,v
retrieving revision 1.10
retrieving revision 1.9
diff -u -r1.10 -r1.9
--- java/lang/management/ThreadInfo.java	21 Sep 2007 19:39:19 -0000	1.10
+++ java/lang/management/ThreadInfo.java	25 Dec 2006 23:58:52 -0000	1.9
@@ -192,6 +192,134 @@
 
   /**
    * Constructs a new [EMAIL PROTECTED] ThreadInfo} corresponding
+   * to the thread specified.
+   *
+   * @param thread the thread on which the new instance
+   *               will be based.
+   * @param blockedCount the number of times the thread
+   *                     has been blocked.
+   * @param blockedTime the accumulated number of milliseconds
+   *                    the specified thread has been blocked
+   *                    (only used with contention monitoring enabled)
+   * @param lock the monitor lock the thread is waiting for
+   *             (only used if blocked)
+   * @param lockOwner the thread which owns the monitor lock, or
+   *                  <code>null</code> if it doesn't have an owner
+   *                  (only used if blocked)
+   * @param waitedCount the number of times the thread has been in a
+   *                    waiting state.
+   * @param waitedTime the accumulated number of milliseconds the
+   *                   specified thread has been waiting
+   *                   (only used with contention monitoring enabled)
+   * @param isInNative true if the thread is in a native method.
+   * @param isSuspended true if the thread is suspended.
+   * @param trace the stack trace of the thread to a pre-determined
+   *              depth (see VMThreadMXBeanImpl)
+   */
+  private ThreadInfo(Thread thread, long blockedCount, long blockedTime,
+		     Object lock, Thread lockOwner, long waitedCount,
+		     long waitedTime, boolean isInNative, boolean isSuspended,
+		     StackTraceElement[] trace)
+  {
+    this(thread, blockedCount, blockedTime, lock, lockOwner, waitedCount,
+	 waitedTime, isInNative, isSuspended, trace, new MonitorInfo[]{},
+	 new LockInfo[]{});
+  }
+
+  /**
+   * Constructs a new [EMAIL PROTECTED] ThreadInfo} corresponding
+   * to the thread specified.
+   *
+   * @param thread the thread on which the new instance
+   *               will be based.
+   * @param blockedCount the number of times the thread
+   *                     has been blocked.
+   * @param blockedTime the accumulated number of milliseconds
+   *                    the specified thread has been blocked
+   *                    (only used with contention monitoring enabled)
+   * @param lock the monitor lock the thread is waiting for
+   *             (only used if blocked)
+   * @param lockOwner the thread which owns the monitor lock, or
+   *                  <code>null</code> if it doesn't have an owner
+   *                  (only used if blocked)
+   * @param waitedCount the number of times the thread has been in a
+   *                    waiting state.
+   * @param waitedTime the accumulated number of milliseconds the
+   *                   specified thread has been waiting
+   *                   (only used with contention monitoring enabled)
+   * @param isInNative true if the thread is in a native method.
+   * @param isSuspended true if the thread is suspended.
+   * @param trace the stack trace of the thread to a pre-determined
+   *              depth (see VMThreadMXBeanImpl)
+   * @param lockedMonitors an array of [EMAIL PROTECTED] MonitorInfo} objects
+   *                       representing locks held on object monitors
+   *                       by the thread.
+   * @param lockedSynchronizers an array of [EMAIL PROTECTED] LockInfo} objects
+   *                            representing locks held on ownable
+   *                            synchronizers by the thread. 
+   * @since 1.6
+   */
+  private ThreadInfo(Thread thread, long blockedCount, long blockedTime,
+		     Object lock, Thread lockOwner, long waitedCount,
+		     long waitedTime, boolean isInNative, boolean isSuspended,
+		     StackTraceElement[] trace, MonitorInfo[] lockedMonitors,
+		     LockInfo[] lockedSynchronizers)
+  {
+    this(thread.getId(), thread.getName(), thread.getState(), blockedCount, blockedTime,
+         lock == null ? null : lock.getClass().getName() + "@" + 
+	       Integer.toHexString(System.identityHashCode(lock)),
+         lockOwner == null ? -1 : lockOwner.getId(),
+         lockOwner == null ? null : lockOwner.getName(),
+         waitedCount, waitedTime, isInNative, isSuspended,
+	 trace, lockedMonitors, lockedSynchronizers);
+  }
+
+  /**
+   * Constructs a new [EMAIL PROTECTED] ThreadInfo} corresponding
+   * to the thread details specified.
+   *
+   * @param threadId the id of the thread on which this
+   *                 new instance will be based.
+   * @param threadName the name of the thread on which
+   *                 this new instance will be based.
+   * @param threadState the state of the thread on which
+   *                 this new instance will be based.
+   * @param blockedCount the number of times the thread
+   *                     has been blocked.
+   * @param blockedTime the accumulated number of milliseconds
+   *                    the specified thread has been blocked
+   *                    (only used with contention monitoring enabled)
+   * @param lockName the name of the monitor lock the thread is waiting for
+   *                 (only used if blocked)
+   * @param lockOwnerId the id of the thread which owns the monitor
+   *                  lock, or <code>-1</code> if it doesn't have an owner
+   *                  (only used if blocked)
+   * @param lockOwnerName the name of the thread which owns the monitor
+   *                  lock, or <code>null</code> if it doesn't have an 
+   *                  owner (only used if blocked)
+   * @param waitedCount the number of times the thread has been in a
+   *                    waiting state.
+   * @param waitedTime the accumulated number of milliseconds the
+   *                   specified thread has been waiting
+   *                   (only used with contention monitoring enabled)
+   * @param isInNative true if the thread is in a native method.
+   * @param isSuspended true if the thread is suspended.
+   * @param trace the stack trace of the thread to a pre-determined
+   *              depth (see VMThreadMXBeanImpl)
+   */
+  private ThreadInfo(long threadId, String threadName, Thread.State threadState,
+		     long blockedCount, long blockedTime, String lockName, 
+		     long lockOwnerId, String lockOwnerName, long waitedCount,
+		     long waitedTime, boolean isInNative, boolean isSuspended,
+		     StackTraceElement[] trace)
+  {
+    this(threadId, threadName, threadState, blockedCount, blockedTime,
+	 lockName, lockOwnerId, lockOwnerName, waitedCount, waitedTime,
+	 isInNative, isSuspended, trace, new MonitorInfo[]{}, new LockInfo[]{});
+  }
+
+  /**
+   * Constructs a new [EMAIL PROTECTED] ThreadInfo} corresponding
    * to the thread details specified.
    *
    * @param threadId the id of the thread on which this

Reply via email to