Author: fhanik
Date: Mon Aug 13 06:54:30 2007
New Revision: 565352

URL: http://svn.apache.org/viewvc?view=rev&rev=565352
Log:
Fix NPE in the map, add accessors to stats information

Modified:
    
tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
    
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java?view=diff&rev=565352&r1=565351&r2=565352
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
 Mon Aug 13 06:54:30 2007
@@ -16,6 +16,10 @@
 
 package org.apache.catalina.tribes.group.interceptors;
 
+import java.text.DecimalFormat;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
+
 import org.apache.catalina.tribes.ChannelException;
 import org.apache.catalina.tribes.ChannelMessage;
 import org.apache.catalina.tribes.Member;
@@ -23,10 +27,6 @@
 import org.apache.catalina.tribes.group.InterceptorPayload;
 import org.apache.catalina.tribes.io.ChannelData;
 import org.apache.catalina.tribes.io.XByteBuffer;
-import java.text.DecimalFormat;
-import org.apache.catalina.tribes.membership.MemberImpl;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
 
 
 
@@ -61,7 +61,7 @@
             super.sendMessage(destination, msg, payload);
         }catch ( ChannelException x ) {
             msgTxErr.addAndGet(1);
-            access.addAndGet(-1);
+            if ( access.get() == 1 ) access.addAndGet(-1);
             throw x;
         } 
         mbTx += ((double)(bytes*destination.length))/(1024d*1024d);
@@ -115,6 +115,46 @@
 
     public int getInterval() {
         return interval;
+    }
+
+    public double getLastCnt() {
+        return lastCnt;
+    }
+
+    public double getMbAppTx() {
+        return mbAppTx;
+    }
+
+    public double getMbRx() {
+        return mbRx;
+    }
+
+    public double getMbTx() {
+        return mbTx;
+    }
+
+    public AtomicLong getMsgRxCnt() {
+        return msgRxCnt;
+    }
+
+    public AtomicLong getMsgTxCnt() {
+        return msgTxCnt;
+    }
+
+    public AtomicLong getMsgTxErr() {
+        return msgTxErr;
+    }
+
+    public long getRxStart() {
+        return rxStart;
+    }
+
+    public double getTimeTx() {
+        return timeTx;
+    }
+
+    public long getTxStart() {
+        return txStart;
     }
 
 }

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?view=diff&rev=565352&r1=565351&r2=565352
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
Mon Aug 13 06:54:30 2007
@@ -511,7 +511,7 @@
                 while (i.hasNext()) {
                     Map.Entry e = (Map.Entry) i.next();
                     MapEntry entry = (MapEntry) super.get(e.getKey());
-                    if ( entry.isSerializable() ) {
+                    if ( entry != null && entry.isSerializable() ) {
                         boolean copy = (mapmsg.getMsgType() == 
mapmsg.MSG_STATE_COPY);
                         MapMessage me = new MapMessage(mapContextName, 
                                                        
copy?MapMessage.MSG_COPY:MapMessage.MSG_PROXY,
@@ -719,6 +719,7 @@
         while (i.hasNext()) {
             Map.Entry e = (Map.Entry) i.next();
             MapEntry entry = (MapEntry) super.get(e.getKey());
+            if (entry==null) continue;
             if (entry.isPrimary() && inSet(member,entry.getBackupNodes())) {
                 if (log.isDebugEnabled()) log.debug("[1] Primary choosing a 
new backup");
                 try {
@@ -977,7 +978,7 @@
                 while (i.hasNext()) {
                     Map.Entry e = (Map.Entry) i.next();
                     MapEntry entry = (MapEntry) super.get(e.getKey());
-                    if (entry.isPrimary() && value.equals(entry.getValue())) 
return true;
+                    if (entry!=null && entry.isPrimary() && 
value.equals(entry.getValue())) return true;
                 }//while
                 return false;
             }//end if
@@ -1062,7 +1063,7 @@
             while ( i.hasNext() ) {
                 Map.Entry e = (Map.Entry)i.next();
                 MapEntry entry = (MapEntry)super.get(e.getKey());
-                if ( entry.isPrimary() && entry.getValue()!=null) 
values.add(entry.getValue());
+                if (entry!=null && entry.isPrimary() && 
entry.getValue()!=null) values.add(entry.getValue());
             }
             return Collections.unmodifiableCollection(values);
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to