This is an automated email from the ASF dual-hosted git repository.
thomasm pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push:
new a4db47ffbc OAK-11866 Support for datastore files without length (#2458)
a4db47ffbc is described below
commit a4db47ffbc46f2de85dc4929dd58cc7ec7541a17
Author: Thomas Mueller <[email protected]>
AuthorDate: Mon Aug 18 18:57:56 2025 +0200
OAK-11866 Support for datastore files without length (#2458)
* OAK-11866 Support for datastore files without length
* 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..1028cd8a47 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 lengthString = identifier.substring(hashIndex + 1);
+ this.length = Long.parseLong(lengthString);
+ } 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() {