Details
-
Bug
-
Status: Closed
-
Normal
-
Resolution: Fixed
-
None
-
None
-
None
Description
I've just found the existing product tag updating example has been broken in the trunk (hippo-testsuite:1.03.00-SNAPSHOT, the parent of which is org.onehippo.cms7:hippo-cms7-release:7.7.1-SNAPSHOT.
Here's a reproduction path:
(1) Build and run hippo-testsuite (mvn clean install; mvn -P cargo.run)
(2) Visit preview: http://localhost:8080/site/preview
(3) Log on by admin/admin
(4) Click "Products" on the left menu
(5) Click "Koga", the first product
(6) Click "Edit" for the tags and "Save"
Then you will be given a wrong error information: "You are not authorized to edit the tags", which is popped up by the client code, but it should be stated with a correct error information by the way.
Anyway, it fails to save the tags.
During my short debugging, I produced a stack trace:
----------------------------------------------------------------------------------------------------
[INFO] [talledLocalContainer] org.hippoecm.hst.content.beans.ObjectBeanPersistenceException: Exception while trying to update '/hst:hst/hst:sites/demosite-preview/hst:content/products/koga/koga'
[INFO] [talledLocalContainer] at org.hippoecm.hst.content.beans.manager.workflow.WorkflowPersistenceManagerImpl.update(WorkflowPersistenceManagerImpl.java:442)
[INFO] [talledLocalContainer] at org.hippoecm.hst.demo.jaxrs.services.ProductContentResource.updateProductResource(ProductContentResource.java:93)
[INFO] [talledLocalContainer] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] [talledLocalContainer] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[INFO] [talledLocalContainer] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:597)
[INFO] [talledLocalContainer] at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)
[INFO] [talledLocalContainer] at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)
[INFO] [talledLocalContainer] at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:164)
[INFO] [talledLocalContainer] at org.hippoecm.hst.jaxrs.cxf.SecuredJAXRSInvoker.invoke(SecuredJAXRSInvoker.java:55)
[INFO] [talledLocalContainer] at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:91)
[INFO] [talledLocalContainer] at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
[INFO] [talledLocalContainer] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
[INFO] [talledLocalContainer] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
[INFO] [talledLocalContainer] at java.util.concurrent.FutureTask.run(FutureTask.java:138)
[INFO] [talledLocalContainer] at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
[INFO] [talledLocalContainer] at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
[INFO] [talledLocalContainer] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
[INFO] [talledLocalContainer] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)
[INFO] [talledLocalContainer] at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102)
[INFO] [talledLocalContainer] at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464)
[INFO] [talledLocalContainer] at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)
[INFO] [talledLocalContainer] at org.hippoecm.hst.jaxrs.cxf.CXFJaxrsService.invoke(CXFJaxrsService.java:134)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.JaxrsRestServiceValve.invoke(JaxrsRestServiceValve.java:42)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:269)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.GenericResponseHeadersValve.invoke(GenericResponseHeadersValve.java:85)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:269)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.SubjectBasedSessionValve.invoke(SubjectBasedSessionValve.java:59)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:269)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.SecurityValve$1.run(SecurityValve.java:169)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.SecurityValve$1.run(SecurityValve.java:166)
[INFO] [talledLocalContainer] at java.security.AccessController.doPrivileged(Native Method)
[INFO] [talledLocalContainer] at javax.security.auth.Subject.doAsPrivileged(Subject.java:454)
[INFO] [talledLocalContainer] at org.hippoecm.hst.security.HstSubject.doAsPrivileged(HstSubject.java:101)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.SecurityValve.invoke(SecurityValve.java:166)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:269)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.CmsSecurityValve.invoke(CmsSecurityValve.java:93)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:269)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.InitializationValve.invoke(InitializationValve.java:71)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.HstSitePipeline$Invocation.invokeNext(HstSitePipeline.java:269)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.HstSitePipeline.invokeValves(HstSitePipeline.java:235)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.HstSitePipeline.invoke(HstSitePipeline.java:221)
[INFO] [talledLocalContainer] at org.hippoecm.hst.core.container.HstRequestProcessorImpl.processRequest(HstRequestProcessorImpl.java:69)
[INFO] [talledLocalContainer] at org.hippoecm.hst.container.HstFilter.processResolvedSiteMapItem(HstFilter.java:717)
[INFO] [talledLocalContainer] at org.hippoecm.hst.container.HstFilter.doFilter(HstFilter.java:402)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
[INFO] [talledLocalContainer] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer] at org.hippoecm.hst.container.XSSUrlFilter.doFilter(XSSUrlFilter.java:49)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
[INFO] [talledLocalContainer] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
[INFO] [talledLocalContainer] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
[INFO] [talledLocalContainer] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:589)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
[INFO] [talledLocalContainer] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
[INFO] [talledLocalContainer] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
[INFO] [talledLocalContainer] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
[INFO] [talledLocalContainer] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
[INFO] [talledLocalContainer] at java.lang.Thread.run(Thread.java:662)
[INFO] [talledLocalContainer] Caused by: javax.jcr.ItemNotFoundException: f59b48e1-3ce5-459e-a312-274fddce568b
[INFO] [talledLocalContainer] at org.apache.jackrabbit.core.SessionImpl.getNodeById(SessionImpl.java:499)
[INFO] [talledLocalContainer] at org.apache.jackrabbit.core.SessionImpl.getNodeByIdentifier(SessionImpl.java:1049)
[INFO] [talledLocalContainer] at org.hippoecm.repository.decorating.SessionDecorator.getNodeByIdentifier(SessionDecorator.java:360)
[INFO] [talledLocalContainer] at org.hippoecm.repository.decorating.checked.SessionDecorator.getNodeByIdentifier(SessionDecorator.java:452)
[INFO] [talledLocalContainer] at org.hippoecm.hst.content.beans.manager.workflow.WorkflowPersistenceManagerImpl.update(WorkflowPersistenceManagerImpl.java:406)
[INFO] [talledLocalContainer] ... 65 more
----------------------------------------------------------------------------------------------------