From Lars.Westergren at ki.se Wed May 16 16:45:15 2007 From: Lars.Westergren at ki.se (Lars Westergren) Date: Thu, 17 May 2007 01:45:15 +0200 Subject: jmx-dev [PATCH] 6523160 :RuntimeMXBean.getUptime() returns negative values Message-ID: Hi, I hope this is the correct place to submit patches now. No unit test, let me know if it is required. When I was testing this and changing system clock, lots of Linux applications acted weird as well. AmaroK stopped playing a CD and so on. :) Cheers, Lars From Mandy.Chung at Sun.COM Fri May 18 12:01:35 2007 From: Mandy.Chung at Sun.COM (Mandy Chung) Date: Fri, 18 May 2007 12:01:35 -0700 Subject: jmx-dev [PATCH] 6523160 :RuntimeMXBean.getUptime() returns negative values Message-ID: <464DF80F.6080401@sun.com> Hi Lars, Can you send this patch to serviceability-dev at openjdk.java.net? 6523160 is a bug in the java.lang.management API which is one of the JDK serviceability technologies. See more at: http://openjdk.java.net/groups/serviceability/ Thanks Mandy Lars >Hi, > >I hope this is the correct place to submit patches now. No unit test, >let me know if it is required. When I was testing this and changing >system clock, lots of Linux applications acted weird as well. AmaroK >stopped playing a CD and so on. :) > >Cheers, >Lars > From Tom.Marble at Sun.COM Sat May 19 14:07:37 2007 From: Tom.Marble at Sun.COM (Tom Marble) Date: Sat, 19 May 2007 16:07:37 -0500 Subject: jmx-dev test message Message-ID: <464F6719.6020105@sun.com> All: Please ignore this test message. --Tom From Jean-Francois.Denise at Sun.COM Tue May 22 08:45:42 2007 From: Jean-Francois.Denise at Sun.COM (Jean-Francois Denise - Sun Microsystems) Date: Tue, 22 May 2007 17:45:42 +0200 Subject: jmx-dev Call for review, Bug ID 6514985 Message-ID: <46531026.3080205@sun.com> Proposal to fix 6514985 : JMX should use java.util.ServiceLoader to lookup service providers Swan access webrev ================== http://amos.france.sun.com/jmgt/user/jfdenise/workspaces/jdk7_jmx_master.ws/webrev/index.html Diff ==== diff javax/management/remote/JMXConnectorFactory.java /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/management/remote//JMXConnectorFactory.java 34d33 < import java.util.ServiceLoader; 40a40 > import com.sun.jmx.remote.util.Service; 42d41 < 422,429c421,428 < static Iterator getProviderIterator(final ServiceLoader loader) { < PrivilegedAction> < action = new PrivilegedAction>() { < public Iterator run() { < return loader.iterator(); < } < }; < return AccessController.doPrivileged(action); --- > static Iterator getProviderIterator(final Class providerClass, > final ClassLoader loader) { > PrivilegedAction action = new PrivilegedAction() { > public Object run() { > return Service.providers(providerClass, loader); > } > }; > return (Iterator) AccessController.doPrivileged(action); 436,441c435,438 < < ServiceLoader serviceLoader = < ServiceLoader.load(JMXConnectorProvider.class, < loader); < Iterator providers = < getProviderIterator(serviceLoader); --- > > Iterator providers = getProviderIterator(JMXConnectorProvider.class, > loader); > JMXConnectorProvider provider = null; 444c441,442 < while(providers.hasNext()) { --- > while (providers.hasNext()) { > provider = (JMXConnectorProvider) providers.next(); 446c444 < connection = providers.next().newJMXConnector(url, map); --- > connection = provider.newJMXConnector(url, map); diff javax/management/remote/JMXConnectorServerFactory.java /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/management/remote//JMXConnectorServerFactory.java 38d37 < import java.util.ServiceLoader; 214,219c213,215 < ServiceLoader serviceLoader = < ServiceLoader.load(JMXConnectorServerProvider.class, < loader); < Iterator providers = < JMXConnectorFactory.getProviderIterator(serviceLoader); < --- > Iterator providers = JMXConnectorFactory.getProviderIterator( > JMXConnectorServerProvider.class, loader); > JMXConnectorServerProvider provider = null; 222a219 > provider = (JMXConnectorServerProvider) providers.next(); 224c221 < connection = providers.next().newJMXConnectorServer(url, map, mbs); --- > connection = provider.newJMXConnectorServer(url, map, mbs); Only in /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/com/sun/jmx/remote/util/: Service.java Only in deleted_files//src/share: classes -- Jean-Francois Denise JMX team Interested in netbeans ==> http://blogs.sun.com/roller/page/jmxnetbeans From Eamonn.McManus at Sun.COM Tue May 22 08:55:08 2007 From: Eamonn.McManus at Sun.COM (Eamonn McManus) Date: Tue, 22 May 2007 17:55:08 +0200 Subject: jmx-dev Call for review, Bug ID 6514985 In-Reply-To: <46531026.3080205@sun.com> References: <46531026.3080205@sun.com> Message-ID: <4653125C.1@sun.com> This fix looks good to me. ?amonn McManus JMX Spec Lead http://weblogs.java.net/blog/emcmanus/ Jean-Francois Denise - Sun Microsystems wrote: > Proposal to fix 6514985 : JMX should use java.util.ServiceLoader to > lookup service providers > > Swan access webrev > ================== > > http://amos.france.sun.com/jmgt/user/jfdenise/workspaces/jdk7_jmx_master.ws/webrev/index.html > > > Diff > ==== > > diff javax/management/remote/JMXConnectorFactory.java > /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/management/remote//JMXConnectorFactory.java > > 34d33 > < import java.util.ServiceLoader; > 40a40 >> import com.sun.jmx.remote.util.Service; > 42d41 > < > 422,429c421,428 > < static Iterator getProviderIterator(final ServiceLoader > loader) { > < PrivilegedAction> > < action = new PrivilegedAction>() { > < public Iterator run() { > < return loader.iterator(); > < } > < }; > < return AccessController.doPrivileged(action); > --- >> static Iterator getProviderIterator(final Class providerClass, >> final ClassLoader loader) { >> PrivilegedAction action = new PrivilegedAction() { >> public Object run() { >> return Service.providers(providerClass, loader); >> } >> }; >> return (Iterator) AccessController.doPrivileged(action); > 436,441c435,438 > < > < ServiceLoader serviceLoader = > < ServiceLoader.load(JMXConnectorProvider.class, > < loader); > < Iterator providers = > < getProviderIterator(serviceLoader); > --- >> >> Iterator providers = > getProviderIterator(JMXConnectorProvider.class, >> loader); >> JMXConnectorProvider provider = null; > 444c441,442 > < while(providers.hasNext()) { > --- >> while (providers.hasNext()) { >> provider = (JMXConnectorProvider) providers.next(); > 446c444 > < connection = providers.next().newJMXConnector(url, > map); > --- >> connection = provider.newJMXConnector(url, map); > diff javax/management/remote/JMXConnectorServerFactory.java > /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/management/remote//JMXConnectorServerFactory.java > > 38d37 > < import java.util.ServiceLoader; > 214,219c213,215 > < ServiceLoader serviceLoader = > < ServiceLoader.load(JMXConnectorServerProvider.class, > < loader); > < Iterator providers = > < JMXConnectorFactory.getProviderIterator(serviceLoader); > < > --- >> Iterator providers = JMXConnectorFactory.getProviderIterator( >> JMXConnectorServerProvider.class, loader); >> JMXConnectorServerProvider provider = null; > 222a219 >> provider = (JMXConnectorServerProvider) providers.next(); > 224c221 > < connection = > providers.next().newJMXConnectorServer(url, map, mbs); > --- >> connection = provider.newJMXConnectorServer(url, map, > mbs); > > Only in > /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/com/sun/jmx/remote/util/: > > Service.java > Only in deleted_files//src/share: classes > > From Daniel.Fuchs at Sun.COM Tue May 22 08:59:53 2007 From: Daniel.Fuchs at Sun.COM (Daniel Fuchs) Date: Tue, 22 May 2007 17:59:53 +0200 Subject: jmx-dev Call for review, Bug ID 6514985 In-Reply-To: <46531026.3080205@sun.com> References: <46531026.3080205@sun.com> Message-ID: <46531379.1060900@sun.com> Hi Jean-Francois, Your changes look good to me. Thanks for being the first JMX team member to use the jmx-dev list! -- daniel http://blogs.sun.com/jmxetc Jean-Francois Denise - Sun Microsystems wrote: > Proposal to fix 6514985 : JMX should use java.util.ServiceLoader to > lookup service providers > > Swan access webrev > ================== > > http://amos.france.sun.com/jmgt/user/jfdenise/workspaces/jdk7_jmx_master.ws/webrev/index.html > > > Diff > ==== > > diff javax/management/remote/JMXConnectorFactory.java > /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/management/remote//JMXConnectorFactory.java > > 34d33 > < import java.util.ServiceLoader; > 40a40 >> import com.sun.jmx.remote.util.Service; > 42d41 > < > 422,429c421,428 > < static Iterator getProviderIterator(final ServiceLoader > loader) { > < PrivilegedAction> > < action = new PrivilegedAction>() { > < public Iterator run() { > < return loader.iterator(); > < } > < }; > < return AccessController.doPrivileged(action); > --- >> static Iterator getProviderIterator(final Class providerClass, >> final ClassLoader loader) { >> PrivilegedAction action = new PrivilegedAction() { >> public Object run() { >> return Service.providers(providerClass, loader); >> } >> }; >> return (Iterator) AccessController.doPrivileged(action); > 436,441c435,438 > < > < ServiceLoader serviceLoader = > < ServiceLoader.load(JMXConnectorProvider.class, > < loader); > < Iterator providers = > < getProviderIterator(serviceLoader); > --- >> >> Iterator providers = > getProviderIterator(JMXConnectorProvider.class, >> loader); >> JMXConnectorProvider provider = null; > 444c441,442 > < while(providers.hasNext()) { > --- >> while (providers.hasNext()) { >> provider = (JMXConnectorProvider) providers.next(); > 446c444 > < connection = providers.next().newJMXConnector(url, map); > --- >> connection = provider.newJMXConnector(url, map); > diff javax/management/remote/JMXConnectorServerFactory.java > /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/management/remote//JMXConnectorServerFactory.java > > 38d37 > < import java.util.ServiceLoader; > 214,219c213,215 > < ServiceLoader serviceLoader = > < ServiceLoader.load(JMXConnectorServerProvider.class, > < loader); > < Iterator providers = > < JMXConnectorFactory.getProviderIterator(serviceLoader); > < > --- >> Iterator providers = JMXConnectorFactory.getProviderIterator( >> JMXConnectorServerProvider.class, loader); >> JMXConnectorServerProvider provider = null; > 222a219 >> provider = (JMXConnectorServerProvider) providers.next(); > 224c221 > < connection = > providers.next().newJMXConnectorServer(url, map, mbs); > --- >> connection = provider.newJMXConnectorServer(url, map, > mbs); > > Only in > /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/com/sun/jmx/remote/util/: > > Service.java > Only in deleted_files//src/share: classes > > From Jean-Francois.Denise at Sun.COM Tue May 22 12:14:18 2007 From: Jean-Francois.Denise at Sun.COM (jfdenise) Date: Tue, 22 May 2007 21:14:18 +0200 Subject: jmx-dev Call for review, Bug ID 6514985 In-Reply-To: <46531379.1060900@sun.com> References: <46531026.3080205@sun.com> <46531379.1060900@sun.com> Message-ID: Hope not to be the last :-)))) Le 22 mai 07 ? 17:59, Daniel Fuchs a ?crit : > Hi Jean-Francois, > > Your changes look good to me. Thanks for being the first JMX team > member to use the jmx-dev list! > > -- daniel > http://blogs.sun.com/jmxetc > > Jean-Francois Denise - Sun Microsystems wrote: >> Proposal to fix 6514985 : JMX should use java.util.ServiceLoader >> to lookup service providers >> Swan access webrev >> ================== >> http://amos.france.sun.com/jmgt/user/jfdenise/workspaces/ >> jdk7_jmx_master.ws/webrev/index.html Diff >> ==== >> diff javax/management/remote/JMXConnectorFactory.java >> /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/ >> management/remote//JMXConnectorFactory.java 34d33 >> < import java.util.ServiceLoader; >> 40a40 >>> import com.sun.jmx.remote.util.Service; >> 42d41 >> < >> 422,429c421,428 >> < static Iterator getProviderIterator(final >> ServiceLoader >> loader) { >> < PrivilegedAction> >> < action = new PrivilegedAction>() { >> < public Iterator run() { >> < return loader.iterator(); >> < } >> < }; >> < return AccessController.doPrivileged(action); >> --- >>> static Iterator getProviderIterator(final Class providerClass, >>> final ClassLoader loader) { >>> PrivilegedAction action = new PrivilegedAction() { >>> public Object run() { >>> return Service.providers(providerClass, loader); >>> } >>> }; >>> return (Iterator) AccessController.doPrivileged(action); >> 436,441c435,438 >> < >> < ServiceLoader serviceLoader = >> < ServiceLoader.load(JMXConnectorProvider.class, >> < loader); >> < Iterator providers = >> < getProviderIterator(serviceLoader); >> --- >>> >>> Iterator providers = >> getProviderIterator(JMXConnectorProvider.class, >>> loader); >>> JMXConnectorProvider provider = null; >> 444c441,442 >> < while(providers.hasNext()) { >> --- >>> while (providers.hasNext()) { >>> provider = (JMXConnectorProvider) providers.next(); >> 446c444 >> < connection = providers.next().newJMXConnector >> (url, map); >> --- >>> connection = provider.newJMXConnector(url, map); >> diff javax/management/remote/JMXConnectorServerFactory.java >> /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/ >> management/remote//JMXConnectorServerFactory.java 38d37 >> < import java.util.ServiceLoader; >> 214,219c213,215 >> < ServiceLoader serviceLoader = >> < ServiceLoader.load >> (JMXConnectorServerProvider.class, >> < loader); >> < Iterator providers = >> < JMXConnectorFactory.getProviderIterator >> (serviceLoader); >> < >> --- >>> Iterator providers = >>> JMXConnectorFactory.getProviderIterator( >>> JMXConnectorServerProvider.class, loader); >>> JMXConnectorServerProvider provider = null; >> 222a219 >>> provider = (JMXConnectorServerProvider) providers.next >>> (); >> 224c221 >> < connection = >> providers.next().newJMXConnectorServer(url, map, mbs); >> --- >>> connection = provider.newJMXConnectorServer(url, >>> map, >> mbs); >> Only in >> /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/com/sun/jmx/ >> remote/util/: Service.java >> Only in deleted_files//src/share: classes > From Jean-Francois.Denise at Sun.COM Wed May 23 02:22:10 2007 From: Jean-Francois.Denise at Sun.COM (Jean-Francois Denise - Sun Microsystems) Date: Wed, 23 May 2007 11:22:10 +0200 Subject: jmx-dev Call for review, Bug ID 6514985 In-Reply-To: <4653125C.1@sun.com> References: <46531026.3080205@sun.com> <4653125C.1@sun.com> Message-ID: <465407C2.4090603@sun.com> Rethinking at this fix, the access to the ServiceLoader iterator inside a privileged block is useless (and used to be useless). ServiceLoader javadoc is quite vague on this but ServiceLoader code is clear. After discussing with Eamonn, I confidently removed the grant block. You can check the updated webrev on : http://amos.france.sun.com/jmgt/user/jfdenise/workspaces/jdk7_jmx_master.ws/webrev/index.html (Not reviewed by community, not adding diff). JF. Eamonn McManus wrote: > This fix looks good to me. > > ?amonn McManus JMX Spec Lead http://weblogs.java.net/blog/emcmanus/ > > > > Jean-Francois Denise - Sun Microsystems wrote: >> Proposal to fix 6514985 : JMX should use java.util.ServiceLoader to >> lookup service providers >> >> Swan access webrev >> ================== >> >> http://amos.france.sun.com/jmgt/user/jfdenise/workspaces/jdk7_jmx_master.ws/webrev/index.html >> >> >> Diff >> ==== >> >> diff javax/management/remote/JMXConnectorFactory.java >> /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/management/remote//JMXConnectorFactory.java >> >> 34d33 >> < import java.util.ServiceLoader; >> 40a40 >>> import com.sun.jmx.remote.util.Service; >> 42d41 >> < >> 422,429c421,428 >> < static Iterator getProviderIterator(final ServiceLoader >> loader) { >> < PrivilegedAction> >> < action = new PrivilegedAction>() { >> < public Iterator run() { >> < return loader.iterator(); >> < } >> < }; >> < return AccessController.doPrivileged(action); >> --- >>> static Iterator getProviderIterator(final Class providerClass, >>> final ClassLoader loader) { >>> PrivilegedAction action = new PrivilegedAction() { >>> public Object run() { >>> return Service.providers(providerClass, loader); >>> } >>> }; >>> return (Iterator) AccessController.doPrivileged(action); >> 436,441c435,438 >> < >> < ServiceLoader serviceLoader = >> < ServiceLoader.load(JMXConnectorProvider.class, >> < loader); >> < Iterator providers = >> < getProviderIterator(serviceLoader); >> --- >>> >>> Iterator providers = >> getProviderIterator(JMXConnectorProvider.class, >>> loader); >>> JMXConnectorProvider provider = null; >> 444c441,442 >> < while(providers.hasNext()) { >> --- >>> while (providers.hasNext()) { >>> provider = (JMXConnectorProvider) providers.next(); >> 446c444 >> < connection = providers.next().newJMXConnector(url, >> map); >> --- >>> connection = provider.newJMXConnector(url, map); >> diff javax/management/remote/JMXConnectorServerFactory.java >> /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/javax/management/remote//JMXConnectorServerFactory.java >> >> 38d37 >> < import java.util.ServiceLoader; >> 214,219c213,215 >> < ServiceLoader serviceLoader = >> < ServiceLoader.load(JMXConnectorServerProvider.class, >> < loader); >> < Iterator providers = >> < >> JMXConnectorFactory.getProviderIterator(serviceLoader); >> < >> --- >>> Iterator providers = JMXConnectorFactory.getProviderIterator( >>> JMXConnectorServerProvider.class, loader); >>> JMXConnectorServerProvider provider = null; >> 222a219 >>> provider = (JMXConnectorServerProvider) providers.next(); >> 224c221 >> < connection = >> providers.next().newJMXConnectorServer(url, map, mbs); >> --- >>> connection = provider.newJMXConnectorServer(url, map, >> mbs); >> >> Only in >> /jmgt/master/jmx/jdk7_jmx_master.ws/src/share/classes/com/sun/jmx/remote/util/: >> >> Service.java >> Only in deleted_files//src/share: classes >> >> > -- Jean-Francois Denise JMX team Interested in netbeans ==> http://blogs.sun.com/roller/page/jmxnetbeans