Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 328291

Summary: Problem while using http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi-2.0.m1.xsd solved using spring-osgi.1.2.xsd
Product: [RT] Virgo Reporter: Chiradip Mandal <chiradip.mandal>
Component: unknownAssignee: Glyn Normington <glyn.normington>
Status: CLOSED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: glyn.normington, jannatbd715
Version: unspecified   
Target Milestone: ---   
Hardware: Macintosh   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Chiradip Mandal CLA 2010-10-20 16:18:20 EDT
Build Identifier: This is virgo-web-server-2.1.0.RC1-incubation

[2010-10-20 12:50:00.172] Thread-3                     <AG0000E> Application context creation failure for bundle 'com.synconx.paperless.framework.db' version '0.0.1'. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.osgi.service.exporter.support.OsgiServiceFactoryBean#0': Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'cacheTarget' of bean class [org.springframework.osgi.service.exporter.support.OsgiServiceFactoryBean]: Bean property 'cacheTarget' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1361)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355)
	at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
	at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)
	at org.eclipse.virgo.kernel.agent.dm.ContextPropagatingTaskExecutor$2.run(ContextPropagatingTaskExecutor.java:95)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:637)
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'cacheTarget' of bean class [org.springframework.osgi.service.exporter.support.OsgiServiceFactoryBean]: Bean property 'cacheTarget' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1038)
	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:914)
	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76)
	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1358)
	... 18 common frames omitted

Reproducible: Always

Steps to Reproduce:
1.Just use http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi-2.0.m1.xsd in you osgi-context.xml (the bean definition file for exporting and importing osgi services, packages, and bundles)
2.
3.
Comment 1 Glyn Normington CLA 2010-10-21 03:43:04 EDT
Thanks for logging this issue. You are not the first person to run into this.

None of the examples in the Programmer Guide use the Spring DM 2.0 schema and it's pretty clear as soon as you look at the Spring DM bundles running in Virgo that Virgo uses Spring DM version 1.2.1, so what gave you the impression that the 2.0 schema might work? For instance, did you copy from some example that claimed to work with Virgo (or dm Server)?
Comment 2 Glyn Normington CLA 2010-10-22 03:43:25 EDT
Closing out. It seems that the problem was found and fixed by the user in a short space of time, so it is unlikely any documentation changes will help.