Autowired objects in aspect are null once code is run
Hi, I am having problems autowiring the entity manager into my Aspect.
When I add a constructor to my Aspect and put a break point on it I can see it hits twice, therefore two objects created. The first time the aspect has an object id of 52. I continue and the breakpoint hits again, this time the Aspect object has an id of 76. My third breakpoint is on a setter for a bean property configured in the application context xml. This refers to the second instance of the object 76 which I can see does have the @PersistenceContext em set correctly. As my test executes and my aspect is launched but the instance used is object 52, this one has null values for the entity manager.
I have copied the stack for each instance.
Aspect object id 52
Code:
Thread [main] (Suspended (breakpoint at line 20 in EntityManagerAspectImpl))
EntityManagerAspectImpl.<init>() line: 20
EntityManagerAspectImpl.ajc$postClinit() line: 1
EntityManagerAspectImpl.<clinit>() line: 1
J9VMInternals.initializeImpl(Class) line: not available [native method]
J9VMInternals.initialize(Class) line: 196
NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]
NativeConstructorAccessorImpl.newInstance(Object[]) line: 67
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 45
Constructor<T>.newInstance(Object...) line: 522
BeanUtils.instantiateClass(Constructor, Object[]) line: 100
CglibSubclassingInstantiationStrategy(SimpleInstantiationStrategy).instantiate(RootBeanDefinition, String, BeanFactory) line: 61
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).instantiateBean(String, RootBeanDefinition) line: 877
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBeanInstance(String, RootBeanDefinition, Object[]) line: 839
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String, RootBeanDefinition, Object[]) line: 440
AbstractAutowireCapableBeanFactory$1.run() line: 409
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: 219
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String, RootBeanDefinition, Object[]) line: 380
AbstractBeanFactory$1.getObject() line: 264
DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingleton(String, ObjectFactory) line: 222
DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String, Class, Object[], boolean) line: 261
DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, Class, Object[]) line: 185
DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) line: 164
DefaultListableBeanFactory.preInstantiateSingletons() line: 429
GenericApplicationContext(AbstractApplicationContext).finishBeanFactoryInitialization(ConfigurableListableBeanFactory) line: 728
GenericApplicationContext(AbstractApplicationContext).refresh() line: 380
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 79
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
Method.invoke(Object, Object...) line: 618
GLExtractControlTest(AbstractJpaTests).runBare() line: 230
TestResult$1.protect() line: 106
TestResult.runProtected(Test, Protectable) line: 124
TestResult.run(TestCase) line: 109
GLExtractControlTest(TestCase).run(TestResult) line: 120
TestSuite.runTest(Test, TestResult) line: 230
TestSuite.run(TestResult) line: 225
JUnit38ClassRunner.run(RunNotifier) line: 81
JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) line: 45
TestExecution.run(ITestReference[]) line: 38
RemoteTestRunner.runTests(String[], String, TestExecution) line: 460
RemoteTestRunner.runTests(TestExecution) line: 673
RemoteTestRunner.run() line: 386
RemoteTestRunner.main(String[]) line: 196
Aspect object id 76
Code:
Thread [main] (Suspended (breakpoint at line 20 in EntityManagerAspectImpl))
EntityManagerAspectImpl.<init>() line: 20
NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]
NativeConstructorAccessorImpl.newInstance(Object[]) line: 67
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 45
Constructor<T>.newInstance(Object...) line: 522
BeanUtils.instantiateClass(Constructor, Object[]) line: 100
CglibSubclassingInstantiationStrategy(SimpleInstantiationStrategy).instantiate(RootBeanDefinition, String, BeanFactory) line: 61
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).instantiateBean(String, RootBeanDefinition) line: 877
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBeanInstance(String, RootBeanDefinition, Object[]) line: 839
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String, RootBeanDefinition, Object[]) line: 440
AbstractAutowireCapableBeanFactory$1.run() line: 409
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: 219
DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String, RootBeanDefinition, Object[]) line: 380
AbstractBeanFactory$1.getObject() line: 264
DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingleton(String, ObjectFactory) line: 222
DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String, Class, Object[], boolean) line: 261
DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, Class, Object[]) line: 185
DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) line: 164
DefaultListableBeanFactory.preInstantiateSingletons() line: 429
GenericApplicationContext(AbstractApplicationContext).finishBeanFactoryInitialization(ConfigurableListableBeanFactory) line: 728
GenericApplicationContext(AbstractApplicationContext).refresh() line: 380
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 79
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
Method.invoke(Object, Object...) line: 618
GLExtractControlTest(AbstractJpaTests).runBare() line: 230
TestResult$1.protect() line: 106
TestResult.runProtected(Test, Protectable) line: 124
TestResult.run(TestCase) line: 109
GLExtractControlTest(TestCase).run(TestResult) line: 120
TestSuite.runTest(Test, TestResult) line: 230
TestSuite.run(TestResult) line: 225
JUnit38ClassRunner.run(RunNotifier) line: 81
JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) line: 45
TestExecution.run(ITestReference[]) line: 38
RemoteTestRunner.runTests(String[], String, TestExecution) line: 460
RemoteTestRunner.runTests(TestExecution) line: 673
RemoteTestRunner.run() line: 386
RemoteTestRunner.main(String[]) line: 196
I am so close to it all working I'm sure, any help would be fantastic.
Thanks.