You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by wo...@apache.org on 2007/10/24 07:34:09 UTC
svn commit: r587795 -
/portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/information/InformationProviderServiceImpl.java
Author: woonsan
Date: Tue Oct 23 22:34:08 2007
New Revision: 587795
URL: http://svn.apache.org/viewvc?rev=587795&view=rev
Log:
[JS2-785] Parallel Rendering on Websphere 6.1
David's testings found this problem:
java.util.ConcurrentModificationException: concurrent access to HashMap attempted by Thread[WORKER_15,5,Workers]
at java.util.HashMap.onEntry(HashMap.java:205)
at java.util.HashMap.transfer(HashMap.java:510)
at java.util.HashMap.resize(HashMap.java:500)
at java.util.HashMap.addEntry(HashMap.java:800)
at java.util.HashMap.put(HashMap.java:441)
at com.ibm.ws.webcontainer.srt.SRTServletRequest.setAttribute(SRTServletRequest.java:466)
at javax.servlet.ServletRequestWrapper.setAttribute(ServletRequestWrapper.java:329)
at org.apache.jetspeed.engine.servlet.ServletRequestImpl.setAttributeInternal(ServletRequestImpl.java:670)
at org.apache.jetspeed.engine.servlet.ServletRequestImpl.setAttribute(ServletRequestImpl.java:647)
at org.apache.jetspeed.services.information.InformationProviderServiceImpl.getDynamicProvider(InformationProviderServiceImpl.java:63)
Invoking request.setAttribute() in InformationProviderServiceImpl should be synchronized.
Modified:
portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/information/InformationProviderServiceImpl.java
Modified: portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/information/InformationProviderServiceImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/information/InformationProviderServiceImpl.java?rev=587795&r1=587794&r2=587795&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/information/InformationProviderServiceImpl.java (original)
+++ portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/information/InformationProviderServiceImpl.java Tue Oct 23 22:34:08 2007
@@ -25,6 +25,8 @@
import org.apache.pluto.services.information.InformationProviderService;
import org.apache.pluto.services.information.StaticInformationProvider;
+import org.apache.jetspeed.aggregator.CurrentWorkerContext;
+
/**
* Factory class for getting Information Provider access
*
@@ -60,7 +62,18 @@
if (provider == null)
{
provider = new DynamicInformationProviderImpl(request, servletConfig);
- request.setAttribute("org.apache.jetspeed.engine.core.DynamicInformationProvider", provider);
+
+ if (CurrentWorkerContext.getParallelRenderingMode())
+ {
+ synchronized (request)
+ {
+ request.setAttribute("org.apache.jetspeed.engine.core.DynamicInformationProvider", provider);
+ }
+ }
+ else
+ {
+ request.setAttribute("org.apache.jetspeed.engine.core.DynamicInformationProvider", provider);
+ }
}
return provider;
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org