rdfhdt / hdt-java

HDT Java library and tools.
Other
94 stars 69 forks source link

Fix #104 "java.lang.NegativeArraySizeException parsing Wikidata HDT file" and fix some warnings #157

Closed ate47 closed 2 years ago

ate47 commented 2 years ago

In this pull request, I've fixed the issue #104, in fact in was the same issue as the issue #126, but for the HDTs obtained with HDTManager.loadHDT(...), the previous pull request #154 was fixing the bug for HDT obtained with HDTManager.mapHDT(...). My fix is the same as the one for the map.

HDT-Java was casting a long value to an int, but because the long was bigger than Integer.MAX_VALUE, it was creating an overflow and returning a negative ID.

This pull request wasn't as obvious as the previous one, while searching for the bug, I've fixed some warnings and create an utility test class LargeFakeDataSetStreamSupplier to create large test HDT or RDF streams and added some int to long in the mapped section, I can rebase my commits to remove them if necessary.

D063520 commented 2 years ago

Is it related also to this bug:

https://github.com/rdfhdt/hdt-java/issues/66

ate47 commented 2 years ago

It seems to be the same issue.

D063520 commented 2 years ago

Trying to see if we can get the dataset back online .... @webdata could you check ....