0

I am trying to upgrade to Jersey 2.26. I have added the new hk2 dependencies that are needed:

    <dependency>
        <groupId>org.glassfish.jersey.inject</groupId>
        <artifactId>jersey-hk2</artifactId>
    </dependency>

I use the jersey-bom 2.26.

I use Genson for JSON binding, like this:

    Genson genson = new GensonBuilder().withBundle(new JAXBBundle()).setSkipNull(true).create();
    rc.register(new GensonJaxRSFeature().use(genson));

Formerly, everything worked fine, now some of my tests fail with a somewhat cryptic NPE:

java.lang.NullPointerException
    at org.eclipse.yasson.internal.serializer.DeserializerBuilder.isJsonValueEvent(DeserializerBuilder.java:155)
    at org.eclipse.yasson.internal.serializer.DeserializerBuilder.build(DeserializerBuilder.java:110)
    at org.eclipse.yasson.internal.Unmarshaller.deserializeItem(Unmarshaller.java:56)
    at org.eclipse.yasson.internal.Unmarshaller.deserialize(Unmarshaller.java:50)
    at org.eclipse.yasson.internal.JsonBinding.deserialize(JsonBinding.java:45)
    at org.eclipse.yasson.internal.JsonBinding.fromJson(JsonBinding.java:85)
    at org.glassfish.jersey.jsonb.internal.JsonBindingProvider.readFrom(JsonBindingProvider.java:99)

Funny thing, that if I run from Eclipse it all works out.

Does anyone have hints on debugging/troubleshooting this? It is a rather large project (with rest-client modules etc), so it is difficult to post relevant code without knowing which parts are interesting..

Rob Audenaerde
  • 19,195
  • 10
  • 76
  • 121
  • from the stacktrace it seems that the error happens in org.eclipse.yasson.internal.serializer.DeserializerBuilder.isJsonValueEvent which is not Genson, but yasson. – eugen Jan 18 '18 at 18:56
  • Uh. That makes sense. Although I don't understand why registering the `GensonJaxRSFeature()` no longer works. Any idea? – Rob Audenaerde Jan 19 '18 at 10:18
  • Probably because this other library, Yasson, is overriding it. You can try removing this lib and see if it works. – eugen Jan 19 '18 at 19:30

0 Answers0