-
Bug
-
Resolution: Done
-
Major
-
2.3.4.Final
-
None
This class pulls system property "java.specification.version" and expects the value to be an integer or starts with 1. However on Android, this value is always 0.9. Therefore the code is broken at
Integer.parseInt(versionString).
This bug directly impacts usage of HttpServerExchange.getInputStream().read() function.
See error log:
Caused by: java.lang.NumberFormatException: For input string: "0.9"
at java.lang.Integer.parseInt(Integer.java:747)
at java.lang.Integer.parseInt(Integer.java:865)
at io.undertow.server.DirectByteBufferDeallocator.<clinit>(DirectByteBufferDeallocator.java:28)
at io.undertow.server.DirectByteBufferDeallocator.free(DirectByteBufferDeallocator.java:71)
at io.undertow.server.DefaultByteBufferPool.queueIfUnderMax(DefaultByteBufferPool.java:209)
at io.undertow.server.DefaultByteBufferPool.freeInternal(DefaultByteBufferPool.java:201)
at io.undertow.server.DefaultByteBufferPool.-$$Nest$mfreeInternal(Unknown Source:0)
at io.undertow.server.DefaultByteBufferPool$DefaultPooledBuffer.close(DefaultByteBufferPool.java:274)
at io.undertow.io.UndertowInputStream.read(UndertowInputStream.java:123)