Skip to content

VPack parsing error. #80

Closed
Closed
@sckimos

Description

@sckimos

Hi.

Could you check following code out?

// creating json string: { "foo1": { "bar1": "", "bar2": "aaa...aaa" }, "foo2":"test" }
StringBuilder json = new StringBuilder().append("{ \"foo1\": { \"bar1\": \"\", \"bar2\": \"");
for (int i = 0; i < 231; ++i) { // the length 231 is important!
    json.append("a");
}
json.append("\" }, \"foo2\":\"test\" }");
VPackSlice slice = new VPackParser().fromJson(json.toString());
System.out.println(slice.toString());

slice.toString() throws NoSuchElementException:

Exception in thread "main" java.util.NoSuchElementException
	at com.arangodb.velocypack.ObjectIterator$1.getKey(ObjectIterator.java:80)
	at com.arangodb.velocypack.ObjectIterator$1.getKey(ObjectIterator.java:64)
	at com.arangodb.velocypack.VPackParser.parseObject(VPackParser.java:188)
	at com.arangodb.velocypack.VPackParser.parse(VPackParser.java:153)
	at com.arangodb.velocypack.VPackParser.toJson(VPackParser.java:73)
	at com.arangodb.velocypack.VPackSlice.toString(VPackSlice.java:774)
	at net.g1project.arangodbtest.ArangoDBTest.main(ArangoDBTest.java:81)

I printed out slice.getBuffer(), and I think that object length is not set properly in some cases.

0c 1c 01 02 00 00 00 00 00 44 66 6f 6f 31 0b *00* 02 44 62 61 72 31 40 44 62 61 72 32 bf e7 00 00 00 00 00 00 00 61 61 61 61 61 ...

I'm using 4.1.3 version.

Thanks in advance.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions