[
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)