Skip to content
This repository was archived by the owner on Feb 26, 2023. It is now read-only.
This repository was archived by the owner on Feb 26, 2023. It is now read-only.

java.lang.IllegalStateException with AndroidAnnotations 4.1 and @EViewGroup / @OrmLiteDao #1887

Description

@danielkummer

Hi there

I'm getting the following error currently not listed in the open issues list:
Note: some package names had to be anonymised because of NDA reasons.
The exception seems to be related to the @eviewgroup annotation in combination with an @OrmLiteDao(helper = DatabaseHelper.class) annotation.

To recreate, create a class annotated with @eviewgroup and use the @OrmLiteDao annotation inside it.

ava version: javac 1.8.0_102
  Javac processors options: androidManifestFile=.../app/build/intermediates/manifests/full/qa/debug/AndroidManifest.xml, resourcePackageName=...., eventBusIndex=....EventBusIndex
  Stacktrace: java.lang.IllegalStateException: This shouldn't happen unless the validation is bad
  	at org.androidannotations.holder.ReceiverRegistrationDelegate.<init>(ReceiverRegistrationDelegate.java:38)
  	at org.androidannotations.holder.EViewHolder.<init>(EViewHolder.java:72)
  	at org.androidannotations.holder.EViewGroupHolder.<init>(EViewGroupHolder.java:32)
  	at org.androidannotations.internal.core.handler.EViewGroupHandler.createGeneratedClassHolder(EViewGroupHandler.java:40)
  	at org.androidannotations.internal.core.handler.EViewGroupHandler.createGeneratedClassHolder(EViewGroupHandler.java:32)
  	at org.androidannotations.internal.process.ModelProcessor.generateElements(ModelProcessor.java:197)
  	at org.androidannotations.internal.process.ModelProcessor.process(ModelProcessor.java:73)
  	at org.androidannotations.internal.AndroidAnnotationProcessor.processAnnotations(AndroidAnnotationProcessor.java:224)
  	at org.androidannotations.internal.AndroidAnnotationProcessor.processThrowing(AndroidAnnotationProcessor.java:176)
  	at org.androidannotations.internal.AndroidAnnotationProcessor.process(AndroidAnnotationProcessor.java:126)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
  	at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
  	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
  	at com.sun.tools.javac.main.Main.compile(Main.java:523)
  	at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
  	at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
  	at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:46)
  	at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:33)
  	at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:104)
  	at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:53)
  	at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)
  	at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:35)
  	at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25)
  	at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:163)
  	at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:145)
  	at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:93)
  	at com.android.build.gradle.tasks.factory.AndroidJavaCompile.compile(AndroidJavaCompile.java:49)
  	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:75)
  	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:245)
  	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
  	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:232)
  	at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
  	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
  	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
  	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
  	at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
  	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
  	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
  	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.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:53)
  	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
  	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
  	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
  	at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
  	at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
  	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
  	at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
  	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:745)
  Thrown from: ....StatsPeriodBaseSwitcher
  Element (VarSymbol): @org.androidannotations.ormlite.annotations.OrmLiteDao(helper=....database.helper.DatabaseHelper.class)
  protected ....dao.PersonDao PersonDao;

Activity

  1. changed the title [-]java.lang.IllegalStateException with AndroidAnnotations 4.1 and @Extra / @OrmLiteDao[/-] [+]java.lang.IllegalStateException with AndroidAnnotations 4.1 and @EViewGroup / @OrmLiteDao[/+] on Oct 31, 2016
  2. WonderCsabo commented on Nov 1, 2016

    @WonderCsabo
    Member

    Actually it is related to the @Receiver annotation is being used in an @EViewGroup. But it should work... Can you post code where you use this combination?

  3. WonderCsabo commented on Nov 23, 2016

    @WonderCsabo
    Member

    Closing due to lack of response.

  4. ytakahashi1981 commented on Aug 2, 2017

    @ytakahashi1981

    @WonderCsabo

    I have the same issue, too.
    And I cannot upgrade AA to 4.x because of upgration cost with this issue...
    (many many views are using OrmLiteDao annotations in my product...)

    Maybe you can reproduce with these simple sources.
    (My AA version is 4.3.1 but reproduced with 4.1)

    TestDao.java

    public class TestDao extends BaseDaoImpl<TestEntity, Integer> {
    	protected TestDao(ConnectionSource connectionSource, Class<TestEntity> dataClass) throws SQLException {
    		super(connectionSource, dataClass);
    	}
    }

    TestEntity.java

    @DatabaseTable(tableName = "Test", daoClass = TestDao.class)
    public class TestEntity {
    }

    TestView.java

    @EViewGroup
    public class TestView extends FrameLayout {
    
    	@OrmLiteDao(helper = DBHelper.class)
    	TestDao testDao;
    
    	public TestView(@NonNull Context context) {
    		super(context);
    	}
    
    }

    DBHelper.java

    public class DBHelper extends OrmLiteSqliteOpenHelper {
    	public DBHelper(Context context) {
    		super(context, "test.db", null, 1);
    	}
    
    	@Override
    	public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {}
    
    	@Override
    	public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {}
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions