The JNI parameterbuffer implemention (org.firebirdsql.gds.impl.jni.ParameterBufferBase, specifically inner class NumericArgument) writes integers incorrectly. Instead of prefixing the length in bytes, it simply writes the 4 bytes of the value. This probably wasn't noticed before because of JDBC284, and the fact that the only other int-property was an extension property which is never written out to the buffer.
Also the gds.impl.jni and gds.impl.wire versions of these classes are almost identical (if not identical): refactor to a common base class.
It would be a good idea to restructe the ParameterBuffer implementation hierarchy to be similar to the implementation in the .NET provider, that will result in a lot less duplication of code.
Submitted by: @mrotteveel
Relate to JDBC284
Is related to JDBC286
Jira_subtask_outward JDBC287
The JNI parameterbuffer implemention (org.firebirdsql.gds.impl.jni.ParameterBufferBase, specifically inner class NumericArgument) writes integers incorrectly. Instead of prefixing the length in bytes, it simply writes the 4 bytes of the value. This probably wasn't noticed before because of JDBC284, and the fact that the only other int-property was an extension property which is never written out to the buffer.
Also the gds.impl.jni and gds.impl.wire versions of these classes are almost identical (if not identical): refactor to a common base class.
Commits: 2e9a1e4 c342a29
The text was updated successfully, but these errors were encountered: