How to safely use displayPath in Template?
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-27-2007 01:07 PM
How can I safely use node.displayPath in a template?
Just using this
When I look at the code, it looks like it should be safe to call node.displayPath because it is designed to return "" when an auth exception occurs. The error below seems to miss the real problem, so I am a little confused about what's really going on. But it's clearly linked to ${child.displayPath} in my case, since if I remove just that it's fine; add it back and I get this.
Just using this
${child.displayPath}
throws the UnexpectedRollbackException below when running as a user who doesn't have permissions across the path. It's ok when running as an admin.When I look at the code, it looks like it should be safe to call node.displayPath because it is designed to return "" when an auth exception occurs. The error below seems to miss the real problem, so I am a little confused about what's really going on. But it's clearly linked to ${child.displayPath} in my case, since if I remove just that it's fine; add it back and I get this.
javax.faces.FacesException: Exception in JSP: /jsp/browse/browse.jsp:232229: label="#{msg.custom_view}" progressive="true"230: expanded='#{BrowseBean.panels["custom-panel"]}' expandedActionListener="#{BrowseBean.expandPanel}">231: <r:webScript id="webscript" scriptUrl="#{NavigationBean.currentNodeWebscript}" context="#{NavigationBean.currentNode.nodeRef}" rendered="#{NavigationBean.hasWebscriptView}" />232: <r:template id="template" template="#{NavigationBean.currentNodeTemplate}" model="#{NavigationBean.templateModel}" rendered="#{!NavigationBean.hasWebscriptView && NavigationBean.hasTemplateView}" />233: </a:panel>234: </td>235: <td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>Stacktrace:caused by:org.apache.jasper.JasperException: Exception in JSP: /jsp/browse/browse.jsp:232229: label="#{msg.custom_view}" progressive="true"230: expanded='#{BrowseBean.panels["custom-panel"]}' expandedActionListener="#{BrowseBean.expandPanel}">231: <r:webScript id="webscript" scriptUrl="#{NavigationBean.currentNodeWebscript}" context="#{NavigationBean.currentNode.nodeRef}" rendered="#{NavigationBean.hasWebscriptView}" />232: <r:template id="template" template="#{NavigationBean.currentNodeTemplate}" model="#{NavigationBean.templateModel}" rendered="#{!NavigationBean.hasWebscriptView && NavigationBean.hasTemplateView}" />233: </a:panel>234: </td>235: <td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>Stacktrace:caused by:org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-onlyHide Detailsjavax.faces.FacesException: Exception in JSP: /jsp/browse/browse.jsp:232229: label="#{msg.custom_view}" progressive="true"230: expanded='#{BrowseBean.panels["custom-panel"]}' expandedActionListener="#{BrowseBean.expandPanel}">231: <r:webScript id="webscript" scriptUrl="#{NavigationBean.currentNodeWebscript}" context="#{NavigationBean.currentNode.nodeRef}" rendered="#{NavigationBean.hasWebscriptView}" />232: <r:template id="template" template="#{NavigationBean.currentNodeTemplate}" model="#{NavigationBean.templateModel}" rendered="#{!NavigationBean.hasWebscriptView && NavigationBean.hasTemplateView}" />233: </a:panel>234: </td>235: <td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>Stacktrace:at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425)at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)at zzz.zzz.alfresco.security.CmsAuthenticationFilter.doFilter(CmsAuthenticationFilter.java:90)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)at org.josso.tc55.agent.SSOAgentValve.invoke(SSOAgentValve.java:552)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)at java.lang.Thread.run(Thread.java:595)Caused by: org.apache.jasper.JasperException: Exception in JSP: /jsp/browse/browse.jsp:232229: label="#{msg.custom_view}" progressive="true"230: expanded='#{BrowseBean.panels["custom-panel"]}' expandedActionListener="#{BrowseBean.expandPanel}">231: <r:webScript id="webscript" scriptUrl="#{NavigationBean.currentNodeWebscript}" context="#{NavigationBean.currentNode.nodeRef}" rendered="#{NavigationBean.hasWebscriptView}" />232: <r:template id="template" template="#{NavigationBean.currentNodeTemplate}" model="#{NavigationBean.templateModel}" rendered="#{!NavigationBean.hasWebscriptView && NavigationBean.hasTemplateView}" />233: </a:panel>234: </td>235: <td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>Stacktrace:at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)… 27 moreReturn to applicationLogout
logERROR [[tomcat].[/alfresco].[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exceptionorg.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:618) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:307) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210) at $Proxy90.processTemplate(Unknown Source) at org.alfresco.web.ui.repo.component.template.UITemplate.encodeBegin(UITemplate.java:157) at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:467) at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:320) at org.apache.jsp.jsp.browse.browse_jsp._jspx_meth_r_005ftemplate_005f0(browse_jsp.java:2317) at org.apache.jsp.jsp.browse.browse_jsp._jspx_meth_a_005fpanel_005f5(browse_jsp.java:2271) at org.apache.jsp.jsp.browse.browse_jsp._jspService(browse_jsp.java:841) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419) at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at zzz.zzz.alfresco.security.CmsAuthenticationFilter.doFilter(CmsAuthenticationFilter.java:90) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.josso.tc55.agent.SSOAgentValve.invoke(SSOAgentValve.java:552) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:595)
Labels:
- Labels:
-
Archive
4 REPLIES 4

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2007 05:43 AM
This is a bug - the code should not allow exceptions to go off internally which cause the transaction to fail later. If the user does not have access to the entire path then it cannot be rendered and "" should be returned but not throw an exception internally.
I have raised a JIRA item for this:
http://issues.alfresco.com/browse/AR-1782
Thanks,
Kevin
I have raised a JIRA item for this:
http://issues.alfresco.com/browse/AR-1782
Thanks,
Kevin
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-28-2007 12:19 PM
This is a bug - the code should not allow exceptions to go off internally which cause the transaction to fail later. If the user does not have access to the entire path then it cannot be rendered and "" should be returned but not throw an exception internally.
I have raised a JIRA item for this:
http://issues.alfresco.com/browse/AR-1782
Thanks,
Kevin
oops, right after I posted I also decided that it's must be a bug even if there's a work around. So, I also created a JIRA item
http://issues.alfresco.com/browse/AWC-1607
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2007 02:49 PM
http://issues.alfresco.com/browse/AR-1782
it says see
http://issues.alfresco.com/browse/CHK-1454
but I can't access that
Can you repeat anything noteworthy that I am missing?

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-08-2007 12:25 PM
Yes sorry i didn't know the CHECKIN project was internal - i've updated the issue with the comments.
Thanks,
Kevin
Thanks,
Kevin
