Publishing Error Not Found in any Context

I have a generic page that has an auto index in the slot of a generic page. The page previews fine in all contexts (0,1,301) but publishes with the following error embedded on the page:

Problem assembling output for item: 2-101-5521 with template: erauPgGeneric exception: null see log for stack trace

The console.log file shows:

2009-08-12 19:04:02,969 ERROR [PSVelocityAssembler] Problem assembling output for item: 2-101-5521 with template: erauPgGeneric
com.percussion.webservices.PSErrorResultsException
	at com.percussion.webservices.content.impl.PSContentWs.loadFolders(Unknown Source)
	at com.percussion.pso.jexl.PSOFolderTools.getParentFolderPath(PSOFolderTools.java:211)
	at sun.reflect.GeneratedMethodAccessor2238.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:232)
	at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:105)
	at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
	at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
	at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
	at org.apache.commons.jexl.parser.ASTJexlScript.value(ASTJexlScript.java:58)
	at org.apache.commons.jexl.ScriptImpl.execute(ScriptImpl.java:48)
	at com.percussion.utils.jexl.PSJexlEvaluator.evaluate(Unknown Source)
	at com.percussion.utils.jexl.PSJexlEvaluator.evaluate(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyService.super(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyService.assemble(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor420.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:203)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
	at $Proxy90.assemble(Unknown Source)
	at com.percussion.services.assembly.jexl.PSAssemblerUtils.assemble(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor424.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:267)
	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:197)
	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175)
	at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:327)
	at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:51)
	at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:95)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:70)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
	at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:172)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
	at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:172)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
	at org.apache.velocity.Template.merge(Template.java:256)
	at com.percussion.services.assembly.impl.plugin.PSVelocityAssembler.assembleSingle(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSAssemblerBase.doAssembleSingle(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSVelocityAssembler.doAssembleSingle(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSAssemblerBase$_b.o00000(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSAssemblerBase$_b.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSAssemblerBase.assemble(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyService.assemble(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyService.processServletRequest(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor348.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
	at $Proxy90.processServletRequest(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyServlet.service(Unknown Source)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at com.percussion.webdav.PSWebDavRequestFilter.doFilter(Unknown Source)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at com.percussion.servlets.PSSecurityFilter.doFilter(Unknown Source)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Unknown Source)

Immediately before this error is another error that could be related:

2009-08-12 19:04:02,968 ERROR [PSAssemblerUtils] Problem during assembly
com.percussion.webservices.PSErrorResultsException
	at com.percussion.webservices.content.impl.PSContentWs.loadFolders(Unknown Source)
	at com.percussion.pso.jexl.PSOFolderTools.getParentFolderPath(PSOFolderTools.java:211)
	at sun.reflect.GeneratedMethodAccessor2238.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:232)
	at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:105)
	at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
	at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
	at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
	at org.apache.commons.jexl.parser.ASTJexlScript.value(ASTJexlScript.java:58)
	at org.apache.commons.jexl.ScriptImpl.execute(ScriptImpl.java:48)
	at com.percussion.utils.jexl.PSJexlEvaluator.evaluate(Unknown Source)
	at com.percussion.utils.jexl.PSJexlEvaluator.evaluate(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyService.super(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyService.assemble(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor420.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:203)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
	at $Proxy90.assemble(Unknown Source)
	at com.percussion.services.assembly.jexl.PSAssemblerUtils.assemble(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor424.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:267)
	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:197)
	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175)
	at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:327)
	at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:51)
	at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:95)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:70)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
	at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:172)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
	at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:172)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
	at org.apache.velocity.Template.merge(Template.java:256)
	at com.percussion.services.assembly.impl.plugin.PSVelocityAssembler.assembleSingle(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSAssemblerBase.doAssembleSingle(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSVelocityAssembler.doAssembleSingle(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSAssemblerBase$_b.o00000(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSAssemblerBase$_b.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at com.percussion.services.assembly.impl.plugin.PSAssemblerBase.assemble(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyService.assemble(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyService.processServletRequest(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor348.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
	at $Proxy90.processServletRequest(Unknown Source)
	at com.percussion.services.assembly.impl.PSAssemblyServlet.service(Unknown Source)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at com.percussion.webdav.PSWebDavRequestFilter.doFilter(Unknown Source)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at com.percussion.servlets.PSSecurityFilter.doFilter(Unknown Source)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Unknown Source)

Any ideas on where else I should look for a more descriptive error log?

Check the folder security on the parent folder of that item and make sure There is atleast read access for Everyone.

Some more information that might be helpful since this is a somewhat complex process. The generic page has a bottom manual slot available. The slot can hold various auto indexes.

Generic page slot call:

#slot("erauAutoIndex" "p>" "" "" "/p>" "")##

erauAutoIndex manual slot:
[ul]
[li]content finder: sys_RelationshipContentFinder[/li][li]Allowed relationship types: ActiveAssembly[/li][li]Allowed content: erauAutoIndex, Template: erauSnAutoAlphaList[/li][li]Allowed content: erauAutoIndex, Template: erauSnAutoBulletList[/li][li]Allowed content: erauAutoIndex, Template: erauSnAutoDefinitionList[/li][/ul]

I am using the erauSnAutoDefinitionList when receiving this error, template code:


html>
	body>
		#slot($slotname "dl>" "" "" "/dl>" "sitepath=${sitepath}&folderpath=${folderpath}")##
	/body>
/html>

template bindings:
[ul]
[li]$slotname, value=$sys.item.getProperty(“rx:query”).String[/li][li]$folderpath, value=$user.psoFolders.getParentFolderPath($sys.assemblyItem)[/li][li]$sitepath, value=$sys.site.path + “%”[/li][/ul]

template general settings:
[ul]
[li]Output = snippet[/li][li]Active Assembly format = Normal (*Tried changing to Auto-index, no visible change in result.)[/li][/ul]

Auto Index Query:
[ul]
[li]Label = Auto FAQ List (Folder)[/li][li]Value = erauFAQFolderAuto[/li][/ul]

erauFAQFolderAuto slot code:
[ul]
[li]Label = Frequently Asked Questions[/li][li]Type = Regular[/li][li]Allowed relationship types = ActiveAssembly[/li][li]Content finder = sys_AutoSlotContentFinder[/li][li]Allowed Content = erauFAQItem, Template = erauSnFAQItem[/li][/ul]

Query slot code:

select rx:sys_contentid, rx:sys_folderid from rx:eraufaqitem where jcr:path like :folderpath order by rx:displaytitle

[ul]
[li]template = erauSnFAQItem[/li][/ul]

erauSnFAQItem code:

html>
	body>
    	dt>$question/dt>
    	dd>$answer/dd>
	/body>
/html>

template bindings:
[ul]
[li]$answer, value = $sys.item.getProperty(“rx:answer”).String[/li][li]$question, value = $sys.item.getProperty(“rx:displaytitle”).String[/li][/ul]

general settings:
[ul]
[li]Assembler: velocityAssembler[/li][li]Output: Snippet[/li][li]Active Assembly format: Normal[/li][/ul]

As it is working in preview with all contexts, I still suspect that the error is getting generated by improper folder permissions.
Preview the page the way you previewed earlier. Copy the url to clip board.
Close all browsers.
Open a new browser and paste the url and login with the publishing user credentials. (You can get them by opening the publisher you are using.)
If you get the same error, then check the folder security on the parent folder of the item.

Thanks Bhuvaneshwar,

I tried your suggestion to log in as rxpublisher and view the previewed page, everything previewed correctly in every context. The publishing log indicates that the page has successfully published, as it always has.

The folder permissions were set like every other folder in all of our sites: [ul]
[li]Everyone: None[/li][li]Admin: Read, Write, Admin[/li][li]Admin Student Assistants: Read, Write[/li][li]Owner Community (or Communities): Read, Write[/li][/ul]

Changing the folder permission for “Everyone” DID result in a change to the published page and fixed the problem, this seems very strange since it is the only folder that I have needed to allow everyone access to. Since I really don’t want everyone to be viewing this folder I ended up just giving read access to just RxPublisher.

Can you tell me why this particular setup requires RxPublisher read access? Does it have something to do with the fact that the auto index is triggering a query? How is this different than having a dedicated auto index that resides on a page rather than in a slot?

Would you recommend adding RxPublisher to every folder with read access?

Thanks,

Steve

Hi Stephen,
I am glad I could help you.
$folderpath, value=$user.psoFolders.getParentFolderPath($sys.as semblyItem)

binding internally calls PSContentWs.loadFolders(XXX),
While loading the folders the system checks whether user has atleast read permissions on the folder.
As the publisher uses RXPublisher role, either the folders it is accessing need to have a read permission for EveryOne or atleast for RxPublisher role.
I am not sure what kind of folders this code is accessing, but you need RxPublisher role with read permission on all of those folders.
Regards
JB