svnno****@sourc*****
svnno****@sourc*****
2008年 12月 27日 (土) 07:10:41 JST
Revision: 1621 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1621 Author: shinsuke Date: 2008-12-27 07:10:40 +0900 (Sat, 27 Dec 2008) Log Message: ----------- fixed deadlock problem. Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/ContentFragmentImpl.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources.properties pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources_en.properties pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources_ja.properties pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/aggregator/impl/WorkerMonitorImpl.java pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/assembly/aggregation.xml -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/ContentFragmentImpl.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/ContentFragmentImpl.java 2008-12-23 02:59:52 UTC (rev 1620) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/ContentFragmentImpl.java 2008-12-26 22:10:40 UTC (rev 1621) @@ -159,7 +159,11 @@ {getId()}; log.log("1100004", args); // REPLACED } - portletContent.wait(); + while (overridenContent != null + && !portletContent.isComplete()) + { + portletContent.wait(1000); + } return portletContent.getContent(); } catch (InterruptedException e) Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources.properties =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources.properties 2008-12-23 02:59:52 UTC (rev 1620) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources.properties 2008-12-26 22:10:40 UTC (rev 1621) @@ -2,3 +2,4 @@ could.not.access.portlet=Sorry, but we were unable access the requested content. Please contact to a site administrator. out.of.service=The content is not responding and has been taken out of service. access.denied=Access denied. +could.not.access.content.because.of.timeout=Coult not access this content because of a timeout. Please try again later. Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources_en.properties =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources_en.properties 2008-12-23 02:59:52 UTC (rev 1620) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources_en.properties 2008-12-26 22:10:40 UTC (rev 1621) @@ -2,3 +2,4 @@ could.not.access.portlet=Sorry, but we were unable access the requested content. Please contact to a site administrator. out.of.service=The content is not responding and has been taken out of service. access.denied=Access denied. +could.not.access.content.because.of.timeout=Coult not access this content because of a timeout. Please try again later. Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources_ja.properties =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources_ja.properties 2008-12-23 02:59:52 UTC (rev 1620) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/page/resources/ContentFragmentResources_ja.properties 2008-12-26 22:10:40 UTC (rev 1621) @@ -2,3 +2,4 @@ could.not.access.portlet=\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30b5\u30a4\u30c8\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 out.of.service=\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306f\u30b5\u30fc\u30d3\u30b9\u505c\u6b62\u4e2d\u3067\u3059\u3002 access.denied=\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 +could.not.access.content.because.of.timeout=\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u306b\u3088\u308a\u3001\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3078\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5f8c\u3067\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002 Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/aggregator/impl/WorkerMonitorImpl.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/aggregator/impl/WorkerMonitorImpl.java 2008-12-23 02:59:52 UTC (rev 1620) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/aggregator/impl/WorkerMonitorImpl.java 2008-12-26 22:10:40 UTC (rev 1621) @@ -229,6 +229,7 @@ { try { + long now = System.currentTimeMillis(); for (Iterator iter = renderingJobs.iterator(); iter.hasNext();) { RenderingJob job = (RenderingJob) iter.next(); @@ -238,7 +239,28 @@ { if (!portletContent.isComplete()) { - portletContent.wait(); + if (job.getTimeout() == 0) + { + portletContent.wait(); + } + else + { + long remainingTime = job.getTimeout() + - (System.currentTimeMillis() - now); + if (remainingTime <= 0) + { + remainingTime = 1L; + } + portletContent.wait(remainingTime); + if (!portletContent.isComplete()) + { + // Timeout + job + .getFragment() + .overrideRenderedContent( + "could.not.access.content.because.of.timeout"); + } + } } } } @@ -423,27 +445,28 @@ { try { - //if (log.isWarnEnabled()) - //{ - PortletWindow window = job.getWindow(); - ObjectID windowId = (null != window ? window.getId() : null); - //log - // .warn("Portlet Rendering job to be interrupted by timeout (" - // + job.getTimeout() + "ms): " + windowId); - Object[] args = new Object[] - {job.getTimeout(), windowId}; - log.log("1200028", args); // REPLACED - //} - PortletContent content = job.getPortletContent(); synchronized (content) { if (!content.isComplete()) { + //if (log.isWarnEnabled()) + //{ + PortletWindow window = job.getWindow(); + ObjectID windowId = (null != window ? window.getId() + : null); + //log + // .warn("Portlet Rendering job to be interrupted by timeout (" + // + job.getTimeout() + "ms): " + windowId); + Object[] args = new Object[] + {job.getTimeout(), windowId}; + log.log("1200028", args); // REPLACED + //} + worker.interrupt(); // TODO Findbugs - content.wait(); + content.wait(job.getTimeout()); } } Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/assembly/aggregation.xml =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/assembly/aggregation.xml 2008-12-23 02:59:52 UTC (rev 1620) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/assembly/aggregation.xml 2008-12-26 22:10:40 UTC (rev 1621) @@ -26,7 +26,7 @@ Zero means no portlet timeout option by default. --> <constructor-arg index='1'> - <value>5000</value> + <value>30000</value> </constructor-arg> <!-- Out of service limit, if a portlet entity times out past its limit (or default limit) n consecutive times, it is taken out of service --> <constructor-arg index="2">