DL-140: Fix distributedlog-core findbug inconsistent synchronization warings
Author: xieliang <xieliang007@gmail.com>
Reviewers: Leigh Stewart <lstewart@apache.org>
Closes #71 from xieliang/DL-140
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKAbstractLogWriter.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKAbstractLogWriter.java
index b0cea24..d1c28d7 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKAbstractLogWriter.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKAbstractLogWriter.java
@@ -54,7 +54,7 @@
// States
private Promise<Void> closePromise = null;
- private boolean forceRolling = false;
+ private volatile boolean forceRolling = false;
private boolean forceRecovery = false;
// Truncation Related
@@ -531,7 +531,7 @@
}
@VisibleForTesting
- public synchronized void setForceRolling(boolean forceRolling) {
+ public void setForceRolling(boolean forceRolling) {
this.forceRolling = forceRolling;
}
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogSegmentWriter.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogSegmentWriter.java
index 8029f89..df64505 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogSegmentWriter.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogSegmentWriter.java
@@ -420,7 +420,7 @@
*
* @return position-within-logsegment of the last written log record.
*/
- int getPositionWithinLogSegment() {
+ synchronized int getPositionWithinLogSegment() {
return positionWithinLogSegment;
}
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/EnvelopedEntryWriter.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/EnvelopedEntryWriter.java
index df56288..01a91ab 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/EnvelopedEntryWriter.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/EnvelopedEntryWriter.java
@@ -176,7 +176,7 @@
}
@Override
- public DLSN finalizeTransmit(long lssn, long entryId) {
+ public synchronized DLSN finalizeTransmit(long lssn, long entryId) {
return new DLSN(lssn, entryId, count - 1);
}
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/MaxTxId.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/MaxTxId.java
index c3948df..8eabf88 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/MaxTxId.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/MaxTxId.java
@@ -65,7 +65,7 @@
return currentMax;
}
- public Versioned<Long> getVersionedData(long txId) {
+ public synchronized Versioned<Long> getVersionedData(long txId) {
return new Versioned<Long>(Math.max(txId, get()), version);
}
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/lock/ZKDistributedLock.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/lock/ZKDistributedLock.java
index 7e9f35b..4d0de7f 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/lock/ZKDistributedLock.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/lock/ZKDistributedLock.java
@@ -336,12 +336,12 @@
}
@VisibleForTesting
- Future<ZKDistributedLock> getLockReacquireFuture() {
+ synchronized Future<ZKDistributedLock> getLockReacquireFuture() {
return lockReacquireFuture;
}
@VisibleForTesting
- Future<ZKDistributedLock> getLockAcquireFuture() {
+ synchronized Future<ZKDistributedLock> getLockAcquireFuture() {
return lockAcquireFuture;
}