[Building Sakai] SAK-23733: Nightly mysql trunk is down... circular spring reference?
Kevin Takacs
ktakacs at anisakai.com
Fri Jul 12 09:49:17 PDT 2013
I also ran into this when testing r126908 in SAK-23733 against a local
2.9.x instance. The following stack trace occurs in catalina.out and then
all the beans are destroyed:
Cannot resolve reference to bean
'org_sakaiproject_service_gradebook_GradebookService' while setting bean
property 'gradebookService'; nested exception is
org.springframework.beans.factory.BeanCurrentlyInCreationException: Error
creating bean with name
'org_sakaiproject_service_gradebook_GradebookService':
org.springframework.beans.factory.FactoryBeanNotInitializedException:
FactoryBean is not fully initialized yet
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:112)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at
org.sakaiproject.util.NoisierDefaultListableBeanFactory.preInstantiateSingletons(NoisierDefaultListableBeanFactory.java:73)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at
org.sakaiproject.component.impl.SpringCompMgr.init(SpringCompMgr.java:160)
at
org.sakaiproject.component.cover.ComponentManager.getInstance(ComponentManager.java:98)
at
org.sakaiproject.component.cover.ComponentManager.get(ComponentManager.java:107)
at
org.sakaiproject.component.cover.ServerConfigurationService.getInstance(ServerConfigurationService.java:52)
at org.sakaiproject.util.RequestFilter.init(RequestFilter.java:811)
at
org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
at
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
at
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
at
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4638)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:962)
at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1603)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
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:680)
I was able to fix this locally by removing the gradebookService injection
in
edu-services/gradebook-service/sakai-pack/src/webapp/WEB-INF/components.xml
and adding a ComponentManager call to
GradebookExternalAssessmentServiceImpl. It's probably not the most elegant
solution but now I can get tomcat to start up again. I will add this to a
comment in SAK-23733 for future reference but here is my diff:
Index:
gradebook-service/impl/src/java/org/sakaiproject/component/gradebook/GradebookExternalAssessmentServiceImpl.java
===================================================================
---
gradebook-service/impl/src/java/org/sakaiproject/component/gradebook/GradebookExternalAssessmentServiceImpl.java
(revision 126981)
+++
gradebook-service/impl/src/java/org/sakaiproject/component/gradebook/GradebookExternalAssessmentServiceImpl.java
(working copy)
@@ -42,6 +42,7 @@
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
+import org.sakaiproject.component.cover.ComponentManager;
import org.sakaiproject.component.cover.ServerConfigurationService;
import
org.sakaiproject.service.gradebook.shared.AssessmentNotFoundException;
import
org.sakaiproject.service.gradebook.shared.AssignmentHasIllegalPointsException;
@@ -78,6 +79,10 @@
this.gradebookService = gradebookService;
}
+ public GradebookService getGradebookService(){
+ return (GradebookService)
ComponentManager.get("org.sakaiproject.service.gradebook.GradebookService");
+ }
+
private ConcurrentHashMap<String, ExternalAssignmentProvider>
externalProviders =
new ConcurrentHashMap<String, ExternalAssignmentProvider>();
@@ -543,7 +548,7 @@
// identified as items under its authority. This maintains the
behavior prior to the grouping support
// introduced for the 2.9 release (SAK-11485 and SAK-19688), where
a tool that does not have a provider
// implemented does not have its items filtered for student views
and grading.
- List<org.sakaiproject.service.gradebook.shared.Assignment>
gbAssignments =
gradebookService.getViewableAssignmentsForCurrentUser(gradebookUid);
+ List<org.sakaiproject.service.gradebook.shared.Assignment>
gbAssignments =
getGradebookService().getViewableAssignmentsForCurrentUser(gradebookUid);
for (org.sakaiproject.service.gradebook.shared.Assignment
assignment : gbAssignments) {
String id = assignment.getExternalId();
if (assignment.isExternallyMaintained() &&
!providedAssignments.contains(id) && !visibleAssignments.containsKey(id)) {
@@ -603,7 +608,7 @@
// but are not reported by any provider should be
included for everyone. This is
// to accommodate tools that use the external
assessment mechanisms but have not
// implemented an ExternalAssignmentProvider.
- List<org.sakaiproject.service.gradebook.shared.Assignment>
allAssignments = gradebookService.getAssignments(gradebookUid);
+ List<org.sakaiproject.service.gradebook.shared.Assignment>
allAssignments = getGradebookService().getAssignments(gradebookUid);
for (org.sakaiproject.service.gradebook.shared.Assignment
assignment : allAssignments) {
String id = assignment.getExternalId();
if (assignment.isExternallyMaintained() &&
!providedAssignments.contains(id)) {
Index: gradebook-service/sakai-pack/src/webapp/WEB-INF/components.xml
===================================================================
--- gradebook-service/sakai-pack/src/webapp/WEB-INF/components.xml
(revision 126981)
+++ gradebook-service/sakai-pack/src/webapp/WEB-INF/components.xml
(working copy)
@@ -63,7 +63,6 @@
<ref bean="org_sakaiproject_tool_gradebook_facades_Authn" />
</property>
<property name="eventTrackingService"
ref="org_sakaiproject_tool_gradebook_facades_EventTrackingService" />
- <property name="gradebookService"
ref="org_sakaiproject_service_gradebook_GradebookService" />
</bean>
<bean id="org_sakaiproject_service_gradebook_GradebookServiceTarget"
On Thu, Jul 11, 2013 at 11:45 PM, JUAN JOSé MEROñO SáNCHEZ
<jjmerono at um.es>wrote:
> Nightly mysql trunk is down [1] !! You could see error details in log
> file [2].
>
> It seems that the problem could be a circular spring reference in
> gradebook's components.xml.
> org_sakaiproject_service_gradebook_GradebookService >>
> org_sakaiproject_service_gradebook_GradebookServiceTarget >>
> org_sakaiproject_service_gradebook_GradebookExternalAssessmentService >>
> org_sakaiproject_service_gradebook_GradebookExternalAssessmentServiceTarget
> >> org_sakaiproject_service_gradebook_GradebookService
>
> The circular reference was introduced in rev. 126908 related to
> SAK-23733 [3]
> But, in the other hand, nightly oracle trunk is working right [4] !!!
>
> Any idea why?
>
> [1] http://nightly2.sakaiproject.org:8085/portal
> [2] http://nightly2.sakaiproject.org/logs/tomcat-contrib/catalina.out
> [3]
>
> https://source.sakaiproject.org/viewsvn/edu-services/trunk/gradebook-service/sakai-pack/src/webapp/WEB-INF/components.xml?r1=100087&r2=126908
> [4] http://nightly2.sakaiproject.org:8082/portal
>
> Thanks !!
>
> _______________________________________________
> 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"
>
--
Kevin Takacs
Software Engineer
*O **602-337-8408*
*M **480-544-1972*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20130712/4a3f0466/attachment.html
More information about the sakai-dev
mailing list