Support Article
Class changes to @baseclass on performing a Save or Save-As
SA-105231
Summary
User clicks the Save As button on the property while saving the rules. However, the rule gets saved in @baseclass.
Error Messages
657(ctionWrapper._baseclass.Action) ERROR - Activity pzPostRuleFormValues failed to execute, RH_1, page class is null
950 (ngineinterface.service.HttpAPI) WARN : Error adopting XML from post data :
com.pega.pegarules.pub.clipboard.InvalidStreamError: InvalidStream com.pega.pegarules.data.internal.clipboard.XMLStream.newStream(String, StorageStream) sax parse error: Content is not allowed in prolog.
at com.pega.pegarules.data.internal.clipboard.XMLStream.newStream(XMLStream.java:487) ~[prprivate-data.jar:?]
at com.pega.pegarules.data.internal.clipboard.XMLStream.newStream(XMLStream.java:442) ~[prprivate-data.jar:?]
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.adoptXMLForm(ClipboardPageImpl.java:493) ~[prprivate-data.jar:?]
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.mapInputData(HttpAPI.java:3303) ~[prprivate-session.jar:?]
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.activityExecutionProlog(EngineAPI.java:601) ~[prenginext.jar:?]
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequestInner(EngineAPI.java:436) ~[prenginext.jar:?]
Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) [127.0.0.1]
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177) ~[127.0.0.1]
Steps to Reproduce
- Open an existing rule
- Click the Save As button. However, @baseclass displays on the opened rule form
Root Cause
A defect or configuration issue in the operating environment. Tomcat 9.0.31 with Non-blocking Input/Output (NIO) protocol is used which causes the failure of the Post requests.
Resolution
Perform the following local-change:
Use the NIO2 protocol in the Apache Tomcat 9.0.31 configuration as below, instead of NIO:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"connectionTimeout="20000" redirectPort="8443"/>
NIO and NIO2 are same in Network and Sockets. NIO2 is advanced in terms of file system operations.
Alternatively, update to Tomcat 9.0.32 to resolve the issue.
Published August 13, 2020 - Updated December 2, 2021
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.