You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Martin Dirichs (JIRA)" <ta...@jakarta.apache.org> on 2006/03/21 11:46:47 UTC

[jira] Commented: (TAPESTRY-846) Random error accesing pages: Property " " has already been accounted for by the element at Annotation ...

    [ 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: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org