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 ju...@apache.org on 2014/02/19 15:44:30 UTC
svn commit: r1569770 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java
Author: jukka
Date: Wed Feb 19 14:44:29 2014
New Revision: 1569770
URL: http://svn.apache.org/r1569770
Log:
OAK-1409: After crash, segment persistence is broken with failures in java.nio classes
Truncate the tar file if an invalid entry is found.
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java?rev=1569770&r1=1569769&r2=1569770&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/TarFile.java Wed Feb 19 14:44:29 2014
@@ -81,6 +81,8 @@ class TarFile {
if (name.isEmpty() && size == 0) {
break; // no more entries in this file
+ } else if (position + BLOCK_SIZE + size > len) {
+ break; // invalid entry, truncate the file at this point
}
try {