proyal 2002/12/04 04:18:36
Modified: fortress/src/java/org/apache/excalibur/fortress/handler
AbstractComponentHandler.java
LEAwareComponentHandler.java
Log:
Changes inspired by Christopher Kohlhaas <[EMAIL PROTECTED]>
* Have LEAwareComponentHandler disposed its underlying ComponentHandler
* Dont allow ComponentHandlerst hat extend AbstractComponentHandler to prepare
themselves after being disposed of
Revision Changes Path
1.42 +10 -1
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/AbstractComponentHandler.java
Index: AbstractComponentHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/AbstractComponentHandler.java,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- AbstractComponentHandler.java 12 Nov 2002 04:05:02 -0000 1.41
+++ AbstractComponentHandler.java 4 Dec 2002 12:18:36 -0000 1.42
@@ -151,6 +151,15 @@
return;
}
+ if( m_disposed )
+ {
+ final String message = "Attempted to prepare disposed ComponentHandler
for : " +
+ m_factory.getCreatedClass().getName();
+ m_logger.warn( message );
+
+ return;
+ }
+
doPrepare();
if( m_logger.isDebugEnabled() )
1.6 +9 -2
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/LEAwareComponentHandler.java
Index: LEAwareComponentHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/LEAwareComponentHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- LEAwareComponentHandler.java 24 Nov 2002 16:45:19 -0000 1.5
+++ LEAwareComponentHandler.java 4 Dec 2002 12:18:36 -0000 1.6
@@ -50,6 +50,8 @@
package org.apache.excalibur.fortress.handler;
import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.excalibur.fortress.lifecycle.LifecycleExtensionManager;
/**
@@ -60,7 +62,7 @@
* @version CVS $Revision$ $Date$
*/
public class LEAwareComponentHandler
- implements ComponentHandler
+ implements ComponentHandler, Disposable
{
private final ComponentHandler m_componentHandler;
private final LifecycleExtensionManager m_extManager;
@@ -123,5 +125,10 @@
// REVISIT(MC): we need to log this somewhere
}
m_componentHandler.put( component );
+ }
+
+ public void dispose()
+ {
+ ContainerUtil.dispose( m_componentHandler );
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>