Decoding error "physical level technique not yet supported: ALP" in IntegerDecoder.decodeIntStream
springmeyer opened this issue · 2 comments
springmeyer commented
With the latest code, in the vectorized & non-vectorized paths, we are hitting:
java.lang.IllegalArgumentException: Specified physical level technique not yet supported: ALP
at com.mlt.decoder.IntegerDecoder.decodeIntStream(IntegerDecoder.java:86)
at com.mlt.decoder.GeometryDecoder.decodeGeometryColumn(GeometryDecoder.java:29)
at com.mlt.decoder.MltDecoder.decodeMlTile(MltDecoder.java:77)
at com.mlt.tools.Encode.main(Encode.java:269)
Testcase:
cd java
./gradlew cli
git clone git@github.com:mapbox/mvt-fixtures.git
java -jar build/libs/encode.jar -mvt mvt-fixtures/real-world/norway/12-2174-1070.mvt -decode -vectorized
This does not happen with the -advanced
flag. So, seems like a bug in varint handling
springmeyer commented
Curiously, I still get an error with latest main with this tile, but it is different:
java.lang.IndexOutOfBoundsException
at java.base/java.nio.Buffer.checkIndex(Buffer.java:743)
at java.base/java.nio.HeapByteBuffer.put(HeapByteBuffer.java:218)
at com.mlt.decoder.vectorized.VectorizedDecodingUtils.decodeByteRle(VectorizedDecodingUtils.java:56)
at com.mlt.decoder.vectorized.VectorizedDecodingUtils.decodeBooleanRle(VectorizedDecodingUtils.java:19)
at com.mlt.decoder.vectorized.VectorizedPropertyDecoder.decodeToRandomAccessFormat(VectorizedPropertyDecoder.java:137)
at com.mlt.decoder.MltDecoder.decodeMlTileVectorized(MltDecoder.java:164)
at com.mlt.tools.Encode.main(Encode.java:254)
springmeyer commented
This is still present after #158. The error impacts both the vectorized and non-vectorized pathways. But the exception is different.
Exception in vectorized:
java -jar build/libs/encode.jar -mvt ~/projects/mvt-fixtures/real-world/norway/12-2174-1070.mvt -decode -vectorized
java.lang.IndexOutOfBoundsException
at java.base/java.nio.Buffer.checkIndex(Buffer.java:743)
at java.base/java.nio.HeapByteBuffer.put(HeapByteBuffer.java:218)
at com.mlt.decoder.vectorized.VectorizedDecodingUtils.decodeByteRle(VectorizedDecodingUtils.java:56)
at com.mlt.decoder.vectorized.VectorizedDecodingUtils.decodeBooleanRle(VectorizedDecodingUtils.java:19)
at com.mlt.decoder.vectorized.VectorizedPropertyDecoder.decodeToRandomAccessFormat(VectorizedPropertyDecoder.java:137)
at com.mlt.decoder.MltDecoder.decodeMlTileVectorized(MltDecoder.java:164)
at com.mlt.tools.Encode.main(Encode.java:254)
Exception in non-vectorized:
java -jar build/libs/encode.jar -mvt ~/projects/mvt-fixtures/real-world/norway/12-2174-1070.mvt -decode
java.lang.IllegalArgumentException: Specified physical level technique not yet supported: NONE
at com.mlt.decoder.IntegerDecoder.decodeIntStream(IntegerDecoder.java:86)
at com.mlt.decoder.GeometryDecoder.decodeGeometryColumn(GeometryDecoder.java:29)
at com.mlt.decoder.MltDecoder.decodeMlTile(MltDecoder.java:77)
at com.mlt.tools.Encode.main(Encode.java:269)