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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]