Author: tomekr
Date: Thu Nov 10 10:46:00 2016
New Revision: 1769078
URL: http://svn.apache.org/viewvc?rev=1769078&view=rev
Log:
OAK-5009: ExternalToExternalMigrationTest failures on Windows
Support empty blob identities in the migrator.
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/BlobMigrator.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/migration/AbstractMigratorTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/BlobMigrator.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/BlobMigrator.java?rev=1769078&r1=1769077&r2=1769078&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/BlobMigrator.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/BlobMigrator.java
Thu Nov 10 10:46:00 2016
@@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.commons.codec.digest.DigestUtils;
import org.apache.jackrabbit.oak.api.Blob;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.PropertyState;
@@ -176,7 +177,7 @@ public class BlobMigrator {
private PropertyState migrateProperty(PropertyState propertyState) throws
IOException {
Blob oldBlob = propertyState.getValue(Type.BINARY);
- String blobId = oldBlob.getContentIdentity();
+ String blobId = getIdentity(oldBlob);
if (blobStore.isMigrated(blobId)) {
return null;
}
@@ -196,7 +197,7 @@ public class BlobMigrator {
builder.assignFrom(propertyState);
boolean blobUpdated = false;
for (Blob oldBlob : oldBlobs) {
- String blobId = oldBlob.getContentIdentity();
+ String blobId = getIdentity(oldBlob);
if (blobStore.isMigrated(blobId)) {
newBlobs.add(new BlobStoreBlob(blobStore, blobId));
} else {
@@ -213,4 +214,12 @@ public class BlobMigrator {
return null;
}
}
+
+ private String getIdentity(Blob blob) throws IOException {
+ String id = blob.getContentIdentity();
+ if (id == null) {
+ id = DigestUtils.shaHex(blob.getNewStream());
+ }
+ return id;
+ }
}
\ No newline at end of file
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/migration/AbstractMigratorTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/migration/AbstractMigratorTest.java?rev=1769078&r1=1769077&r2=1769078&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/migration/AbstractMigratorTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/migration/AbstractMigratorTest.java
Thu Nov 10 10:46:00 2016
@@ -91,7 +91,6 @@ public abstract class AbstractMigratorTe
}
@Test
- @Ignore("OAK-5009")
public void blobsExistsOnTheNewBlobStore() throws IOException,
CommitFailedException {
migrator.migrate();
NodeState root = nodeStore.getRoot();
@@ -101,7 +100,6 @@ public abstract class AbstractMigratorTe
}
@Test
- @Ignore("OAK-5009")
public void blobsCanBeReadAfterSwitchingBlobStore() throws IOException,
CommitFailedException {
migrator.migrate();
closeNodeStore();