Author: cziegeler
Date: Sun Oct 31 10:32:28 2004
New Revision: 56145

Modified:
   
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/CocoonComponentManager.java
Log:
Revert commit 55286 which causes NPEs and other exceptions with the cocoon 
protocol - don't know why though

Modified: 
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/CocoonComponentManager.java
==============================================================================
--- 
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/CocoonComponentManager.java
      (original)
+++ 
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/CocoonComponentManager.java
      Sun Oct 31 10:32:28 2004
@@ -213,9 +213,10 @@
      *         [EMAIL PROTECTED] #startProcessing(Environment)}.
      */
     public static void endProcessing(Environment env, Object key) {
-        ((EnvironmentDescription) key).release();
+               env.finishingProcessing();
+        final EnvironmentDescription desc = (EnvironmentDescription)key;
+        desc.release();
         env.getObjectModel().remove(PROCESS_KEY);
-        env.finishingProcessing();
     }
 
     /**
@@ -290,10 +291,12 @@
             return this;
         }
 
-        final EnvironmentStack stack = (EnvironmentStack) 
environmentStack.get();
-        if (stack != null && !stack.isEmpty()) {
-            final EnvironmentDescription desc = 
getCurrentEnvironmentDescriptor(stack);
-            if (null != desc) {
+        final EnvironmentStack stack = 
(EnvironmentStack)environmentStack.get();
+        if ( null != stack && !stack.empty()) {
+            final Object[] objects = (Object[])stack.getCurrent();
+            final Map objectModel = ((Environment)objects[0]).getObjectModel();
+            EnvironmentDescription desc = 
(EnvironmentDescription)objectModel.get(PROCESS_KEY);
+            if ( null != desc ) {
                 Component component = desc.getRequestLifecycleComponent(role);
                 if (null != component) {
                     return component;
@@ -413,10 +416,12 @@
                                                        final Component         
component,
                                                        final ComponentManager  
manager)
     throws ProcessingException {
-        final EnvironmentStack stack = (EnvironmentStack) 
environmentStack.get();
-        if (null != stack && !stack.empty()) {
-            final EnvironmentDescription desc = 
getCurrentEnvironmentDescriptor(stack);
-            if (null != desc) {
+        final EnvironmentStack stack = 
(EnvironmentStack)environmentStack.get();
+        if ( null != stack && !stack.empty()) {
+            final Object[] objects = (Object[])stack.get(0);
+            final Map objectModel = ((Environment)objects[0]).getObjectModel();
+            EnvironmentDescription desc = 
(EnvironmentDescription)objectModel.get(PROCESS_KEY);
+            if ( null != desc ) {
                 desc.addToAutoRelease(selector, component, manager);
             }
         } else {
@@ -430,10 +435,12 @@
     public static void addComponentForAutomaticRelease(final ComponentManager 
manager,
                                                        final Component        
component)
     throws ProcessingException {
-        final EnvironmentStack stack = (EnvironmentStack) 
environmentStack.get();
-        if (null != stack && !stack.empty()) {
-            final EnvironmentDescription desc = 
getCurrentEnvironmentDescriptor(stack);
-            if (null != desc) {
+        final EnvironmentStack stack = 
(EnvironmentStack)environmentStack.get();
+        if ( null != stack && !stack.empty()) {
+            final Object[] objects = (Object[])stack.get(0);
+            final Map objectModel = ((Environment)objects[0]).getObjectModel();
+            EnvironmentDescription desc = 
(EnvironmentDescription)objectModel.get(PROCESS_KEY);
+            if ( null != desc ) {
                 desc.addToAutoRelease(manager, component);
             }
         } else {
@@ -446,10 +453,12 @@
      */
     public static void removeFromAutomaticRelease(final Component component)
     throws ProcessingException {
-        final EnvironmentStack stack = (EnvironmentStack) 
environmentStack.get();
-        if (null != stack && !stack.empty()) {
-            final EnvironmentDescription desc = 
getCurrentEnvironmentDescriptor(stack);
-            if (null != desc) {
+        final EnvironmentStack stack = 
(EnvironmentStack)environmentStack.get();
+        if ( null != stack && !stack.empty()) {
+            final Object[] objects = (Object[])stack.get(0);
+            final Map objectModel = ((Environment)objects[0]).getObjectModel();
+            EnvironmentDescription desc = 
(EnvironmentDescription)objectModel.get(PROCESS_KEY);
+            if ( null != desc ) {
                 desc.removeFromAutoRelease(component);
             }
         } else {
@@ -457,12 +466,6 @@
         }
     }
 
-    private static EnvironmentDescription 
getCurrentEnvironmentDescriptor(final EnvironmentStack stack) {
-        final Object[] objects = (Object[]) stack.getCurrent();
-        final Map objectModel = ((Environment) objects[0]).getObjectModel();
-        return (EnvironmentDescription) 
objectModel.get(CocoonComponentManager.PROCESS_KEY);
-    }
-
     /**
      * Dispose
      */
@@ -591,8 +594,8 @@
      * All RequestLifecycleComponents and autoreleaseComponents are
      * released.
      */
-    synchronized void release() {
-        if (this.requestLifecycleComponents != null) {
+    void release() {
+        if ( this.requestLifecycleComponents != null ) {
             final Iterator iter = 
this.requestLifecycleComponents.values().iterator();
             while (iter.hasNext()) {
                 final Object[] o = (Object[])iter.next();
@@ -685,24 +688,24 @@
     /**
      * Add an automatically released component
      */
-    synchronized void addToAutoRelease(final ComponentSelector selector,
-                                       final Component         component,
-                                       final ComponentManager  manager) {
+    void addToAutoRelease(final ComponentSelector selector,
+                          final Component         component,
+                          final ComponentManager  manager) {
         this.autoreleaseComponents.add(new Object[] {component, selector, 
manager});
     }
 
     /**
      * Add an automatically released component
      */
-    synchronized void addToAutoRelease(final ComponentManager manager,
-                                       final Component        component) {
+    void addToAutoRelease(final ComponentManager manager,
+                          final Component        component) {
         this.autoreleaseComponents.add(new Object[] {component, manager});
     }
 
     /**
      * Remove from automatically released components
      */
-    synchronized void removeFromAutoRelease(final Component component)
+    void removeFromAutoRelease(final Component component)
     throws ProcessingException {
         int i = 0;
         boolean found = false;

Reply via email to