You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Dennis Kieselhorst (JIRA)" <ji...@apache.org> on 2009/11/25 20:51:39 UTC

[jira] Updated: (CXF-2558) ClientProxyFactoryBeanDefinitionParser is called multiple times

     [ https://issues.apache.org/jira/browse/CXF-2558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dennis Kieselhorst updated CXF-2558:
------------------------------------

    Priority: Critical  (was: Blocker)

Reduced priority.

> ClientProxyFactoryBeanDefinitionParser is called multiple times
> ---------------------------------------------------------------
>
>                 Key: CXF-2558
>                 URL: https://issues.apache.org/jira/browse/CXF-2558
>             Project: CXF
>          Issue Type: Bug
>          Components: Simple Frontend
>    Affects Versions: 2.2.5
>         Environment: Spring 2.5.6
>            Reporter: Dennis Kieselhorst
>            Priority: Critical
>
> In some cases we're using the ContextSingletonBeanFactoryLocator to obtain a cxf client from a non spring bean (cp. Spring's section about "Glue code and the evil singleton"). For example:
> BeanFactory bf = ContextSingletonBeanFactoryLocator.getInstance().useBeanFactory("cssBeanFactory").getFactory();
> final AccountService accountService = (AccountService) bf.getBean("accountService", AccountService.class);
> With 2.2.3 this was no problem...the proxies were only created once at startup (no further call, when bf.getBean is called):
> 	ReflectionServiceFactoryBean.buildServiceFromClass() line: 351	
> 	ReflectionServiceFactoryBean.initializeServiceModel() line: 444	
> 	ReflectionServiceFactoryBean.create() line: 195	
> 	ClientFactoryBean(AbstractWSDLBasedEndpointFactory).createEndpoint() line: 100	
> 	ClientFactoryBean.create() line: 52	
> 	ClientProxyFactoryBeanDefinitionParser$SpringClientProxyFactoryBean(ClientProxyFactoryBean).create() line: 102	
> 	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
> 	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
> 	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
> 	Method.invoke(Object, Object...) line: 597	
> 	CglibSubclassingInstantiationStrategy(SimpleInstantiationStrategy).instantiate(RootBeanDefinition, String, BeanFactory, Object, Method, Object[]) line: 115	
> 	ConstructorResolver.instantiateUsingFactoryMethod(String, RootBeanDefinition, Object[]) line: 435	
> 	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).instantiateUsingFactoryMethod(String, RootBeanDefinition, Object[]) line: 903	
> 	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBeanInstance(String, RootBeanDefinition, Object[]) line: 817	
> 	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String, RootBeanDefinition, Object[]) line: 440	
> 	AbstractAutowireCapableBeanFactory$1.run() line: 409	
> 	AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]	
> 	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	
> 	ClassPathXmlApplicationContext(AbstractApplicationContext).finishBeanFactoryInitialization(ConfigurableListableBeanFactory) line: 728	
> 	ClassPathXmlApplicationContext(AbstractApplicationContext).refresh() line: 380	
> 	ClassPathXmlApplicationContext.<init>(String[], boolean, ApplicationContext) line: 139	
> 	ClassPathXmlApplicationContext.<init>(String[]) line: 93	
> 	NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]	
> 	NativeConstructorAccessorImpl.newInstance(Object[]) line: 39	
> 	DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27	
> 	Constructor<T>.newInstance(Object...) line: 513	
> 	BeanUtils.instantiateClass(Constructor, Object[]) line: 100	
> 	CglibSubclassingInstantiationStrategy(SimpleInstantiationStrategy).instantiate(RootBeanDefinition, String, BeanFactory, Constructor, Object[]) line: 87	
> 	ConstructorResolver.autowireConstructor(String, RootBeanDefinition, Constructor[], Object[]) line: 248	
> 	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).autowireConstructor(String, RootBeanDefinition, Constructor[], Object[]) line: 925	
> 	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBeanInstance(String, RootBeanDefinition, Object[]) line: 835	
> 	DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).doCreateBean(String, RootBeanDefinition, Object[]) line: 440	
> 	AbstractAutowireCapableBeanFactory$1.run() line: 409	
> 	AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]	
> 	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, Class) line: 168	
> 	ClassPathXmlApplicationContext(AbstractApplicationContext).getBean(String, Class) line: 884	
> 	ContextSingletonBeanFactoryLocator(SingletonBeanFactoryLocator).useBeanFactory(String) line: 397	
> 	ContextLoader.loadParentContext(ServletContext) line: 341	
> 	ContextLoader.initWebApplicationContext(ServletContext) line: 195	
> 	ContextLoaderListener.contextInitialized(ServletContextEvent) line: 45	
> With 2.2.5 there is no call at startup time, but each time bf.getBean is called 
> 	ReflectionServiceFactoryBean.buildServiceFromClass() line: 432	
> 	ReflectionServiceFactoryBean.initializeServiceModel() line: 523	
> 	ReflectionServiceFactoryBean.create() line: 271	
> 	ClientFactoryBean(AbstractWSDLBasedEndpointFactory).createEndpoint() line: 100	
> 	ClientFactoryBean.create() line: 51	
> 	ClientProxyFactoryBeanDefinitionParser$SpringClientProxyFactoryBean(ClientProxyFactoryBean).create() line: 102	
> 	ClientProxyFactoryBeanDefinitionParser$SpringClientProxyFactoryBean.getObject() line: 111	
> 	FactoryBeanRegistrySupport$1.run() line: 121	
> 	AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]	
> 	DefaultListableBeanFactory(FactoryBeanRegistrySupport).doGetObjectFromFactoryBean(FactoryBean, String, boolean) line: 116	
> 	DefaultListableBeanFactory(FactoryBeanRegistrySupport).getObjectFromFactoryBean(FactoryBean, String, boolean) line: 98	
> 	DefaultListableBeanFactory(AbstractBeanFactory).getObjectForBeanInstance(Object, String, String, RootBeanDefinition) line: 1288	
> 	DefaultListableBeanFactory(AbstractBeanFactory).doGetBean(String, Class, Object[], boolean) line: 217	
> 	DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, Class, Object[]) line: 185	
> 	DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, Class) line: 168	
> 	ClassPathXmlApplicationContext(AbstractApplicationContext).getBean(String, Class) line: 884	
> After some time this leads to a OutOfMemoryError:
> org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountService': FactoryBean threw exception on
>  object creation; nested exception is java.lang.OutOfMemoryError: Java heap space

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.