You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2007/03/27 06:44:07 UTC

svn commit: r522745 - in /tomcat/tc6.0.x/trunk/java/org/apache/catalina: core/ApplicationContext.java ha/context/ReplicatedContext.java tribes/tipis/AbstractReplicatedMap.java

Author: fhanik
Date: Mon Mar 26 21:44:06 2007
New Revision: 522745

URL: http://svn.apache.org/viewvc?view=rev&rev=522745
Log:
fixes for
http://issues.apache.org/bugzilla/show_bug.cgi?id=41166
although there is still work to be done, need to separate Tomcat attributes vs. application attributes

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java?view=diff&rev=522745&r1=522744&r2=522745
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/ApplicationContext.java Mon Mar 26 21:44:06 2007
@@ -804,12 +804,17 @@
 
 
     // -------------------------------------------------------- Package Methods
-
-
+    protected StandardContext getContext() {
+        return this.context;
+    }
+    
+    protected Map getReadonlyAttributes() {
+        return this.readOnlyAttributes;
+    }
     /**
      * Clear all application-created attributes.
      */
-    void clearAttributes() {
+    protected void clearAttributes() {
 
         // Create list of attributes to be removed
         ArrayList list = new ArrayList();

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java?view=diff&rev=522745&r1=522744&r2=522745
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/context/ReplicatedContext.java Mon Mar 26 21:44:06 2007
@@ -26,6 +26,11 @@
 import org.apache.catalina.Globals;
 import javax.servlet.ServletContext;
 import java.util.AbstractMap;
+import org.apache.catalina.tribes.tipis.AbstractReplicatedMap;
+import java.util.ArrayList;
+import java.util.Iterator;
+import javax.servlet.ServletContextAttributeListener;
+import javax.servlet.ServletContextAttributeEvent;
 
 /**
  * @author Filip Hanik
@@ -98,6 +103,12 @@
     }
     
     public ServletContext getServletContext() {
+        if (context == null) {
+            context = new ReplApplContext(getBasePath(), this);
+            if (getAltDDName() != null)
+                context.setAttribute(Globals.ALT_DD_ATTR,getAltDDName());
+        }
+
         return ((ReplApplContext)context).getFacade();
 
     }
@@ -118,8 +129,19 @@
         public void setAttributeMap(AbstractMap map) {
             this.attributes = map;
         }
-
+        
+        public void removeAttribute(String name) {
+            //do nothing
+            super.removeAttribute(name);
+        }
+        
+        public void setAttribute(String name, Object value) {
+            //do nothing
+            super.setAttribute(name,value);
+        }
+        
     }
+
 
 
 }

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?view=diff&rev=522745&r1=522744&r2=522745
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Mon Mar 26 21:44:06 2007
@@ -747,10 +747,13 @@
      * @return Object
      */
     public Object remove(Object key) {
+        return remove(key,true);
+    }
+    public Object remove(Object key, boolean notify) {
         MapEntry entry = (MapEntry)super.remove(key);
 
         try {
-            if (getMapMembers().length > 0 ) {
+            if (getMapMembers().length > 0 && notify) {
                 MapMessage msg = new MapMessage(getMapContextName(), MapMessage.MSG_REMOVE, false, (Serializable) key, null, null, null);
                 getChannel().send(getMapMembers(), msg, getChannelSendOptions());
             }
@@ -885,11 +888,20 @@
                 put(entry.getKey(),entry.getValue());
             }
         }
-    
+        
         public void clear() {
-            //only delete active keys
-            Iterator keys = keySet().iterator();
-            while ( keys.hasNext() ) remove(keys.next());
+            clear(true);
+        }
+    
+        public void clear(boolean notify) {
+            if ( notify ) {
+                //only delete active keys
+                Iterator keys = keySet().iterator();
+                while (keys.hasNext())
+                    remove(keys.next());
+            } else {
+                super.clear();
+            }
         }
     
         public boolean containsValue(Object value) {
@@ -933,8 +945,9 @@
             Iterator i = super.entrySet().iterator();
             while ( i.hasNext() ) {
                 Map.Entry e = (Map.Entry)i.next();
-                MapEntry entry = (MapEntry)e.getValue();
-                if ( entry.isPrimary() ) set.add(entry);
+                Object key = e.getKey();
+                MapEntry entry = (MapEntry)super.get(key);
+                if ( entry.isPrimary() ) set.add(entry.getValue());
             }
             return Collections.unmodifiableSet(set);
         }
@@ -946,10 +959,12 @@
             Iterator i = super.entrySet().iterator();
             while ( i.hasNext() ) {
                 Map.Entry e = (Map.Entry)i.next();
-                MapEntry entry = (MapEntry)e.getValue();
-                if ( entry.isPrimary() ) set.add(entry.getKey());
+                Object key = e.getKey();
+                MapEntry entry = (MapEntry)super.get(key);
+                if ( entry.isPrimary() ) set.add(key);
             }
             return Collections.unmodifiableSet(set);
+
         }
     
     
@@ -1056,7 +1071,7 @@
 
         public Object setValue(Object value) {
             Object old = this.value;
-            this.value = (Serializable) value;
+            this.value = value;
             return old;
         }
 
@@ -1066,7 +1081,7 @@
         
         public Object setKey(Object key) {
             Object old = this.key;
-            this.key = (Serializable)key;
+            this.key = key;
             return old;
         }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org