Comments (9)
The only available way is to use a mixin annotation on java.lang.Object
.
Though, I should be able to add a global configuration in AbstractConfiguration
.
from gwt-jackson.
Thanks.
I tried with just Object, but then I got too many errors and warnings, which otherwise don't happen (if I annotate some tens of classes, which I use and don't want to use their setters and getters). We have many really complex classes, which were initially not meant for JSON, so it's likely their fault. It's my responsibility to fix them.
However, stack overflow happens, if an object has itself as a field, like the linked lists or trees do have.
from gwt-jackson.
I meant stack overflow while GWT is rebinding at the startup, not at runtime.
Caused by: java.lang.StackOverflowError: null
at com.google.gwt.dev.util.collect.HashMap.keyHashCode(HashMap.java:640)
at com.google.gwt.dev.util.collect.HashMap.getKeyIndex(HashMap.java:767)
at com.google.gwt.dev.util.collect.HashMap.findKey(HashMap.java:696)
at com.google.gwt.dev.util.collect.HashMap.get(HashMap.java:463)
at com.google.gwt.dev.javac.typemodel.JPackage.findTypeImpl(JPackage.java:108)
at com.google.gwt.dev.javac.typemodel.JPackage.findType(JPackage.java:47)
at com.google.gwt.dev.javac.typemodel.JPackage.findType(JPackage.java:42)
at com.google.gwt.dev.javac.typemodel.TypeOracle.findType(TypeOracle.java:387)
at com.google.gwt.dev.javac.typemodel.TypeOracle.findType(TypeOracle.java:68)
at com.google.gwt.dev.javac.StandardGeneratorContext.tryCreate(StandardGeneratorContext.java:830)
at com.github.nmorel.gwtjackson.rebind.AbstractCreator.getPrintWriter(AbstractCreator.java:93)
at com.github.nmorel.gwtjackson.rebind.AbstractBeanJsonCreator.create(AbstractBeanJsonCreator.java:156)
at com.github.nmorel.gwtjackson.rebind.AbstractCreator.getJsonSerializerFromType(AbstractCreator.java:244)
at com.github.nmorel.gwtjackson.rebind.AbstractCreator.getJsonSerializerFromType(AbstractCreator.java:258)
at com.github.nmorel.gwtjackson.rebind.AbstractCreator.getJsonSerializerFromType(AbstractCreator.java:258)
at com.github.nmorel.gwtjackson.rebind.AbstractCreator.getJsonSerializerFromType(AbstractCreator.java:258)
...
from gwt-jackson.
I don't understand how you get a stackoverflow. Do you have an example ?
You also changed the auto detection for field to detect more than public fields ?
from gwt-jackson.
I wrote this:
@JsonAutoDetect(
fieldVisibility = Visibility.ANY,
creatorVisibility = Visibility.ANY,
getterVisibility = Visibility.NONE,
setterVisibility = Visibility.NONE,
isGetterVisibility = Visibility.NONE)
private static class FieldsOnlyMixin {
}
@Override
protected void configure() {
addMixInAnnotations(Object.class, FieldsOnlyMixin.class);
}
from gwt-jackson.
However, regarding the stack overflow, it's strange. I made a copy of the problematic class, to find which field or method causes problems, but the copy worked. So it seems it has something to do with the type hierarchy, as many other classes extend this one. Will try to analyze and will inform you soon.
The class and it's hierarchy is too complex to send it as an example. It has one String id field, and parent of the same type as the object, but many methods, which start with "get" or "is".
Thanks for all the info.
from gwt-jackson.
I found a reason for stack overflow. It happens with parameterized classes that use themselves as a parameter, like:
interface IdentifiableEntity<T extends IdentifiableEntity<T>>
from gwt-jackson.
Thanks, I'll look into it!
from gwt-jackson.
You can now configure the default behaviour via a global configuration. Watch this wiki page to find how to add your custom configuration.
from gwt-jackson.
Related Issues (20)
- No source code is available for type com.fasterxml.jackson.databind.ObjectMapper; did you forget to inherit a required module? HOT 3
- Support for java.util.Optional HOT 1
- Expected a string but was BEGIN_OBJECT at line 1 column 2 HOT 1
- Please REVERT the dependency on Jackson 2.9.*, Jackson 2.9.* is NOT compatible with GWT. HOT 2
- Support for @JsonCreator(mode = Mode.DELEGATING)
- Custom deserializer compilation error
- Getter returning Optional<T> of nullable T causing compilation error HOT 2
- GWT 2.6.1 + GwtJackson 0.15.3 HOT 3
- JsonSerializationContext.Builder override not working as expected
- Error:GWT Compiler: No source code is available for type com.fasterxml.jackson.annotation.JsonTypeInfo.As; did you forget to inherit a required module?
- JsonTypeInfo defaultImpl attribute not working HOT 1
- Update jackson dependency to 2.9.8
- Update javapoet dependency to 1.11.1
- Support for JsonFormat.Feature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE
- Annotations on Java8 default interface are ignored HOT 1
- Can't figure out the stackoverflow I am getting
- More (de)serialization customization (JsonFilter or equivalent)
- Double.NaN / NEGATIVE_INFINITY / POSITIVE_INFINITY - Numeric values must be finite, but was
- Many compile problems
- I want to deserialize a property with any type of value.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gwt-jackson.