This is an automated email from the ASF dual-hosted git repository. thomasm pushed a commit to branch OAK-11866-2 in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit ab729bab260db2687616797c1cc30536aed6f32d Author: Thomas Mueller <[email protected]> AuthorDate: Mon Aug 18 16:20:14 2025 +0200 OAK-11866 Support for datastore files without length --- .../indexer/document/flatfile/analysis/modules/BinaryId.java | 10 ++++++++-- .../document/flatfile/analysis/modules/BinarySizeTest.java | 10 ++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinaryId.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinaryId.java index 741c1cceae..e328a40b7c 100644 --- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinaryId.java +++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinaryId.java @@ -39,8 +39,14 @@ public class BinaryId { // <hex digits or '-'>#<length> // the '-' is ignored int hashIndex = identifier.lastIndexOf('#'); - String length = identifier.substring(hashIndex + 1); - this.length = Long.parseLong(length); + if (hashIndex >= 0) { + String length = identifier.substring(hashIndex + 1); + this.length = Long.parseLong(length); + } else { + // we do not know the length + this.length = 0; + hashIndex = identifier.length(); + } StringBuilder buff = new StringBuilder(48); for (int i = 0; i < hashIndex; i++) { char c = identifier.charAt(i); diff --git a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinarySizeTest.java b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinarySizeTest.java index a7b38b3cd2..fa97bf707b 100644 --- a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinarySizeTest.java +++ b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinarySizeTest.java @@ -28,6 +28,16 @@ import org.apache.jackrabbit.oak.index.indexer.document.flatfile.analysis.stream import org.junit.Test; public class BinarySizeTest { + + @Test + public void blobIdTest() { + BinaryId id = new BinaryId("0102030405060708090a0b0c0d0e0f1011121314"); + assertEquals(0, id.getLength()); + assertEquals(-7150699912153859141L, id.getLongHash()); + id = new BinaryId("0102030405060708090a0b0c0d0e0f1011121314#10000"); + assertEquals(10000, id.getLength()); + assertEquals(-7150699912153867093L, id.getLongHash()); + } @Test public void nodeNameFilter() {
