When XML is incorrectly entered into the Abstract field in a content spec, the issue will not be picked up until Publican fails validation. Ideally we should have the CCMS pick this up when the spec is saved.
Fixed in 1.3-SNAPSHOT build 201311051355 The abstract metadata is now validated in to stages. The first is the pre-validation step which will check that the abstract content is at the very least valid XML. The second step is to validate the abstract against the docbook DTD to make sure it is valid Docbook XML, this step happens during the post-validation. Note: Abstract is the only metadata that I could see that needed validating at this stage that wasn't already validated/escaped in some way (title and subtitle are done when building)
This version is now live on the dev/test server.
Validation words for xml elements and DocBook entities, but the combination of Abstract = &TEST; Entities = [ <!ENTITY TEST "Hi There"> ] fails validation.
Fixed in 1.3-SNAPSHOT build 201311251126 The validation will now include any custom entities in the validation process. Note: This version is currently live on the development/test server.
When trying custom entities in a subtitle or abstract, I get INFO: The Content Specification is valid. ERROR: An error occurred during processing please try again and if another failure occurs please log a bug.
07:22:14,183 ERROR [org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor] (http-/0.0.0.0:8180-3) An error occurred during processing please try again and if another failure occurs please log a bug. 07:22:31,146 INFO [org.jboss.pressgang.ccms.contentspec.processor.CustomContentSpecProcessor] (http-/0.0.0.0:8180-3) Starting first validation pass... 07:22:31,513 INFO [org.jboss.pressgang.ccms.contentspec.processor.CustomContentSpecProcessor] (http-/0.0.0.0:8180-3) Starting bug link validation pass... 07:22:35,175 INFO [org.jboss.pressgang.ccms.contentspec.processor.CustomContentSpecProcessor] (http-/0.0.0.0:8180-3) Starting second validation pass... 07:22:42,550 INFO [org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor] (http-/0.0.0.0:8180-3) The Content Specification is valid. 07:22:42,551 INFO [org.jboss.pressgang.ccms.contentspec.processor.CustomContentSpecProcessor] (http-/0.0.0.0:8180-3) Saving the Content Specification to the server... 07:22:42,585 ERROR [org.jboss.pressgang.ccms.contentspec.processor.CustomContentSpecProcessor] (http-/0.0.0.0:8180-3) : java.lang.NullPointerException at org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor.mergeMetaData(ContentSpecProcessor.java:1541) [processor-1.3-SNAPSHOT.jar:] at org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor.mergeChildren(ContentSpecProcessor.java:1247) [processor-1.3-SNAPSHOT.jar:] at org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor.mergeAndSaveContentSpec(ContentSpecProcessor.java:1108) [processor-1.3-SNAPSHOT.jar:] at org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor.saveContentSpec(ContentSpecProcessor.java:460) [processor-1.3-SNAPSHOT.jar:] at org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor.processContentSpec(ContentSpecProcessor.java:211) [processor-1.3-SNAPSHOT.jar:] at org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor.processContentSpec(ContentSpecProcessor.java:152) [processor-1.3-SNAPSHOT.jar:] at org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor.processContentSpec(ContentSpecProcessor.java:124) [processor-1.3-SNAPSHOT.jar:] at org.jboss.pressgang.ccms.server.rest.v1.base.BaseRESTv1.processContentSpecString(BaseRESTv1.java:1313) [classes:] at org.jboss.pressgang.ccms.server.rest.v1.base.BaseRESTv1.createOrUpdateJSONContentSpecFromString(BaseRESTv1.java:1212) [classes:] at org.jboss.pressgang.ccms.server.rest.v1.base.BaseRESTv1.createOrUpdateJSONContentSpecFromString(BaseRESTv1.java:1151) [classes:] at org.jboss.pressgang.ccms.server.rest.v1.base.BaseRESTv1.updateJSONContentSpecFromString(BaseRESTv1.java:1087) [classes:] at org.jboss.pressgang.ccms.server.rest.v1.RESTv1.updateJSONTextContentSpec(RESTv1.java:2969) [classes:] at org.jboss.pressgang.ccms.server.rest.v1.RESTv1$Proxy$_$$_WeldClientProxy.updateJSONTextContentSpec(RESTv1$Proxy$_$$_WeldClientProxy.java) [classes:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25] at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:163) [javamelody-core-1.44.0.jar:1.44.0] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.jboss.pressgang.ccms.server.servlet.filter.GZIPCompressionFilter.doFilter(GZIPCompressionFilter.java:85) [classes:] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:168) [cors-filter-1.7.1.jar:1.7.1] at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:233) [cors-filter-1.7.1.jar:1.7.1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25] 07:22:42,594 ERROR [org.jboss.pressgang.ccms.contentspec.processor.ContentSpecProcessor] (http-/0.0.0.0:8180-3) An error occurred during processing please try again and if another failure occurs please log a bug.
Fixed in 1.3-SNAPSHOT build 201311261101 This was caused by the fix in https://bugzilla.redhat.com/show_bug.cgi?id=1014455#c10 not checking for a null value. This version is available on the development/test server.
Confirmed that invalid docbook in the abstract will generate an error.