[ http://issues.apache.org/jira/browse/TAPESTRY-846?page=comments#action_12371206 ]
Martin Dirichs commented on TAPESTRY-846: ----------------------------------------- Also got biten by this issue (with tapestry-4.0). https://issues.apache.org/jira/browse/TAPESTRY-696 really seems to be closely related, but there must be a different root cause than the one fixed there. I did some experiments and found out three things so far: 1. For me, the error only occurs with -Dorg.apache.tapestry.disable-caching=true. 2. It's quite definitely a race condition since the error occurs only occasionally. 3. There must be another issue than the one fixed in TAPESTRY-696. In TAPESTRY-696, the solution seemed to be a synchonized block within org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getComponentConstructor(). Out of curiosity, I declared the whole method as synchronized, but the error still persisted. Stack trace follows: org.apache.tapestry.spec.ComponentSpecification.claimProperty(ComponentSpecification.java:674) org.apache.tapestry.spec.ComponentSpecification.addInjectSpecification(ComponentSpecification.java:645) org.apache.tapestry.annotations.InjectStateAnnotationWorker.performEnhancement(InjectStateAnnotationWorker.java:49) org.apache.tapestry.annotations.AnnotationEnhancementWorker.performMethodEnhancement(AnnotationEnhancementWorker.java:142) org.apache.tapestry.annotations.AnnotationEnhancementWorker.performMethodEnhancement(AnnotationEnhancementWorker.java:110) org.apache.tapestry.annotations.AnnotationEnhancementWorker.performEnhancement(AnnotationEnhancementWorker.java:70) $EnhancementWorker_10a1c4933f5.performEnhancement($EnhancementWorker_10a1c4933f5.java) $EnhancementWorker_10a1c4933fb.performEnhancement($EnhancementWorker_10a1c4933fb.java) $EnhancementWorker_10a1c4933d7.performEnhancement($EnhancementWorker_10a1c4933d7.java) org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getComponentConstructor(ComponentConstructorFactoryImpl.java:97) $ComponentConstructorFactory_10a1c4933c4.getComponentConstructor($ComponentConstructorFactory_10a1c4933c4.java) org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.java:531) org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoader.java:481) $IPageLoader_10a1c4933b4.createImplicitComponent($IPageLoader_10a1c4933b4.java) $IPageLoader_10a1c4933b5.createImplicitComponent($IPageLoader_10a1c4933b5.java) org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.createImplicitComponent(ComponentTemplateLoaderLogic.java:218) org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:172) org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:111) org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.loadTemplate(ComponentTemplateLoaderLogic.java:88) org.apache.tapestry.services.impl.ComponentTemplateLoaderImpl.loadTemplate(ComponentTemplateLoaderImpl.java:60) $ComponentTemplateLoader_10a1c4933c8.loadTemplate($ComponentTemplateLoader_10a1c4933c8.java) org.apache.tapestry.pageload.PageLoader.loadTemplateForComponent(PageLoader.java:648) org.apache.tapestry.BaseComponent.readTemplate(BaseComponent.java:77) org.apache.tapestry.BaseComponent.finishLoad(BaseComponent.java:107) $CustomerDetail_218.finishLoad($CustomerDetail_218.java) org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:439) org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:613) $IPageLoader_10a1c4933b4.loadPage($IPageLoader_10a1c4933b4.java) $IPageLoader_10a1c4933b5.loadPage($IPageLoader_10a1c4933b5.java) org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:120) $IPageSource_10a1c493317.getPage($IPageSource_10a1c493317.java) org.apache.tapestry.engine.RequestCycle.loadPage(RequestCycle.java:268) org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:251) org.apache.tapestry.engine.ExternalService.service(ExternalService.java:139) $IEngineService_10a1c4933ac.service($IEngineService_10a1c4933ac.java) org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:66) org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248) org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60) $WebRequestServicer_10a1c49337b.service($WebRequestServicer_10a1c49337b.java) org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:48) $WebRequestServicerFilter_10a1c49337d.service($WebRequestServicerFilter_10a1c49337d.java) $WebRequestServicer_10a1c49337f.service($WebRequestServicer_10a1c49337f.java) $WebRequestServicer_10a1c493377.service($WebRequestServicer_10a1c493377.java) org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56) $ServletRequestServicer_10a1c49335b.service($ServletRequestServicer_10a1c49335b.java) org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55) $ServletRequestServicerFilter_10a1c493357.service($ServletRequestServicerFilter_10a1c493357.java) $ServletRequestServicer_10a1c49335d.service($ServletRequestServicer_10a1c49335d.java) org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52) $ServletRequestServicerFilter_10a1c493355.service($ServletRequestServicerFilter_10a1c493355.java) $ServletRequestServicer_10a1c49335d.service($ServletRequestServicer_10a1c49335d.java) org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53) $ServletRequestServicerFilter_10a1c493359.service($ServletRequestServicerFilter_10a1c493359.java) $ServletRequestServicer_10a1c49335d.service($ServletRequestServicer_10a1c49335d.java) $ServletRequestServicer_10a1c49334f.service($ServletRequestServicer_10a1c49334f.java) org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123) ... > Random error accesing pages: Property " " has already been accounted for by > the element at Annotation ... > --------------------------------------------------------------------------------------------------------- > > Key: TAPESTRY-846 > URL: http://issues.apache.org/jira/browse/TAPESTRY-846 > Project: Tapestry > Type: Bug > Components: Annotations > Versions: 4.0 > Environment: Linux, OS X, WXP > Reporter: Raul Raja Martinez > > As posted in Tapestry mailing list: > I have been unable to write a test to reproduce the error since it happens > randomly which makes me thing that it happens when classes are enhanced. I > have checked all my classes and > com.estudiowebs.CMS.components.AbstractCMSComponent is the only place where > that property is declared. > Here is my code: > public abstract class AbstractCMSComponent extends BaseComponent { > > @InjectPage("News") > public abstract News getNewsPage(); > } > public abstract class AbstractCategoryLinker extends AbstractCMSComponent { > public IPage onClickMenuItem() { > Contact cp = getContactPage(); > return cp; > } > public abstract class MenuNavigation extends AbstractCategoryLinker { > } > Here is the stack trace: > org.apache.hivemind.ApplicationRuntimeException > Property newsPage has already been accounted for by the element at Annotation > @org.apache.tapestry.annotations.InjectPage(value=News) of public abstract > com.estudiowebs.CMS.pages.News > com.estudiowebs.CMS.components.AbstractCMSComponent.getNewsPage(). > location: Annotation > @org.apache.tapestry.annotations.InjectPage(value=News) of public abstract > com.estudiowebs.CMS.pages.News > com.estudiowebs.CMS.components.AbstractCMSComponent.getNewsPage() > Stack Trace: > * > org.apache.tapestry.spec.ComponentSpecification.claimProperty(ComponentSpecification.java:674) > * > org.apache.tapestry.spec.ComponentSpecification.addInjectSpecification(ComponentSpecification.java:645) > * > org.apache.tapestry.annotations.InjectPageAnnotationWorker.performEnhancement(InjectPageAnnotationWorker.java:50) > * > org.apache.tapestry.annotations.AnnotationEnhancementWorker.performMethodEnhancement(AnnotationEnhancementWorker.java:142) > * > org.apache.tapestry.annotations.AnnotationEnhancementWorker.performMethodEnhancement(AnnotationEnhancementWorker.java:110) > * > org.apache.tapestry.annotations.AnnotationEnhancementWorker.performEnhancement(AnnotationEnhancementWorker.java:70) > * > $EnhancementWorker_108fb922aed.performEnhancement($EnhancementWorker_108fb922aed.java) > * > $EnhancementWorker_108fb922aef.performEnhancement($EnhancementWorker_108fb922aef.java) > * > $EnhancementWorker_108fb922acb.performEnhancement($EnhancementWorker_108fb922acb.java) > * > org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getComponentConstructor(ComponentConstructorFactoryImpl.java:97) > * > $ComponentConstructorFactory_108fb922ab8.getComponentConstructor($ComponentConstructorFactory_108fb922ab8.java) > * > org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.java:531) > * > org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:401) > * > org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoader.java:494) > * > $IPageLoader_108fb922aa8.createImplicitComponent($IPageLoader_108fb922aa8.java) > * > $IPageLoader_108fb922aa9.createImplicitComponent($IPageLoader_108fb922aa9.java) > * > org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.createImplicitComponent(ComponentTemplateLoaderLogic.java:218) > * > org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:172) > * > org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:111) > * > org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.loadTemplate(ComponentTemplateLoaderLogic.java:88) > * > org.apache.tapestry.services.impl.ComponentTemplateLoaderImpl.loadTemplate(ComponentTemplateLoaderImpl.java:60) > * > $ComponentTemplateLoader_108fb922abc.loadTemplate($ComponentTemplateLoader_108fb922abc.java) > * > org.apache.tapestry.pageload.PageLoader.loadTemplateForComponent(PageLoader.java:648) > * org.apache.tapestry.BaseComponent.readTemplate(BaseComponent.java:77) > * org.apache.tapestry.BaseComponent.finishLoad(BaseComponent.java:107) > * $Contact_470.finishLoad($Contact_470.java) > * > org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:439) > * org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:613) > * $IPageLoader_108fb922aa8.loadPage($IPageLoader_108fb922aa8.java) > * $IPageLoader_108fb922aa9.loadPage($IPageLoader_108fb922aa9.java) > * org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:120) > * $IPageSource_108fb922a07.getPage($IPageSource_108fb922a07.java) > * org.apache.tapestry.engine.RequestCycle.loadPage(RequestCycle.java:268) > * org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:251) > * $MenuNavigation_464.getContactPage($MenuNavigation_464.java) > * > com.estudiowebs.CMS.components.AbstractCategoryLinker.onClickMenuItem(AbstractCategoryLinker.java:20) > * sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > * > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > * > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > * java.lang.reflect.Method.invoke(Method.java:585) > * > org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeTargetMethod(ListenerMethodInvokerImpl.java:214) > * > org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod(ListenerMethodInvokerImpl.java:155) > * > org.apache.tapestry.listener.ListenerMethodInvokerImpl.searchAndInvoke(ListenerMethodInvokerImpl.java:124) > * > org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod(ListenerMethodInvokerImpl.java:65) > * > org.apache.tapestry.listener.SyntheticListener.actionTriggered(SyntheticListener.java:51) > * > org.apache.tapestry.binding.ListenerMethodBinding.actionTriggered(ListenerMethodBinding.java:77) > * > org.apache.tapestry.listener.ListenerInvokerTerminator.invokeListener(ListenerInvokerTerminator.java:51) > * > $ListenerInvoker_108fb922a35.invokeListener($ListenerInvoker_108fb922a35.java) > * org.apache.tapestry.link.DirectLink.trigger(DirectLink.java:105) > * > org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:146) > * org.apache.tapestry.engine.DirectService.service(DirectService.java:132) > * $IEngineService_108fb922a92.service($IEngineService_108fb922a92.java) > * > org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:66) > * > org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248) > * > org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60) > * > $WebRequestServicer_108fb922a6b.service($WebRequestServicer_108fb922a6b.java) > * > org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:48) > * > $WebRequestServicerFilter_108fb922a6d.service($WebRequestServicerFilter_108fb922a6d.java) > * > $WebRequestServicer_108fb922a6f.service($WebRequestServicer_108fb922a6f.java) > * > $WebRequestServicer_108fb922a67.service($WebRequestServicer_108fb922a67.java) > * > org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56) > * > $ServletRequestServicer_108fb922a4b.service($ServletRequestServicer_108fb922a4b.java) > * > org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55) > * > $ServletRequestServicerFilter_108fb922a47.service($ServletRequestServicerFilter_108fb922a47.java) > * > $ServletRequestServicer_108fb922a4d.service($ServletRequestServicer_108fb922a4d.java) > * > org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52) > * > $ServletRequestServicerFilter_108fb922a45.service($ServletRequestServicerFilter_108fb922a45.java) > * > $ServletRequestServicer_108fb922a4d.service($ServletRequestServicer_108fb922a4d.java) > * > org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53) > * > $ServletRequestServicerFilter_108fb922a49.service($ServletRequestServicerFilter_108fb922a49.java) > * > $ServletRequestServicer_108fb922a4d.service($ServletRequestServicer_108fb922a4d.java) > * > $ServletRequestServicer_108fb922a3f.service($ServletRequestServicer_108fb922a3f.java) > * > org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123) > * org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:79) > * javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > * javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > * > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > * > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > * > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172) > * > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > * > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > * > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > * > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > * > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > * > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > * > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > * > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > * > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > * > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868) > * > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663) > * > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > * > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > * > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > * java.lang.Thread.run(Thread.java:613) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
