You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by az...@apache.org on 2008/01/10 13:56:04 UTC

svn commit: r610780 - in /webservices/axis2/trunk/java/modules: clustering/src/org/apache/axis2/clustering/context/ clustering/src/org/apache/axis2/clustering/tribes/ clustering/test/org/apache/axis2/clustering/ kernel/src/org/apache/axis2/context/

Author: azeez
Date: Thu Jan 10 04:56:03 2008
New Revision: 610780

URL: http://svn.apache.org/viewvc?rev=610780&view=rev
Log:
Handling of NULL properties

Modified:
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
    webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/PropertyDifference.java

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java?rev=610780&r1=610779&r2=610780&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java Thu Jan 10 04:56:03 2008
@@ -161,9 +161,10 @@
                 Map diffs = context.getPropertyDifferences();
                 for (Iterator iter = diffs.keySet().iterator(); iter.hasNext();) {
                     String key = (String) iter.next();
-                    Object value = context.getPropertyNonReplicable(key);
+                    PropertyDifference diff = (PropertyDifference) diffs.get(key);
+                    Object value = diff.getValue();
 
-                    if (value instanceof Serializable || value == null) { // in the case of removing properties, the value can be null
+                    if (value instanceof Serializable) {
 
                         // Next check whether it matches an excluded pattern
                         if (!isExcluded(key,
@@ -172,8 +173,6 @@
                             if (log.isDebugEnabled()) {
                                 log.debug("sending property =" + key + "-" + value);
                             }
-                            PropertyDifference diff = (PropertyDifference) diffs.get(key);
-                            diff.setValue(value);
                             updateCmd.addProperty(diff);
                         }
                     }
@@ -184,7 +183,7 @@
                 for (Iterator iter = context.getPropertyNames(); iter.hasNext();) {
                     String key = (String) iter.next();
                     Object value = context.getPropertyNonReplicable(key);
-                    if (value instanceof Serializable || value == null) { // in the case of removing properties, the value can be null
+                    if (value instanceof Serializable) { 
 
                         // Next check whether it matches an excluded pattern
                         if (!isExcluded(key, context.getClass().getName(), excludedPropertyPatterns)) {

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java?rev=610780&r1=610779&r2=610780&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java Thu Jan 10 04:56:03 2008
@@ -106,7 +106,8 @@
      * @return boolean
      */
     public boolean accept(Serializable msg, Member sender) {
-        return true;
+        return configurationContext.
+                getPropertyNonReplicable(ClusteringConstants.CLUSTER_INITIALIZED) != null;
     }
 
     /**

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java?rev=610780&r1=610779&r2=610780&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java Thu Jan 10 04:56:03 2008
@@ -52,7 +52,8 @@
         if (members.length > 0) {
             try {
                 long start = System.currentTimeMillis();
-                channel.send(members, toByteMessage(msg), Channel.SEND_OPTIONS_USE_ACK);
+                channel.send(members, toByteMessage(msg), Channel.SEND_OPTIONS_SYNCHRONIZED_ACK);
+//                channel.send(members, toByteMessage(msg), Channel.SEND_OPTIONS_USE_ACK);
                 timeToSend = System.currentTimeMillis() - start;
                 log.debug("Sent " + msg + " to group");
             } catch (NotSerializableException e) {
@@ -106,7 +107,8 @@
         try {
             if (member.isReady()) {
                 long start = System.currentTimeMillis();
-                channel.send(new Member[]{member}, toByteMessage(cmd), Channel.SEND_OPTIONS_USE_ACK);
+                channel.send(new Member[]{member}, toByteMessage(cmd), Channel.SEND_OPTIONS_SYNCHRONIZED_ACK);
+//                channel.send(new Member[]{member}, toByteMessage(cmd), Channel.SEND_OPTIONS_USE_ACK);
                 timeToSend = System.currentTimeMillis() - start;
                 log.debug("Sent " + cmd + " to " + TribesUtil.getHost(member));
             }

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java?rev=610780&r1=610779&r2=610780&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java Thu Jan 10 04:56:03 2008
@@ -266,7 +266,7 @@
                             setNonReplicableProperty(ClusteringConstants.TIME_TO_SEND,
                                                      new Long(tts));
                     sentMembersList.add(TribesUtil.getHost(member));
-                    log.debug("WAITING FOR STATE INITIALIZATION MESSAGE...");
+                    log.debug("WAITING FOR INITIALIZATION MESSAGE...");
                     Thread.sleep(tts + 5 * (numberOfTries + 1));
                 }
             } catch (Exception e) {

Modified: webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java?rev=610780&r1=610779&r2=610780&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java Thu Jan 10 04:56:03 2008
@@ -44,19 +44,23 @@
 
     private static final String TEST_SERVICE_NAME = "testService";
 
+    // --------------- Cluster-1 ------------------------------------------------------
     private ClusterManager clusterManager1;
     private ContextManager ctxMan1;
     private ConfigurationManager configMan1;
     private ConfigurationContext configurationContext1;
     private AxisServiceGroup serviceGroup1;
     private AxisService service1;
+    //---------------------------------------------------------------------------------
 
+    // --------------- Cluster-2 ------------------------------------------------------
     private ClusterManager clusterManager2;
     private ContextManager ctxMan2;
     private ConfigurationManager configMan2;
     private ConfigurationContext configurationContext2;
     private AxisServiceGroup serviceGroup2;
     private AxisService service2;
+    //---------------------------------------------------------------------------------
 
     protected void setUp() throws Exception {
         System.setProperty(ClusteringConstants.LOCAL_IP_ADDRESS, HttpUtils.getIpAddress());

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java?rev=610780&r1=610779&r2=610780&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java Thu Jan 10 04:56:03 2008
@@ -115,7 +115,7 @@
 
             // Assume that a property is which is read may be updated.
             // i.e. The object pointed to by 'value' may be modified after it is read
-            addPropertyDifference(key);
+            addPropertyDifference(key, obj);
         }
         return obj;
     }
@@ -137,7 +137,7 @@
 
             // Assume that a property is which is read may be updated.
             // i.e. The object pointed to by 'value' may be modified after it is read
-            addPropertyDifference(key);
+            addPropertyDifference(key, obj);
         }
         return obj;
     }
@@ -168,10 +168,10 @@
             this.properties = new HashMap();
         }
         properties.put(key, value);
-        addPropertyDifference(key);
+        addPropertyDifference(key, value);
     }
 
-    private void addPropertyDifference(String key) {
+    private void addPropertyDifference(String key, Object value) {
         ConfigurationContext cc = getRootContext();
         if (cc == null) {
             return;
@@ -186,7 +186,7 @@
         // Narrowed the synchronization so that we only wait
         // if a property difference is added.
         synchronized(this) {
-            propertyDifferences.put(key, new PropertyDifference(key, false));
+            propertyDifferences.put(key, new PropertyDifference(key, value, false));
         }
     }
 
@@ -211,10 +211,13 @@
      * @param key
      */
     public synchronized void removeProperty(String key) {
-        if (properties != null) {
-            properties.remove(key);
+        Object value = properties.get(key);
+        if (value != null) {
+            if (properties != null) {
+                properties.remove(key);
+            }
+            propertyDifferences.put(key, new PropertyDifference(key, value, true));
         }
-        propertyDifferences.put(key, new PropertyDifference(key, true));
     }
 
     /**

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/PropertyDifference.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/PropertyDifference.java?rev=610780&r1=610779&r2=610780&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/PropertyDifference.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/PropertyDifference.java Thu Jan 10 04:56:03 2008
@@ -30,11 +30,6 @@
     private Object value;
     private boolean isRemoved;
 
-    public PropertyDifference(String key, boolean isRemoved) {
-        this.key = key;
-        this.isRemoved = isRemoved;
-    }
-
     public PropertyDifference(String key, Object value, boolean isRemoved) {
         this.key = key;
         this.value = value;



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org