ate 2005/03/25 16:22:53
Modified: components/portlet-factory/src/java/org/apache/jetspeed/factory
JetspeedPortletInstance.java
Log:
Removed waiting for active Threads to complete before destroying the portlet.
I ran into deadlocks while testing this with J1/Fusion. Unclear why, but
don't have the time to continue debugging this.
Revision Changes Path
1.3 +9 -51
jakarta-jetspeed-2/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletInstance.java
Index: JetspeedPortletInstance.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletInstance.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JetspeedPortletInstance.java 23 Mar 2005 22:25:50 -0000 1.2
+++ JetspeedPortletInstance.java 26 Mar 2005 00:22:53 -0000 1.3
@@ -39,7 +39,6 @@
{
private Portlet portlet;
private PortletConfig config;
- private long threadCount;
private boolean destroyed;
public JetspeedPortletInstance(Portlet portlet)
@@ -47,48 +46,21 @@
this.portlet = portlet;
}
- private void enterPortletThread() throws UnavailableException
+ private void checkAvailable() throws UnavailableException
{
- synchronized(portlet)
- {
- if ( destroyed )
- {
- throw new UnavailableException("Portlet
"+portlet.getClass().getName()+" no longer available");
- }
- threadCount++;
- }
- }
-
- private synchronized void exitPortletThread()
- {
- synchronized(portlet)
- {
- threadCount--;
- if ( threadCount == 0 && destroyed )
+ if ( destroyed )
{
- portlet.notifyAll();
+ throw new UnavailableException("Portlet
"+portlet.getClass().getName()+" no longer available");
}
- }
}
public void destroy()
{
- synchronized(portlet)
- {
if (!destroyed)
{
destroyed = true;
- if (threadCount > 0)
- {
- try
- {
- portlet.wait();
- }
- catch (InterruptedException e) {}
- }
}
- }
- portlet.destroy();
+ portlet.destroy();
}
public boolean equals(Object obj)
@@ -114,28 +86,14 @@
public void processAction(ActionRequest request, ActionResponse response)
throws PortletException, IOException
{
- enterPortletThread();
- try
- {
- portlet.processAction(request, response);
- }
- finally
- {
- exitPortletThread();
- }
+ checkAvailable();
+ portlet.processAction(request, response);
}
public void render(RenderRequest request, RenderResponse response) throws
PortletException, IOException
{
- enterPortletThread();
- try
- {
- portlet.render(request, response);
- }
- finally
- {
- exitPortletThread();
- }
+ checkAvailable();
+ portlet.render(request, response);
}
public String toString()
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]