You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/03/26 15:48:33 UTC

svn commit: r1581872 - /tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java

Author: markt
Date: Wed Mar 26 14:48:32 2014
New Revision: 1581872

URL: http://svn.apache.org/r1581872
Log:
Locks should be outside try/finally

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

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?rev=1581872&r1=1581871&r2=1581872&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Wed Mar 26 14:48:32 2014
@@ -416,10 +416,9 @@ public abstract class AbstractReplicated
             }
             //check to see if the message is diffable
             MapMessage msg = null;
-            if (rentry != null && rentry.isDiffable() &&
-                    (isDirty || complete)) {
+            if (rentry != null && rentry.isDiffable() && (isDirty || complete)) {
+                rentry.lock();
                 try {
-                    rentry.lock();
                     //construct a diff message
                     msg = new MapMessage(mapContextName, MapMessage.MSG_BACKUP,
                                          true, (Serializable) entry.getKey(), null,
@@ -432,7 +431,6 @@ public abstract class AbstractReplicated
                 } finally {
                     rentry.unlock();
                 }
-
             }
             if (msg == null && complete) {
                 //construct a complete
@@ -440,7 +438,6 @@ public abstract class AbstractReplicated
                                      false, (Serializable) entry.getKey(),
                                      (Serializable) entry.getValue(),
                                      null, entry.getPrimary(),entry.getBackupNodes());
-
             }
             if (msg == null) {
                 //construct a access message
@@ -656,8 +653,8 @@ public abstract class AbstractReplicated
                 if (entry.getValue() instanceof ReplicatedMapEntry) {
                     ReplicatedMapEntry diff = (ReplicatedMapEntry) entry.getValue();
                     if (mapmsg.isDiff()) {
+                        diff.lock();
                         try {
-                            diff.lock();
                             diff.applyDiff(mapmsg.getDiffValue(), 0, mapmsg.getDiffValue().length);
                         } catch (Exception x) {
                             log.error("Unable to apply diff to key:" + entry.getKey(), x);
@@ -1259,8 +1256,8 @@ public abstract class AbstractReplicated
         public void apply(byte[] data, int offset, int length, boolean diff) throws IOException, ClassNotFoundException {
             if (isDiffable() && diff) {
                 ReplicatedMapEntry rentry = (ReplicatedMapEntry) value;
+                rentry.lock();
                 try {
-                    rentry.lock();
                     rentry.applyDiff(data, offset, length);
                 } finally {
                     rentry.unlock();



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