You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When handling a deserialization exception, the decoder now avoids
throwing a NullPointerException when one of the constructor arguments
is null. Reported by Keith Massey. GitHub #164.
Messages for DeserializationException have been improved, and the cause
is included, if any. Moreover, the message provides detail about the involved
types, if the exception is caused by an IllegalArgumentException.
Significant API changes. The get() and getRecord() methods now take a
class parameter specifying the type of object to deserialize into. You
can either deserialize into a Map or to model classes that use the MaxMindDbConstructor and MaxMindDbParameter annotations to identify
the constructors and parameters to deserialize into.
jackson-databind is no longer a dependency.
The Record class is now named DatabaseRecord. This is to avoid a
conflict with java.lang.Record in Java 14.
IMPORTANT: Java 8 is now required. If you need Java 7 support, please
continue using 1.3.1 or earlier.
The decoder will now throw an InvalidDatabaseException on an invalid
control byte in the data section rather than an ArrayIndexOutOfBoundsException. Reported by Edwin Delgado H. GitHub #68.
In order to improve performance when lookups are done from multiple
threads, a use of synchronized has been removed. GitHub #65 & #69.
Correctly decode strings that are between 157 and 288 bytes long. 1.3.0
introduced a regression when decoding these due to using a signed byte
as an unsigned value. Reported by Dongmin Yu. GitHub #181 in
maxmind/GeoIP2-java.