gwt-jackson icon indicating copy to clipboard operation
gwt-jackson copied to clipboard

JsonSerializationContext.Builder override not working as expected

Open llowrey opened this issue 6 years ago • 0 comments

I have a JsonDeserializationContext.Builder override working as expected but the serialization builder isn't working.

Here's what I have in my module:

<replace-with class="net.somedomain.poc.web.client.jackson.JsonSerializationContextBuilder">
	<when-type-assignable class="com.github.nmorel.gwtjackson.client.JsonSerializationContext.Builder"/>
</replace-with>

The javascript ends up looking like this:

function builder_2_g$(){
  $clinit_JsonSerializationContext_0_g$();
  return castTo_0_g$(new JsonSerializationContext$DefaultBuilder_1_g$, 40);
}

It's instantiating an instance of DefaultBuilder instead of my builder.

But, I know that my 'replace-with' works because I can do this:

Builder builder = GWT.create(com.github.nmorel.gwtjackson.client.JsonSerializationContext.Builder.class);

log.debug("builder serializeNulls? {}", builder.build().isSerializeNulls());
log.debug("builder serializeNulls? {}", JsonSerializationContext.builder().build().isSerializeNulls());

... and the output is ...

builder serialzeNulls? false
builder serialzeNulls? true

So, the GWT.create() statement in my code does what's expected but the same GWT.create() call in JsonSerializationContext.builder() doesn't. Crazily, Everything works as expected for the deserialization versions.

Any ideas as to what is happening?

This is with GWT 2.8.2 and devmode.

llowrey avatar Feb 04 '19 17:02 llowrey