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
Aspect object id 76Code: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
I am so close to it all working I'm sure, any help would be fantastic.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
Thanks.


Reply With Quote