[Building Sakai] content-review is broken in 2.7?

Charles Hedrick hedrick at rutgers.edu
Mon Mar 29 12:11:47 PDT 2010


Here's the error:

2010-03-29 15:10:36,851  INFO main org.sakaiproject.assignment.impl.BaseAssignmentService - org.sakaiproject.assignment.impl.DbAssignmentService at 20fd9967 init()
2010-03-29 15:10:36,956  WARN main org.sakaiproject.component.impl.SpringCompMgr - get(org.sakaiproject.contentreview.service.ContentReviewService): 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.sakaiproject.contentreview.service.ContentReviewService' defined in file [/Volumes/MacintoshHD2/users/sakai/test-27/apache-tomcat-5.5.28/components/sakai-content-review-pack/WEB-INF/components.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy38 implementing org.springframework.beans.factory.InitializingBean,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [org.sakaiproject.contentreview.dao.impl.ContentReviewDao] for property 'dao'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy38 implementing org.springframework.beans.factory.InitializingBean,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [org.sakaiproject.contentreview.dao.impl.ContentReviewDao] for property 'dao': no matching editors or conversion strategy found
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.sakaiproject.util.NoisierDefaultListableBeanFactory.getBean(NoisierDefaultListableBeanFactory.java:11


On Mar 29, 2010, at 2:28:59 PM, Charles Hedrick wrote:

> We use the turnitin content-review module. In 2.7, something has been done to ContentReviewDao that I can't make sense of.
> 
>   <!-- This wraps our DAO so that the transactions are managed -->^M
>                <bean id="org.sakaiproject.contentreview.dao.ContentReviewDao"
>                        class="org.sakaiproject.genericdao.springutil.CurrentClassLoaderTxProxyFactoryBean">
>                <property name="transactionManager"
>                        ref="org.sakaiproject.springframework.orm.hibernate.GlobalTransactionManager" />
>                <property name="target"
>                        ref="org.sakaiproject.contentreview.dao.impl.ContentReviewDaoTarget" />
> ...
> 
> The problem is that the code wants to do
> 
>       <bean
>                id="org.sakaiproject.contentreview.service.ContentReviewService"
>                class="org.sakaiproject.contentreview.impl.turnitin.TurnitinReviewServiceImpl"
>                init-method="init">^M
>                <property name="dao"
>                        ref="org.sakaiproject.contentreview.dao.ContentReviewDao" />^M
>                <property name="toolManager"
>                        ref="org.sakaiproject.tool.api.ToolManager" />^M
> 
> But that can't work, because org.sakaiproject.contentreview.dao.ContentReviewDao is now an interceptor, not the actual ContentReviewDao, and so
> 
>  public void setDao(ContentReviewDao dao) {
>                super.setDao(dao);
>                this.dao = dao;
> }
> 
> no longer works. I have been unable to this particular method of wrapping in documentation, so I can't tell how it was intended to work,, and it doesn't appear that any other part of Sakai uses org.sakaiproject.genericdao.springutil.CurrentClassLoaderTxProxyFactoryBean. Could whoever invented this monster please tell me how it's supposed to be used?
> 
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
> 
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2421 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20100329/8741c869/attachment.bin 


More information about the sakai-dev mailing list