We have a BaseX application that uses the BaseX REST API. A number of GET requests are failing with an HTTP 400 Bad Request response. Looking at the BaseX logs, I find that BaseX is internally throwing java.lang.ArrayIndexOutOfBoundsException for these HTTP 400 Bad Request failures:
<entry time="05:13:57.193" address="***.***.***.***:*****" user="admin" type="400" ms="3.93">[GET] https://********.*******.ibm.com:10443/BaseX/rest/****/*******.xml; Improper use? Potential bug? Your feedback is welcome: Contact: basex-talk@mailman.uni-konstanz.de Version: BaseX 8.6.7 Java: IBM Corporation, 1.8.0_241 OS: Linux, amd64 Stack Trace: java.lang.ArrayIndexOutOfBoundsException at org.basex.util.Compress.unpack(Compress.java:120) at org.basex.data.DiskData.txt(DiskData.java:284) at org.basex.data.DiskData.text(DiskData.java:251) at org.basex.io.serial.Serializer.node(Serializer.java:370) at org.basex.io.serial.Serializer.node(Serializer.java:158) at org.basex.io.serial.StandardSerializer.node(StandardSerializer.java:105) at org.basex.io.serial.Serializer.node(Serializer.java:345) at org.basex.io.serial.Serializer.node(Serializer.java:158) at org.basex.io.serial.StandardSerializer.node(StandardSerializer.java:105) at org.basex.io.serial.AdaptiveSerializer.node(AdaptiveSerializer.java:75) at org.basex.io.serial.Serializer.serialize(Serializer.java:109) at org.basex.io.serial.AdaptiveSerializer.serialize(AdaptiveSerializer.java:66) at org....</entry>
I realize that BaseX 8.6.7 is somewhat old. I can look at upgrading to a more recent version if necessary. But before I do that, I'd like to know if the java.lang.ArrayIndexOutOfBoundsException is a known problem and more importantly if there is anything we can do short of upgrading BaseX to fix the problem.
Thanks,
Geoff Alexander, Ph.D.
Software Engineer, Corporate Tools Development
IBM Corporation
Charlotte, NC