You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/10/18 15:34:21 UTC
svn commit: r326104 - in /cocoon/blocks/portal/trunk/java/org/apache/cocoon:
components/persistence/ portal/event/ portal/impl/ portal/tools/
portal/util/ portal/wsrp/adapter/
Author: cziegeler
Date: Tue Oct 18 06:34:13 2005
New Revision: 326104
URL: http://svn.apache.org/viewcvs?rev=326104&view=rev
Log:
Clean up usage of thread locals
Modified:
cocoon/blocks/portal/trunk/java/org/apache/cocoon/components/persistence/CastorSourceConverter.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/Receiver.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/AbstractComponent.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/tools/PortalToolManager.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/util/ReferenceFieldHandler.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/components/persistence/CastorSourceConverter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/components/persistence/CastorSourceConverter.java?rev=326104&r1=326103&r2=326104&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/components/persistence/CastorSourceConverter.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/components/persistence/CastorSourceConverter.java Tue Oct 18 06:34:13 2005
@@ -77,6 +77,8 @@
return result;
} catch (Exception e) {
throw new ConverterException(e.getMessage(), e);
+ } finally {
+ ReferenceFieldHandler.clearObjectMap();
}
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/Receiver.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/Receiver.java?rev=326104&r1=326103&r2=326104&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/Receiver.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/Receiver.java Tue Oct 18 06:34:13 2005
@@ -15,6 +15,8 @@
*/
package org.apache.cocoon.portal.event;
+import org.apache.cocoon.components.Preloadable;
+
/**
* A receiver registers its interest in a class
* of events through the {@link org.apache.cocoon.portal.event.EventManager}.
@@ -35,9 +37,12 @@
* several inform methods each with the corresponding event class as the first
* parameter.
*
+ * This interface extends {@link org.apache.cocoon.components.Preloadable}
+ * as a receiver should subscribe itself as soon as the portal starts up.
+ *
* @version $Id$
*/
-public interface Receiver {
+public interface Receiver extends Preloadable {
// THIS IS JUST A MARKER INTERFACE!
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/AbstractComponent.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/AbstractComponent.java?rev=326104&r1=326103&r2=326104&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/AbstractComponent.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/AbstractComponent.java Tue Oct 18 06:34:13 2005
@@ -25,7 +25,6 @@
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.cocoon.components.Preloadable;
import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.event.Receiver;
@@ -42,7 +41,7 @@
*/
public class AbstractComponent
extends AbstractLogEnabled
- implements Contextualizable, Serviceable, Disposable, ThreadSafe, Initializable, Preloadable {
+ implements Contextualizable, Serviceable, Disposable, ThreadSafe, Initializable {
// Implement Preloadable so that it automatically subscribes to events.
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/tools/PortalToolManager.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/tools/PortalToolManager.java?rev=326104&r1=326103&r2=326104&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/tools/PortalToolManager.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/tools/PortalToolManager.java Tue Oct 18 06:34:13 2005
@@ -35,6 +35,7 @@
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.components.Preloadable;
import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.impl.AbstractComponent;
import org.apache.cocoon.portal.tools.helper.PortalObjects;
@@ -52,7 +53,7 @@
*/
public class PortalToolManager
extends AbstractComponent
- implements Parameterizable {
+ implements Parameterizable, Preloadable {
public static final String ROLE = PortalToolManager.class.getName();
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/util/ReferenceFieldHandler.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/util/ReferenceFieldHandler.java?rev=326104&r1=326103&r2=326104&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/util/ReferenceFieldHandler.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/util/ReferenceFieldHandler.java Tue Oct 18 06:34:13 2005
@@ -15,7 +15,7 @@
*/
package org.apache.cocoon.portal.util;
-import java.util.HashMap;
+import java.util.Collections;
import java.util.Map;
/**
@@ -24,22 +24,20 @@
* @version $Id$
*/
public abstract class ReferenceFieldHandler extends AbstractFieldHandler {
+
/**
* Used to pass resolvable objects to the field handler.
*/
- private static ThreadLocal threadLocalMap = new InheritableThreadLocal();
+ private static ThreadLocal threadLocalMap = new ThreadLocal();
/**
* Gets the map used to pass resolvable objects to the field handler.
*/
public static Map getObjectMap() {
Map map = (Map) threadLocalMap.get();
-
if (map == null) {
- map = new HashMap();
- threadLocalMap.set(map);
+ map = Collections.EMPTY_MAP;
}
-
return map;
}
@@ -47,10 +45,10 @@
* Sets the map used to pass resolvable objects to the field handler.
*/
public static void setObjectMap(Map objectMap) {
- if (objectMap == null) {
- threadLocalMap.set(new HashMap());
- } else {
- threadLocalMap.set(objectMap);
- }
+ threadLocalMap.set(objectMap);
+ }
+
+ public static void clearObjectMap() {
+ threadLocalMap.set(null);
}
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java?rev=326104&r1=326103&r2=326104&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java Tue Oct 18 06:34:13 2005
@@ -162,7 +162,7 @@
protected ConsumerEnvironmentImpl consumerEnvironment;
/** Stores the current coplet instance data per thread. */
- protected final ThreadLocal copletInstanceData = new InheritableThreadLocal();
+ protected final ThreadLocal copletInstanceData = new ThreadLocal();
/** The servlet configuration. */
protected ServletConfig servletConfig;