Skip to content

Instantly share code, notes, and snippets.

@twicksell
Created February 23, 2012 19:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save twicksell/1894670 to your computer and use it in GitHub Desktop.
Save twicksell/1894670 to your computer and use it in GitHub Desktop.
Test highlighting concurrency performance issue in org.springframeworkcore.covnert.Property
2012-02-23 13:39:52
Full thread dump Java HotSpot(TM) 64-Bit Server VM (17.0-b17 mixed mode):
"JMX server connection timeout 34" daemon prio=6 tid=0x0000000007625000 nid=0x2c34 in Object.wait() [0x000000000adcf000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000085bf9ba0> (a [I)
at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
- locked <0x0000000085bf9ba0> (a [I)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- None
"RMI Scheduler(0)" daemon prio=6 tid=0x0000000007624000 nid=0x1d70 waiting on condition [0x000000000accf000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000085bd2028> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- None
"RMI TCP Connection(1)-130.18.213.121" daemon prio=6 tid=0x0000000007623800 nid=0x20b4 runnable [0x000000000abcf000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <0x0000000085bf9e08> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x0000000085bfa3c8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"RMI TCP Accept-0" daemon prio=6 tid=0x0000000007622800 nid=0x24f8 runnable [0x000000000a9cf000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
- locked <0x0000000085bd1e18> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:453)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:34)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- None
"pool-1-thread-20" prio=6 tid=0x0000000007622000 nid=0x31e8 waiting for monitor entry [0x0000000008ebf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000ebaf22e8> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008573b6c8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-19" prio=6 tid=0x0000000007621000 nid=0x3030 waiting for monitor entry [0x0000000008dbf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- locked <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000eb9aa6e0> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008573e448> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-18" prio=6 tid=0x0000000007620800 nid=0xba8 waiting for monitor entry [0x0000000008cbf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000df53e358> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008574aed0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-17" prio=6 tid=0x000000000761f000 nid=0x2604 waiting for monitor entry [0x0000000008bbf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e1be7db8> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008574b878> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-16" prio=6 tid=0x000000000761f800 nid=0x312c waiting for monitor entry [0x0000000008abf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- locked <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e9ca7590> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008574c220> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-15" prio=6 tid=0x000000000761e800 nid=0x3268 waiting for monitor entry [0x00000000089bf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000001050403a0> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008574cbc8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-14" prio=6 tid=0x000000000761d800 nid=0x26a0 waiting for monitor entry [0x00000000088bf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e37a33f0> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x0000000085757648> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-13" prio=6 tid=0x000000000761d000 nid=0x32d0 waiting for monitor entry [0x00000000087bf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e9cee8a8> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x0000000085757a20> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-12" prio=6 tid=0x000000000761c000 nid=0x2260 waiting for monitor entry [0x00000000086bf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e370ad50> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x0000000085757df8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-11" prio=6 tid=0x000000000761b800 nid=0x3024 waiting for monitor entry [0x00000000085bf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e1b085c8> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x00000000857587a0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-10" prio=6 tid=0x000000000761a800 nid=0x2d7c waiting for monitor entry [0x00000000084bf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e3813908> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x0000000085769160> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-9" prio=6 tid=0x0000000007883800 nid=0x3164 waiting for monitor entry [0x00000000083bf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000eba92580> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x0000000085769b08> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-8" prio=6 tid=0x0000000007883000 nid=0x3058 waiting for monitor entry [0x00000000082bf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x0000000105040ae8> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008576a4c0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-7" prio=6 tid=0x000000000787a000 nid=0x2f14 waiting for monitor entry [0x00000000081bf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000da9c0198> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008577ae80> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-6" prio=6 tid=0x0000000007879800 nid=0x2948 runnable [0x00000000080be000]
java.lang.Thread.State: RUNNABLE
at java.util.AbstractList.hashCode(AbstractList.java:527)
at java.util.HashMap.get(HashMap.java:300)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:426)
- locked <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000ebb1c408> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008577b258> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-5" prio=6 tid=0x00000000078ac000 nid=0xe10 waiting for monitor entry [0x0000000007fbf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000dda6e968> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008577bc00> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-4" prio=6 tid=0x0000000007707000 nid=0x3234 waiting for monitor entry [0x0000000007ebf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e5e9dcd8> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x000000008577c5a8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-3" prio=6 tid=0x000000000766c800 nid=0x2a80 runnable [0x0000000007dbf000]
java.lang.Thread.State: RUNNABLE
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:349)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e7c86228> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x00000000857a8f88> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-2" prio=6 tid=0x000000000766b000 nid=0x2d34 runnable [0x0000000007cbe000]
java.lang.Thread.State: RUNNABLE
at sun.reflect.generics.parser.SignatureParser.parseIdentifier(SignatureParser.java:221)
at sun.reflect.generics.parser.SignatureParser.parseSimpleClassTypeSignature(SignatureParser.java:253)
at sun.reflect.generics.parser.SignatureParser.parseClassTypeSignature(SignatureParser.java:243)
at sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature(SignatureParser.java:228)
at sun.reflect.generics.parser.SignatureParser.parseTypeSignature(SignatureParser.java:359)
at sun.reflect.generics.parser.SignatureParser.parseTypeSig(SignatureParser.java:157)
at sun.reflect.annotation.AnnotationParser.parseSig(AnnotationParser.java:367)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:181)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e7cb8d90> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x00000000857a9930> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-1-thread-1" prio=6 tid=0x000000000770a000 nid=0x303c waiting for monitor entry [0x0000000007bbf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:417)
- waiting to lock <0x000000008573c018> (a java.util.HashMap)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:239)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:229)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
- locked <0x00000000e376ccf0> (a java.lang.reflect.Field)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
at org.springframework.core.convert.Property.resolveAnnotations(Property.java:189)
at org.springframework.core.convert.Property.<init>(Property.java:64)
at ThreadedBeanWrapperTest$TestThread.run(ThreadedBeanWrapperTest.java:100)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- <0x00000000857aa2d8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"ReaderThread" prio=6 tid=0x00000000078a1800 nid=0x33b8 runnable [0x00000000079cf000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
- locked <0x00000000857c4eb0> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
- locked <0x00000000857c4eb0> (a java.io.InputStreamReader)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner$ReaderThread.run(RemoteTestRunner.java:140)
Locked ownable synchronizers:
- None
"Low Memory Detector" daemon prio=6 tid=0x0000000006d3a800 nid=0x3064 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"CompilerThread1" daemon prio=10 tid=0x0000000006d32000 nid=0x3250 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"CompilerThread0" daemon prio=10 tid=0x0000000006d26800 nid=0x5e4 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Attach Listener" daemon prio=10 tid=0x0000000006d23000 nid=0x15f4 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Signal Dispatcher" daemon prio=10 tid=0x0000000006d1e000 nid=0x31cc runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Finalizer" daemon prio=8 tid=0x000000000052a800 nid=0x19e0 in Object.wait() [0x0000000006ccf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000857c6c50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x00000000857c6c50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
Locked ownable synchronizers:
- None
"Reference Handler" daemon prio=10 tid=0x0000000000523800 nid=0x2f78 in Object.wait() [0x0000000006bcf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000008576a3a8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x000000008576a3a8> (a java.lang.ref.Reference$Lock)
Locked ownable synchronizers:
- None
"main" prio=6 tid=0x000000000057d000 nid=0xee8 runnable [0x00000000028de000]
java.lang.Thread.State: RUNNABLE
at java.util.ArrayList.size(ArrayList.java:177)
at java.util.AbstractList$Itr.hasNext(AbstractList.java:339)
at ThreadedBeanWrapperTest.executeTestWithThreads(ThreadedBeanWrapperTest.java:61)
at ThreadedBeanWrapperTest.testBeanWrapperWithThreads(ThreadedBeanWrapperTest.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Locked ownable synchronizers:
- None
"VM Thread" prio=10 tid=0x000000000051e800 nid=0x2d0c runnable
"GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000000478800 nid=0x2f40 runnable
"GC task thread#1 (ParallelGC)" prio=6 tid=0x000000000047a800 nid=0x3158 runnable
"GC task thread#2 (ParallelGC)" prio=6 tid=0x000000000047c000 nid=0x278 runnable
"GC task thread#3 (ParallelGC)" prio=6 tid=0x000000000047e000 nid=0x2214 runnable
"VM Periodic Task Thread" prio=10 tid=0x0000000006d46000 nid=0x25e8 waiting on condition
JNI global references: 1633
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
import org.springframework.core.convert.Property;
public class ThreadedPropertyPerformanceTest {
Log log = LogFactory.getLog(ThreadedPropertyPerformanceTest.class);
@Test
public void testBeanWrapperWithThreads() throws Exception
{
// executeTestWithThreads(1);
// executeTestWithThreads(10);
executeTestWithThreads(10);
executeTestWithThreads(50);
// executeTestWithThreads(50);
// executeTestWithThreads(100);
// executeTestWithThreads(500);
}
private void executeTestWithThreads(int numThreads) throws InterruptedException, ExecutionException
{
ExecutorService threadPool = Executors.newFixedThreadPool(numThreads);
List<Future<Monitor>> futures = new ArrayList<Future<Monitor>>();
for(long i=0; i < 10000; i++)
{
Monitor monitor = new Monitor();
futures.add(threadPool.submit(new TestThread(monitor), monitor));
}
long average = 0;
while (!futures.isEmpty())
{
Iterator<Future<Monitor>> taskIterator = futures.iterator();
while(taskIterator.hasNext())
{
Future<Monitor> future = taskIterator.next();
if(future.isDone() || future.isCancelled())
{
Monitor monitor = future.get();
average += (monitor.endTime - monitor.startTime);
// log.info((monitor.endTime - monitor.startTime)/1000000);
taskIterator.remove();
}
}
}
log.info("Finished with " + numThreads + " thread(s). Average time: " + ((average/numThreads)/1000000) + "ms");
}
private class TestThread implements Runnable
{
Method getter;
Method setter;
Monitor monitor;
public TestThread(Monitor monitor)
{
try
{
this.monitor = monitor;
this.getter = SomeClass.class.getMethod("getSomeProperty");
this.setter = SomeClass.class.getMethod("setSomeProperty", String.class);
}
catch(Exception e)
{
log.error(e);
}
}
@Override
public void run() {
try
{
monitor.startTime=System.nanoTime();
for(long i=0; i < 1000; i++)
{
new Property(SomeClass.class, this.getter, this.setter);
}
monitor.endTime=System.nanoTime();
}
catch(Exception e)
{
log.error(e);
}
}
}
private class Monitor
{
long startTime;
long endTime;
}
//Some class with some properties which have annotations (using JAXB since they are convenient)
private class SomeClass
{
@XmlElement
private
String someProperty;
@SuppressWarnings("unused")
@XmlTransient
public void setSomeProperty(String someProperty) {
this.someProperty = someProperty;
}
@SuppressWarnings("unused")
@XmlTransient
public String getSomeProperty() {
return someProperty;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment