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