johncarl81 / parceler

:package: Android Parcelables made easy through code generation.
http://parceler.org
Apache License 2.0
3.56k stars 273 forks source link

support wrapping and unwrapping of list and array types #18

Closed vinc3m1 closed 10 years ago

vinc3m1 commented 10 years ago

Would be nice to overload the wrap() method to support the following: public static <T> Parcelable[] wrap(T[] input) public static <T> ArrayList<Parcelable> wrap(List<T> input) public static <T> SparseArray<Parcelable> wrap(SparseArray<T> input)

This way the API can be used directly on collections of Parcelables e.g.: bundle.putParceableArrayList(Parcels.wrap(myArrayListOfObjects));

johncarl81 commented 10 years ago

You could just wrap your type with another class:

@Parcel
class Target{}
@Parcel
class TargetCollection{
    List<Target> targetList;
    //....
}

Then to use:

bundle.putParcelable("key", Parcels.wrap(new TargetCollection(new Target()));
vinc3m1 commented 10 years ago

Yeah, that's a workaround for the time being but it introduces a lot of boilerplate code to deal with an existing list:

TargetCollection tc = new TargetCollection();
tc.targetList = mTargetList
bundle.putParcelable("key", Parcels.wrap("key", tc);

and I have to declare a new class.

and there's more code in unwrapping.

I can open a pull request that just adds a for loop in the proposed methods to wrap each object in the collection, but I'm not sure if there's a more performant way?

johncarl81 commented 10 years ago

Agreed. What if Parceler.wrap() handled collections -> Parcelable? For instance:

bundle.putParcelable("key", Parcels.wrap(mTargetList));

and unwrapping:

List<Something> mTargetList = Parcels.unwrap(bundle.getParcelable("key"))

I wonder how that would play with the Bundle.

vinc3m1 commented 10 years ago

I think that's also a viable solution. I don't think Bundle cares, as long as the object you pass in is a Parcelable. I think they only wrote those convenience methods because collections don't directly implement Parcelable.

But since we're wrapping our object anyway, there's no reason we can't output some sort of ParcelableCollection or a generated wrapper class like you suggested. As long as we have the logic to convert back to the correct collection type in unwrap.

johncarl81 commented 10 years ago

Yup, that's what I'm thinking as well.

johncarl81 commented 10 years ago

maybe a silly thought, but what about other types? Should we allow other types that Parceler handles without the containing class:

bundle.putParcelable("key", Parcels.wrap(1));

This would be consistent but redundant to:

bundle.putInt("key, 1)
vinc3m1 commented 10 years ago

Ha! I would say no... that's going a bit far...

johncarl81 commented 10 years ago

Heh, I agree.

Would you mind trying out 0.2.7-SNAPSHOT with this update (a9677c136a325c78808bcc9de43cea19ddc6ac06)?

I went ahead and add Set, HashSet, HashMap and Map support as well as List, ArrayList and SparseArray.

vinc3m1 commented 10 years ago

Nice, that was fast! I'm not using any Collections (yet) but I'm sure @Bencodes will let you know how it works out for him tomorrow heh

vinc3m1 commented 10 years ago

getting this during gradle build

: java.lang.ClassNotFoundException: android.os.Parcelable
Execution failed for task ':compileDebugJava'.
> org.androidtransfuse.TransfuseAnalysisException: @Parcel code generation did not complete successfully.
johncarl81 commented 10 years ago

Hmmm, that's odd.. I specifically avoid referencing android.os.Parcelable or the Android dependency in the processor. Can you share your Gradle build file?

johncarl81 commented 10 years ago

Are you building with the android library as a dependency?.. or with the android Gradle plugin?

vinc3m1 commented 10 years ago

I just added

repositories {
  maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
}

dependencies {
  compile 'org.parceler:parceler-api:0.2.7-SNAPSHOT'
  provided 'org.parceler:parceler:0.2.7-SNAPSHOT'
}

to my build.gradle

johncarl81 commented 10 years ago

does your build.gradle include apply plugin: 'android' like this: https://github.com/johncarl81/parceler/blob/master/examples/gradle/gradleParceler/build.gradle?

vinc3m1 commented 10 years ago

yes, this was a working android project using 0.2.6, i swapped in 0.2.7 to test

johncarl81 commented 10 years ago

Could you try 0.2.8?

johncarl81 commented 10 years ago

Opps, scratch that, 0.2.7-SNAPSHOT is the latest... is that what you are trying?

vinc3m1 commented 10 years ago

yep, that what I tried

johncarl81 commented 10 years ago

Just pushed a fix out (59ccadd7a81db4b3e5acda02c7d1ea4f91cced1b). Please try again.

vinc3m1 commented 10 years ago
:compileDebugJavaException in thread "pool-18-thread-1" java.lang.NoClassDefFoundError: android/os/Parcelable
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.getDeclaringClass0(Native Method)
    at java.lang.Class.getDeclaringClass(Class.java:1101)
    at java.lang.Class.getEnclosingClass(Class.java:1137)
    at java.lang.Class.getSimpleBinaryName(Class.java:1277)
    at java.lang.Class.getSimpleName(Class.java:1169)
    at com.sun.codemodel.JCodeModel$JReferencedClass.name(JCodeModel.java:559)
    at com.sun.codemodel.JFormatter.t(JFormatter.java:287)
    at com.sun.codemodel.JClass.generate(JClass.java:362)
    at com.sun.codemodel.JFormatter.g(JFormatter.java:350)
    at com.sun.codemodel.JFormatter.g(JFormatter.java:363)
    at com.sun.codemodel.JNarrowedClass.generate(JNarrowedClass.java:143)
    at com.sun.codemodel.JFormatter.g(JFormatter.java:350)
    at com.sun.codemodel.JFormatter.g(JFormatter.java:363)
    at com.sun.codemodel.JDefinedClass.declare(JDefinedClass.java:785)
    at com.sun.codemodel.JFormatter.d(JFormatter.java:376)
    at com.sun.codemodel.JFormatter.write(JFormatter.java:406)
    at com.sun.codemodel.JPackage.build(JPackage.java:438)
    at com.sun.codemodel.JCodeModel.build(JCodeModel.java:311)
    at org.androidtransfuse.transaction.CodeGenerationScopedTransactionWorker.innerRun(CodeGenerationScopedTransactionWorker.java:49)
    at org.androidtransfuse.transaction.AbstractCompletionTransactionWorker.run(AbstractCompletionTransactionWorker.java:35)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:55)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: android.os.Parcelable
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 36 more
 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileDebugJava'.
> org.androidtransfuse.TransfuseAnalysisException: @Parcel code generation did not complete successfully.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED
johncarl81 commented 10 years ago

Could you try it with a ./gradlew build --refresh=dependencies ?

vinc3m1 commented 10 years ago

Ah, I was wondering if gradle auto-updates SNAPSHOTs or not. That seems to have built. Now let me test out Map parcelling and get back to you.

johncarl81 commented 10 years ago

Keep in mind that the Map support needs both the key and value to be @Parcel types... at least for now.

vinc3m1 commented 10 years ago

Strings and primitives are ok right?

johncarl81 commented 10 years ago

Not currently. That would require us to map Strings and primitives directly, ie: Parceler.wrap("test"), but this is something we should consider (I think we talked about this above).

vinc3m1 commented 10 years ago

Interesting. I do think Map support would be useful because Bundle doesn't support it natively.

vinc3m1 commented 10 years ago
    Process: me.dashwith.dev, PID: 32612
    org.parceler.ParcelerRuntimeException: Unable to create ParcelableFactory for java.util.ArrayList
            at org.parceler.Parcels$ParcelCodeRepository.get(Parcels.java:141)
            at org.parceler.Parcels.wrap(Parcels.java:64)
            at me.dashwith.ui.venues.VenueListActivity.onSaveInstanceState(VenueListActivity.java:157)

error wrapping an arraylist

my code is something like this: outState.putParcelable(KEY, Parcels.wrap(mArrayList));

vinc3m1 commented 10 years ago

wait hold on forgot to change my dependencies back to snapshot...

vinc3m1 commented 10 years ago

ok arraylist working in production! ended up using a normal Bundle in place of Map<String, String>, but that might be a useful next feature

johncarl81 commented 10 years ago

Fantastic!

vinc3m1 commented 10 years ago

actually I just ran into this:


    java.lang.RuntimeException: Unable to start activity ComponentInfo{me.dashwith.dev/me.dashwith.ui.venues.VenueListActivity}: android.os.BadParcelableException: Parcelable protocol requires the CREATOR object to be static on class org.parceler.CollectionsRepository$ListParcelable
johncarl81 commented 10 years ago

Shoot, well that's easy to fix. I wont be able to get to it immediately if you want to fix and issue a PR.

johncarl81 commented 10 years ago

Ok, this should do the trick (5c768de349ab54a0b47af94b3b0103142ac55f2b) and I tested on a real device, not relying just on robolectric.

johncarl81 commented 10 years ago

any movement on this @vinc3m1 ?

vinc3m1 commented 10 years ago

ah, sorry got busy, here are some errors with latest snapshot:

An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
org.androidtransfuse.TransfuseAnalysisException: @Parcel code generation did not complete successfully.
    at org.parceler.internal.ParcelProcessor.checkForErrors(ParcelProcessor.java:83)
    at org.parceler.ParcelAnnotationProcessor.process(ParcelAnnotationProcessor.java:71)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$200(JavacProcessingEnvironment.java:91)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.runContributingProcs(JavacProcessingEnvironment.java:627)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1033)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1198)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1173)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:859)
    at com.sun.tools.javac.main.Main.compile(Main.java:523)
    at com.sun.tools.javac.main.Main.compile(Main.java:381)
    at com.sun.tools.javac.main.Main.compile(Main.java:370)
    at com.sun.tools.javac.main.Main.compile(Main.java:361)
    at com.sun.tools.javac.Main.compile(Main.java:56)
    at com.sun.tools.javac.Main.main(Main.java:42)
:compileDebugJava FAILED

I've changed my language level to java 8 recently, but there haven't been problems with 0.2.6 version, so still probably a bug with the recent changes

johncarl81 commented 10 years ago

Ah, shoot... do you have any other details, say above the stack trace?

vinc3m1 commented 10 years ago

It's threaded so here's a super long one:

Exception in thread "pool-3-thread-1" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getParameters(ASTClassFactory.java:164)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getConstructor(ASTClassFactory.java:235)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:116)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getTypes(ASTClassFactory.java:208)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getMethod(ASTClassFactory.java:199)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:120)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.Generators.addPair(Generators.java:57)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:168)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-3-thread-6" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.Generators.addPair(Generators.java:57)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:176)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-3-thread-2" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.Generators.addPair(Generators.java:57)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:168)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-3-thread-5" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.Generators.addPair(Generators.java:57)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:174)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-3-thread-4" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.Generators.addPair(Generators.)ava:57
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:172)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-3-thread-3" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.Generators.addPair(Generators.java:57)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:170)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTranWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-3-thread-7" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.Generators.addPair(Generators.java:73)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:178)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-6-thread-1" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.Generators.addPair(Generators.java:73)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:180)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-6-thread-2" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getParameters(ASTClassFactory.java:164)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getParameters(ASTClassFactory.java:149)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getMethod(ASTClassFactory.java:197)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:120)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getParameters(ASTClassFactory.java:164)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getParameters(ASTClassFactory.java:149)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getMethod(ASTClassFactory.java:197)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:120)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getMethod(ASTClassFactory.java:201)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:120)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:193)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScosactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-6-thread-3" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:109)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransaction.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-6-thread-4" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactio.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-6-thread-5" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at javconcurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-6-thread-6" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-6-thread-7" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-9-thread-1" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-9-thread-2" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at javconcurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-9-thread-3" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.ead.java:744)
Exception in thread "pool-9-thread-4" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-9-thread-5" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-9-thread-7" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
Exception in thread "pool-9-thread-6" java.lang.AbstractMethodError: org.androidtransfuse.adapter.ASTFactory$$Factory.buildParameterBuilder(Ljava/lang/reflect/ParameterizedType;)Lorg/androidtransfuse/adapter/classes/LazyParametrizedTypeParameterBuilder;
    at org.androidtrandapter.classes.ASTClassFactory.getType(ASTClassFactory.java:79)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.buildType(ASTClassFactory.java:92)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:72)
    at org.androidtransfuse.adapter.classes.ASTClassFactory.getType(ASTClassFactory.java:63)
    at org.parceler.internal.ParcelerModule.addGenerators(ParcelerModule.java:194)
    at org.parceler.internal.ParcelerModule.getGenerators(ParcelerModule.java:156)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:150)
    at org.parceler.internal.Parceler$$ParcelTransactionWorker$$Provider$$0.get(Parceler$$ParcelTransactionWorker$$Provider$$0.java:16)
    at javax_.inject.Parceler$$Provider$$VProxy$$1.get(Parceler$$Provider$$VProxy$$1.java:27)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:91)
    at org.androidtransfuse.transaction.ScopedTransactionBuilder$TransactionWorkerProvider.get(ScopedTransactionBuilder.java:81)
    at org.androidtransfuse.transaction.ScopedTransactionWorker.run(ScopedTransactionWorker.java:54)
    at org.androidtransfuse.transaction.Transaction.run(Transaction.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)

An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
org.androidtransfuse.TransfuseAnalysisException: @Parcel code generation did not complete successfully.
    at org.parceler.internal.ParcelProcessor.checkForErrors(ParcelProcessor.java:83)
    at org.parceler.ParcelAnnotationProcessor.process(ParcelAnnotationProcessor.java:71)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$200(JavacProcessingEnvironment.java:91)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.runContributingProcs(JavacProcessingEnvironment.java:627)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1033)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1198)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1173)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:859)
    at com.sun.tools.javac.main.Main.compile(Main.java:523)
    at com.sun.tools.javac.main.Main.compile(Main.java:381)
    at com.sun.tools.javac.main.Main.compile(Main.java:370)
    at com.sun.tools.javac.main.Main.compile(Main.java:361)
    at com.sun.tools.javac.Main.compile(Main.java:56)
    at com.sun.tools.javac.Main.main(Main.java:42)
johncarl81 commented 10 years ago

could you do me a favor and try again with ./gradlew build --refresh=dependencies? I made some changes in the dependencies of Parceler.

vinc3m1 commented 10 years ago

alright things look good now with List<Parcel> wrap/unwrap :thumbsup:

johncarl81 commented 10 years ago

Great, let me know if you have any other issues... I'll plan a release soon so we can get this out of SNAPSHOT.

johncarl81 commented 10 years ago

Oh, and FYI, Map<Long, Parcel> should also work now as well.

voghDev commented 7 years ago

Just googled and found this issue. I'm glad there is a solution. I'll just post sample code to help any other that might land here in the future:

wrapping a List of Entities

 ArrayList<Entity> objects;
 intent.putExtra("objects", Parcels.wrap(objects));

unwrapping a List of entities

ArrayList<Entity> objects;
objects = Parcels.unwrap(getIntent().getParcelableExtra("objects"));

Or if you are using Fragment arguments

objects = Parcels.unwrap(getArguments().getParcelable("objects"));

Note that Entity class must be annotated with @Parcel

@Parcel
public class Entity {
    // ...
}
jorgereina1986 commented 6 years ago

@voghDev aren't you suppose to use Parecels.unwrap() in order to unwrap the list of objects?

ArrayList<Entity> objects;
objects = Parcels.unwrap(getIntent().getParcelableExtra("objects"));

Fragments:

objects = Parcels.unwrap(getArguments().getParcelable("objects"));
voghDev commented 6 years ago

true @jorgereina1986, probably forgot to add the Parcels.unwrap() call when I posted the code snippet, thanks for pointing it :-)