[ https://issues.apache.org/jira/browse/CXF-6825?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15209505#comment-15209505 ]
Yotam Madem commented on CXF-6825: ---------------------------------- It took me about 3 hours to make this http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/src/jsr166y/ConcurrentReferenceHashMap.java pass the checkstyle tests... But now it seems fine. I've done a local build (JUnit tests are passing after few trials) and I sent it to performance test in the lab again to make sure the fix resolves the issue. After it will be back I will open another pull request for you to review. Basically, I've done exactly what Daniel suggested - I changed the WeakHashMap to be ConcurrentReferenceHashMap and removed all the synchronized (THREAD_BUSSES) {} blocks > Performance bottle neck due to synchronize block on each read > ------------------------------------------------------------- > > Key: CXF-6825 > URL: https://issues.apache.org/jira/browse/CXF-6825 > Project: CXF > Issue Type: Bug > Components: Bus, JAX-RS > Affects Versions: 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.2.0, 3.1.6 > Environment: All environments > Reporter: Yotam Madem > Original Estimate: 24h > Remaining Estimate: 24h > > In our (IBM MobileFirst foundation) performance tests it is possible to see > that many threads are stuck at: > "LargeThreadPool-thread-1505" daemon prio=10 tid=0x00007f10f020b800 > nid=0x31fc waiting for monitor entry [0x00007f12bfffd000] > java.lang.Thread.State: BLOCKED (on object monitor) > at org.apache.cxf.BusFactory.getThreadBusHolder(BusFactory.java:120) > - waiting to lock <0x00000000c6b99020> (a java.util.WeakHashMap) > at > org.apache.cxf.BusFactory.getAndSetThreadDefaultBus(BusFactory.java:202) > > (We use version 3.1.0) > I did a test fix locally and it seems to resolve our problem so I submitted 2 > pull requests: > for 3.1.6: https://github.com/apache/cxf/pull/119 > for 3.2.0: https://github.com/apache/cxf/pull/120 -- This message was sent by Atlassian JIRA (v6.3.4#6332)