@@ -94,6 +94,10 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo
9494 holder .initActivityRef = helper .castContextToActivity (holder , holder .initIfActivityBody );
9595 }
9696
97+ EBean eBeanAnnotation = element .getAnnotation (EBean .class );
98+ EBean .Scope eBeanScope = eBeanAnnotation .scope ();
99+ boolean hasSingletonScope = eBeanScope == EBean .Scope .Singleton ;
100+
97101 {
98102 // Constructor
99103
@@ -113,13 +117,11 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo
113117
114118 constructorBody .assign (contextField , constructorContextParam );
115119
116- constructorBody .invoke (init );
120+ if (!hasSingletonScope ) {
121+ constructorBody .invoke (init );
122+ }
117123 }
118124
119- EBean eBeanAnnotation = element .getAnnotation (EBean .class );
120- EBean .Scope eBeanScope = eBeanAnnotation .scope ();
121- boolean hasSingletonScope = eBeanScope == EBean .Scope .Singleton ;
122-
123125 {
124126 // Factory method
125127
@@ -141,6 +143,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder eBeansHo
141143 ._then ();
142144 JVar previousNotifier = holder .replacePreviousNotifierWithNull (creationBlock );
143145 creationBlock .assign (instanceField , _new (holder .generatedClass ).arg (factoryMethodContextParam .invoke ("getApplicationContext" )));
146+ creationBlock .invoke (instanceField , init );
144147 holder .resetPreviousNotifier (creationBlock , previousNotifier );
145148
146149 factoryMethodBody ._return (instanceField );
0 commit comments