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
JDBC-284, 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.