Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Jun 2013 10:18:51 +0200
From:      "Ronald Klop" <ronald-freebsd8@klop.yi.org>
To:        "Jason Helfman" <jgh@freebsd.org>
Cc:        freebsd-java@freebsd.org
Subject:   Re: thread support
Message-ID:  <op.wyyxdpl18527sy@ronaldradial.versatec.local>
In-Reply-To: <CAMuy=%2Bj9QfSmQEVbsxrqaOnUEoup4xAW1xb11x-M7X5K0x9Wmg@mail.gmail.com>
References:  <CAMuy=%2Bj19A-BNpqCeCqdtYr8ofiGnvTfu8oasTZ_gEiq=PfoQA@mail.gmail.com> <CAMuy=%2Bh7ktLBo9%2BhVx7rrAB1setw6nH2JNuR-zEdUJTTtcwJ_A@mail.gmail.com> <op.wyyuwwhw8527sy@ronaldradial.versatec.local> <CAMuy=%2Bj9QfSmQEVbsxrqaOnUEoup4xAW1xb11x-M7X5K0x9Wmg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 20 Jun 2013 10:06:25 +0200, Jason Helfman <jgh@freebsd.org> wrote:

> On Thu, Jun 20, 2013 at 12:25 AM, Ronald Klop
> <ronald-freebsd8@klop.yi.org>wrote:
>
>> On Thu, 20 Jun 2013 02:03:15 +0200, Jason Helfman <jgh@freebsd.org>  
>> wrote:
>>
>>  On Wed, Jun 19, 2013 at 5:02 PM, Jason Helfman <jgh@freebsd.org> wrote:
>>>
>>>  Hi,
>>>>
>>>> I have a new port that I am maintaining, and I wanted to try a  
>>>> feature of
>>>> it, but get the following error:
>>>>
>>>> Exception in thread "main" java.lang.**UnsupportedOperationException:
>>>> Thread
>>>> CPU Time Measurement is not supported.
>>>>
>>>> Any thoughts/ideas on this?
>>>>
>>>> Thanks!
>>>> -jgh
>>>>
>>>> --
>>>> Jason Helfman          | FreeBSD Committer
>>>> jgh@FreeBSD.org     | http://people.freebsd.org/~jgh  | The Power to
>>>> Serve
>>>>
>>>>
>>> I am using openjdk6.
>>>
>>> -jgh
>>>
>>
>>
>> Do you have the complete stacktrace?
>>
>> Ronald.
>>
>>
> Exception in thread "main" java.lang.UnsupportedOperationException:
> Thread CPU Time Measurement is not supported.
> 	at sun.management.ThreadImpl.getThreadCpuTime(ThreadImpl.java:214)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at  
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at  
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:616)
> 	at  
> com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:180)
> 	at  
> com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:114)
> 	at  
> com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:51)
> 	at  
> com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:226)
> 	at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:251)
> 	at javax.management.StandardMBean.invoke(StandardMBean.java:405)
> 	at  
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:857)
> 	at  
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:795)
> 	at  
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1475)
> 	at  
> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
> 	at  
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1316)
> 	at  
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
> 	at  
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:838)
> 	at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> 	at  
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:616)
> 	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
> 	at sun.rmi.transport.Transport$1.run(Transport.java:177)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
> 	at  
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
> 	at  
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
> 	at  
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
> 	at  
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 	at  
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>
> at java.lang.Thread.run(Thread.java:679)
>
> -jgh

I already expected JMX was in it. I'm not a developer of the jdk ports for  
FreeBSD, but not all JMX interfaces are implemented. (They are not used  
that often. I think mostly in development tools, like debuggers/profilers.)
You could try implementing sun.management.ThreadImpl.getThreadCpuTime.  
Maybe first a dummy one which always returns the same value to get your  
port going.
If it is implemented in openjdk7 it might be easy to copy to openjdk6.

Maybe other people on the list can help you more with the internals of  
openjdk.

Regards,
Ronald.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.wyyxdpl18527sy>