You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by al...@apache.org on 2016/09/20 07:33:33 UTC
svn commit: r1761534 -
/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarWriter.java
Author: alexparvulescu
Date: Tue Sep 20 07:33:32 2016
New Revision: 1761534
URL: http://svn.apache.org/viewvc?rev=1761534&view=rev
Log:
OAK-4824 Deadlock in TarWriter
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarWriter.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarWriter.java?rev=1761534&r1=1761533&r2=1761534&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarWriter.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarWriter.java Tue Sep 20 07:33:32 2016
@@ -365,11 +365,13 @@ class TarWriter implements Closeable {
* internal {@link #writeIndex} counter. Otherwise it will return the
* current instance.
*/
- synchronized TarWriter createNextGeneration() throws IOException {
+ TarWriter createNextGeneration() throws IOException {
checkState(writeIndex >= 0);
// If nothing was written to this file, then we're already done.
- if (access == null) {
- return this;
+ synchronized (this) {
+ if (access == null) {
+ return this;
+ }
}
close();
int newIndex = writeIndex + 1;