Hi Paul,

I have almost the same comments as David:
 - the same two spots of changes identified
 - the addition of the default method was expected
 - the change in test is a surprise (I also doubt, it is really needed)
 - new CSR is needed


Sorry, I forgot to remind about running the vmTestbase monitoring tests. :(

Thanks,
Serguei


On 9/19/19 16:06, David Holmes wrote:
Hi Paul,

On 20/09/2019 2:52 am, Hohensee, Paul wrote:
More formally,

Bug: https://bugs.openjdk.java.net/browse/JDK-8231209
Webrev: http://cr.openjdk.java.net/~phh/8231209/webrev.00/

I'm assuming there are only two changes here:

1. The new method is now a default method that throws UOE.

That seems fine.

2. You implemented the new method in the test class.

I don't understand why you did that. The test can't be calling the new method. Now that it is a default method we will get past the compilation failure that caused the problem. So no change to the test should be needed AFAICS.

A new CSR request is needed. Just copy everything across from the old, with the updated spec. But please also mention this is a PlatformManagedObject in the compatibility discussion.

Thanks,
David

Thanks,

On 9/19/19, 9:44 AM, "serviceability-dev on behalf of Hohensee, Paul" <serviceability-dev-boun...@openjdk.java.net on behalf of hohen...@amazon.com> wrote:

     Off by 2 error. Changed the subject to reflect 8231209.
          http://cr.openjdk.java.net/~phh/8231209/webrev.00/
          Paul
          On 9/19/19, 6:31 AM, "Daniel D. Daugherty" <daniel.daughe...@oracle.com> wrote:
               > http://cr.openjdk.java.net/~phh/8231211/webrev.00/
                  The redo bug is 8231209. 8231211 is closed as a dup of 8231210.
                  Dan
                           On 9/19/19 9:17 AM, Hohensee, Paul wrote:
         > I'll have the default method throw UOE. That's the same as the other default methods do.
         >
         > The necessary test fix is in test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/server/ServerThreadMXBeanNew.java, which needs a new getCurrentThreadAllocatedBytes method, defined as
         >
         >      public long getCurrentThreadAllocatedBytes() {
         >          return (Long) invokeMethod("getCurrentThreadAllocatedBytes",
         >              new Object[] { },
         >              new String[] { });
         >      }
         >
         > With this fix, the 134 tests in test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadMXBean pass. Preliminary webrev at
         >
         > http://cr.openjdk.java.net/~phh/8231211/webrev.00/
         >
         > Is it worth adding getCurrentThreadAllocatedBytes tests to the test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes set?
         >
         > Paul
         >
         > On 9/18/19, 8:16 PM, "David Holmes" <david.hol...@oracle.com> wrote:
         >
         >      On 19/09/2019 12:57 pm, Mandy Chung wrote:
         >      > On 9/18/19 5:00 PM, Hohensee, Paul wrote:
         >      >> They all implement com.sun.management.ThreadMXBean, so adding a          >      >> getCurrentThreadAllocatedBytes broke them. Potential fix is to give it
         >      >> a default implementation, vis
         >      >>
         >      >>      public default long getCurrentThreadAllocatedBytes() {
         >      >>          return -1;
         >      >>      }
         >      >>
         >      >
         >      > com.sun.management.ThreadMXBean (and other platform MXBeans) is a          >      > "sealed" interface which should only be implemented by JDK.
         >
         >      Didn't realize that. I don't recall knowing about PlatformManagedObject.          >      Sealed types will at least allow this to be enforced, though I have to
         >      wonder what the tests are doing here.
         >
         >      > Unfortunately we don't have the sealed type feature yet.  Yes it needs
         >      > to be a default method.  I think it should throw UOE.
         >      >
         >      >       * @implSpec
         >      >       * The default implementation throws {@code
         >      > UnsupportedOperationException}.
         >      >
         >      > The @throw UOE can make it clear that it does not support current thread
         >      > memory allocation measurement.
         >
         >      Yes that seems a reasonable default if we don't want this to be
         >      implemented outside the platform.
         >
         >      Thanks,
         >      David
         >
         >      > Mandy
         >
         >


Reply via email to