[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Incorrect Code Generation on 1.9.1

Hi all!

I am working on a larger project where we define Aspects in their own *.aj files.

In a recent trial against an Android project using Java 8 I found the exception as attached (exception.txt)

Reviewing the source code, the corresponding line looks like this:

after() throwing (Exception ex) : (!within(com.company.example..*) &&
  call (* java.net.HttpURLConnection.getErrorStream()) ||
  call (* java.net.HttpURLConnection.getResponseCode()) ||
  call (* java.net.HttpURLConnection.getResponseMessage()) ||
  call (* javax.net.ssl.HttpsURLConnection.getLocalCertificates()) ||
  call (* javax.net.ssl.HttpsURLConnection.getCipherSuite()) ||
  call (* javax.net.ssl.HttpsURLConnection.getServerCertificates()) ||
  call (* javax.net.ssl.HttpsURLConnection.getPeerPrincipal()) ||
  call (* javax.net.ssl.HttpsURLConnection.getLocalPrincipal()) ||
  call (* java.net.URLConnection.connect()) ||
  call (* java.net.URLConnection.getContent()) ||
  call (* java.net.URLConnection.getContentEncoding()) ||
  call (* java.net.URLConnection.getContentLength()) ||
  call (* java.net.URLConnection.getContentType()) ||
  call (* java.net.URLConnection.getDate()) ||
  call (* java.net.URLConnection.getExpiration()) ||
  call (* java.net.URLConnection.getHeaderField()) ||
  call (* java.net.URLConnection.getHeaderFieldDate()) ||
  call (* java.net.URLConnection.getHeaderFieldKey()) ||
  call (* java.net.URLConnection.getHeaderFields()) ||
  call (* java.net.URLConnection.getInputStream()) ||
  call (* java.net.URLConnection.getLastModified()))

As far as I understand the way after throwing conditions are supposed to be defined this should still apply for anyÂ
of these getters except if they are thrown my project.

Keep in mind our Aspects aren't applied against our own code but against 3rd party code.

Decompiling the respective class file shows me the following like:

Â@AfterThrowing(pointcut="((!within(com.company.example..*) && call(* java.net.HttpURLConnection.getErrorStream())) || (call(* java.net.HttpURLConnection.getResponseCode()) || (call(* java.net.HttpURLConnection.getResponseMessage()) || (call(* javax.net.ssl.HttpsURLConnection.getLocalCertificates()) || (call(* javax.net.ssl.HttpsURLConnection.getCipherSuite()) || (call(* javax.net.ssl.HttpsURLConnection.getServerCertificates()) || (call(* javax.net.ssl.HttpsURLConnection.getPeerPrincipal()) || (call(* javax.net.ssl.HttpsURLConnection.getLocalPrincipal()) || (call(* java.net.URLConnection.connect()) || (call(* java.net.URLConnection.getContent()) || (call(* java.net.URLConnection.getContentEncoding()) || (call(* java.net.URLConnection.getContentLength()) || (call(* java.net.URLConnection.getContentType()) || (call(* java.net.URLConnection.getDate()) || (call(* java.net.URLConnection.getExpiration()) || (call(* java.net.URLConnection.getHeaderField()) || (call(* java.net.URLConnection.getHeaderFieldDate()) || (call(* java.net.URLConnection.getHeaderFieldKey()) || (call(* java.net.URLConnection.getHeaderFields()) || (call(* java.net.URLConnection.getInputStream()) || call(* java.net.URLConnection.getLastModified())))))))))))))))))))))", throwing="ex", argNames="ex")

As you can see the compiled result filters for each after one another? That shouldn't happen right?

Any idea how I can fix this? Or avoid this from happening?

--
Kind regards,

Andreas Marschke.

    ExampleAndroidTransform: Detected classpath:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/0:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/1:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/2:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/3.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/4.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/5.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/6.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/7.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/8.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/9.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/10.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/11.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/12.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/13.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/14.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/15.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/16.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/17.jar:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/processing-tools/runtime-deps/debug/desugar_try_with_resources.jar
    ExampleAndroidTransform: Detected aspectpath:/home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/3.jar
    ExampleAndroidTransform: Detected bootClasspath:/opt/android-sdk/platforms/android-27/android.jar
    ExampleAndroidTransform: Weaving directory from /home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/desugar/debug/0 to /home/andreas/src/company/projectname-android/example-android-gradle-plugin/build/java8GradleTest/Base-appGroovyDSL/4.4/build/intermediates/transforms/ExampleAndroidTransform/debug/0
    Dumping to /home/andreas/src/company/projectname-android/example-android-gradle-plugin/./ajcore.20180731.042331.216.txt
    ExampleAndroidTransform: ABORT
	
    Exception thrown from AspectJ 1.9.1

    This might be logged as a bug already -- find current bugs at
      http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler

    Bugs for exceptions thrown have titles File:line from the top stack, 
    e.g., "SomeFile.java:243"

    If you don't find the exception below in a bug, please add a new bug
    at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
    To make the bug a priority, please include a test program
    that can reproduce this exception.
    Problem processing attributes in com/company/example/android/aspects/URLConnectionExceptionsAspect.class

    when batch building BuildConfig[null] #Files=0 AopXmls=#0
    Problem processing attributes in com/company/example/android/aspects/URLConnectionExceptionsAspect.class
    java.lang.RuntimeException: Problem processing attributes in com/company/example/android/aspects/URLConnectionExceptionsAspect.class
    	at org.aspectj.weaver.bcel.BcelObjectType.ensureAspectJAttributesUnpacked(BcelObjectType.java:387)
    	at org.aspectj.weaver.bcel.BcelObjectType.<init>(BcelObjectType.java:162)
    	at org.aspectj.weaver.bcel.BcelWorld.buildBcelDelegate(BcelWorld.java:410)
    	at org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType(BcelWorld.java:487)
    	at org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType(BcelWorld.java:453)
    	at org.aspectj.weaver.bcel.BcelWeaver.addAspectsFromJarFile(BcelWeaver.java:266)
    	at org.aspectj.weaver.bcel.BcelWeaver.addLibraryJarFile(BcelWeaver.java:239)
    	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(AjBuildManager.java:878)
    	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:253)
    	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:189)
    	at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:114)
    	at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
    	at org.aspectj.tools.ajc.Main.run(Main.java:371)
    	at org.aspectj.tools.ajc.Main$run.call(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
    	at com.example.app.android.gradle.ExampleAndroidWeave.weave(ExampleAndroidWeave.groovy:158)
    	at com.example.app.android.gradle.ExampleAndroidWeave$weave$0.callStatic(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:214)
    	at com.example.app.android.gradle.ExampleAndroidWeave.weaveDir(ExampleAndroidWeave.groovy:133)
    	at com.example.app.android.gradle.ExampleAndroidWeave$weaveDir.call(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    	at com.example.app.android.gradle.ExampleAndroidTransform$_transform_closure3$_closure5.doCall(ExampleAndroidTransform.groovy:125)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    	at groovy.lang.Closure.call(Closure.java:414)
    	at groovy.lang.Closure.call(Closure.java:430)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2040)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2025)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2066)
    	at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    	at com.example.app.android.gradle.ExampleAndroidTransform$_transform_closure3.doCall(ExampleAndroidTransform.groovy:122)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    	at groovy.lang.Closure.call(Closure.java:414)
    	at groovy.lang.Closure.call(Closure.java:430)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2040)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2025)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2066)
    	at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    	at com.example.app.android.gradle.ExampleAndroidTransform.transform(ExampleAndroidTransform.groovy:120)
    	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221)
    	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217)
    	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
    	at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    	at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
    	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
    	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
    	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
    	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
    	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
    	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
    	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
    	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
    	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
    	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)

    java.lang.RuntimeException: Problem processing attributes in com/company/example/android/aspects/URLConnectionExceptionsAspect.class
    	at org.aspectj.weaver.bcel.BcelObjectType.ensureAspectJAttributesUnpacked(BcelObjectType.java:387)
    	at org.aspectj.weaver.bcel.BcelObjectType.<init>(BcelObjectType.java:162)
    	at org.aspectj.weaver.bcel.BcelWorld.buildBcelDelegate(BcelWorld.java:410)
    	at org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType(BcelWorld.java:487)
    	at org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType(BcelWorld.java:453)
    	at org.aspectj.weaver.bcel.BcelWeaver.addAspectsFromJarFile(BcelWeaver.java:266)
    	at org.aspectj.weaver.bcel.BcelWeaver.addLibraryJarFile(BcelWeaver.java:239)
    	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(AjBuildManager.java:878)
    	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:253)
    	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:189)
    	at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:114)
    	at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
    	at org.aspectj.tools.ajc.Main.run(Main.java:371)
    	at org.aspectj.tools.ajc.Main$run.call(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
    	at com.example.app.android.gradle.ExampleAndroidWeave.weave(ExampleAndroidWeave.groovy:158)
    	at com.example.app.android.gradle.ExampleAndroidWeave$weave$0.callStatic(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:214)
    	at com.example.app.android.gradle.ExampleAndroidWeave.weaveDir(ExampleAndroidWeave.groovy:133)
    	at com.example.app.android.gradle.ExampleAndroidWeave$weaveDir.call(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    	at com.example.app.android.gradle.ExampleAndroidTransform$_transform_closure3$_closure5.doCall(ExampleAndroidTransform.groovy:125)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    	at groovy.lang.Closure.call(Closure.java:414)
    	at groovy.lang.Closure.call(Closure.java:430)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2040)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2025)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2066)
    	at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    	at com.example.app.android.gradle.ExampleAndroidTransform$_transform_closure3.doCall(ExampleAndroidTransform.groovy:122)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    	at groovy.lang.Closure.call(Closure.java:414)
    	at groovy.lang.Closure.call(Closure.java:430)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2040)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2025)
    	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2066)
    	at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
    	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    	at com.example.app.android.gradle.ExampleAndroidTransform.transform(ExampleAndroidTransform.groovy:120)
    	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221)
    	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217)
    	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
    	at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    	at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
    	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
    	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
    	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
    	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
    	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
    	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
    	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
    	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
    	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
    	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
    	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
    	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
    	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
    	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
    	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
    	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
    	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
    	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
    	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
    	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
    	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
    	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    	at java.lang.Thread.run(Thread.java:748)
    Caused by: org.aspectj.apache.bcel.classfile.ClassFormatException: Index 151 into constant pool (size:150) is invalid
    	at org.aspectj.apache.bcel.classfile.ConstantPool.getConstant(ConstantPool.java:119)
    	at org.aspectj.apache.bcel.classfile.ConstantPool.getConstantUtf8(ConstantPool.java:294)
    	at org.aspectj.weaver.bcel.BcelConstantPoolReader.readUtf8(BcelConstantPoolReader.java:31)
    	at org.aspectj.weaver.VersionedDataInputStream.readUtf8(VersionedDataInputStream.java:61)
    	at org.aspectj.weaver.VersionedDataInputStream.readPath(VersionedDataInputStream.java:73)
    	at org.aspectj.weaver.AjAttribute$SourceContextAttribute.read(AjAttribute.java:384)
    	at org.aspectj.weaver.AjAttribute.read(AjAttribute.java:125)
    	at org.aspectj.weaver.bcel.Utility.readAjAttributes(Utility.java:101)
    	at org.aspectj.weaver.bcel.BcelObjectType.ensureAspectJAttributesUnpacked(BcelObjectType.java:383)
    	... 117 more
    :transformClassesWithExampleAndroidTransformForDebug FAILED
    :transformClassesWithExampleAndroidTransformForDebug (Thread[Task worker for ':' Thread 2,5,main]) completed. Took 0.248 secs.

    FAILURE: Build failed with an exception.