Comments (7)
Yikes... can you share the stacktrace and possibly the bean you've set up?
from parceler.
I have the same issue if there are cross-dependencies between parcel-annotated classes, for example we have
public class Companies {
List<BranchItem> mBranches;
List<CompanyItem> mCompanies;
@Parcel
public static class BranchItem {
List<CompanyItem> mCompanies = new ArrayList<>();
String mSystemId;
}
@Parcel
public static class CompanyItem {
List<BranchItem> mBranches = new ArrayList<>();
String mSystemId;
}
}
Code generation will fail with the following stacktrace:
Exception in thread "pool-36-thread-3" java.lang.StackOverflowError
at java.util.HashMap.putVal(HashMap.java:628)
at java.util.HashMap.put(HashMap.java:611)
at org.parceler.internal.Generators.add(Generators.java:81)
at org.parceler.internal.Generators.addPair(Generators.java:69)
at org.parceler.internal.Generators.addPair(Generators.java:57)
at org.parceler.internal.Generators.addPair(Generators.java:53)
at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:176)
at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:162)
at org.parceler.internal.Parceler$$ParcelableGenerator$$Provider$$0.get(Parceler$$ParcelableGenerator$$Provider$$0.java:211)
at org.parceler.internal.Parceler$$ParcelableGenerator$$Provider$$0.get(Parceler$$ParcelableGenerator$$Provider$$0.java:15)
at org.parceler.internal.generator.ParcelReadWriteGenerator.generateReader(ParcelReadWriteGenerator.java:54)
at org.parceler.internal.generator.ListReadWriteGenerator.generateReader(ListReadWriteGenerator.java:84)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcelExpression(ParcelableGenerator.java:282)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcel(ParcelableGenerator.java:234)
at org.parceler.internal.ParcelableGenerator.buildParcelRead(ParcelableGenerator.java:166)
at org.parceler.internal.generator.ParcelReadWriteGenerator.generateReader(ParcelReadWriteGenerator.java:54)
at org.parceler.internal.generator.ListReadWriteGenerator.generateReader(ListReadWriteGenerator.java:84)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcelExpression(ParcelableGenerator.java:282)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcel(ParcelableGenerator.java:234)
at org.parceler.internal.ParcelableGenerator.buildParcelRead(ParcelableGenerator.java:166)
at org.parceler.internal.generator.ParcelReadWriteGenerator.generateReader(ParcelReadWriteGenerator.java:54)
at org.parceler.internal.generator.ListReadWriteGenerator.generateReader(ListReadWriteGenerator.java:84)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcelExpression(ParcelableGenerator.java:282)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcel(ParcelableGenerator.java:234)
at org.parceler.internal.ParcelableGenerator.buildParcelRead(ParcelableGenerator.java:166)
at org.parceler.internal.generator.ParcelReadWriteGenerator.generateReader(ParcelReadWriteGenerator.java:54)
at org.parceler.internal.generator.ListReadWriteGenerator.generateReader(ListReadWriteGenerator.java:84)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcelExpression(ParcelableGenerator.java:282)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcel(ParcelableGenerator.java:234)
at org.parceler.internal.ParcelableGenerator.buildParcelRead(ParcelableGenerator.java:166)
at org.parceler.internal.generator.ParcelReadWriteGenerator.generateReader(ParcelReadWriteGenerator.java:54)
at org.parceler.internal.generator.ListReadWriteGenerator.generateReader(ListReadWriteGenerator.java:84)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcelExpression(ParcelableGenerator.java:282)
at org.parceler.internal.ParcelableGenerator.buildReadFromParcel(ParcelableGenerator.java:234)
at org.parceler.internal.ParcelableGenerator.buildParcelRead(ParcelableGenerator.java:166)
from parceler.
Ah, yeah, that makes sense. 0.2.11 introduced a performance enhancement to embed serialization of sub-properties within the given annotated class (570fa7b). Maybe the fix should be to revert this, or check if there is a property serialization loop.
from parceler.
Ok, I've fixed this and retained the performance benefits. @Jogan, @aivanyuk, If you could please try out 0.2.12-SNAPSHOT and let me know if it works for you and I'll release 0.2.12.
from parceler.
I've tried out 0.2.12-SNAPSHOT and everything seems to work, thanks!
from parceler.
Great. Releasing to central now.
from parceler.
@johncarl81 thanks!
from parceler.
Related Issues (20)
- Ability to treat reflection warnings as errors HOT 5
- Parceler fails when used with with Lifecycle-viewmodel 2.2.0 HOT 7
- Facing Vulnerabilities in parceler library HOT 1
- Facing Vulnerabilities in parceler library HOT 1
- Polymorphism documentation not updated? HOT 6
- Cannot get working with navigation graph HOT 1
- Crashing on background HOT 4
- ParcelAnnotationProcessor.process take lot amount of time. HOT 15
- Unable to find generated Parcelable class HOT 1
- error: Parceler: Code generation did not complete successfully. HOT 47
- Cant find class to parcel ! HOT 1
- Can't generate code HOT 3
- Unable to Marshall with Parceler HOT 2
- Errors in HashMap$$PackageHelper HOT 3
- cannot running with kapt HOT 1
- Parceler: Code generation did not complete successfully. org.parceler.transfuse.transaction.TransactionRuntimeException: Encountered ErrorType <error>, unable to recover HOT 4
- [Request Feature] Support for Kotlin Symbol Processing
- Parceler code generation fails on AS 2023.3.1
- Getters and Setter Alphabetically Order for Write and Read
- Not sure how to convert a Cursor
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 parceler.