Error when expanding Menus in Workbench

In workbench, when we expand any categories under Menus (System > Cascading or System >Dynamic and same for User) and Menu Entries, we get this error message:

Description java.rmi.RemoteException: Could not find design object of type ‘com.percussion.cms.objectstore.PSAction’ with name ‘%’ and label ‘%’. The underlying error was: An invalid XML character (Unicode: 0x0) was found in the element content of the document…

Label <Error occurred>: com.percussion.client.PSModelException: java.rmi.RemoteException: Could not find design object of type ‘com.percussion.cms.objectstore.PSAction’ with name ‘%’ and label ‘%’. The underlying error was: An invalid XML character (Unicode: 0x0) was found in the element content of the document…

Path /Content Explorer/Menu Entries/System/<Error occurred>: com.percussion.client.PSModelException: java.rmi.RemoteException: Could not find design object of type ‘com.percussion.cms.objectstore.PSAction’ with name ‘%’ and label ‘%’. The underlying error was: An invalid XML character (Unicode: 0x0) was found in the element content of the document…

Stack Trace in Server.log:
2012-10-08 10:12:09,491 INFO [STDOUT] org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x0) was found in the element content of the document.
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at com.percussion.xml.PSXmlDocumentBuilder.createXmlDocument(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at com.percussion.xml.PSXmlDocumentBuilder.createXmlDocument(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at com.percussion.xml.PSXmlDocumentBuilder.createXmlDocument(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at com.percussion.webservices.ui.impl.PSUiBaseWs.findComponentsByNameLabel(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at com.percussion.webservices.ui.impl.PSUiWs.loadActions(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2012-10-08 10:12:09,492 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at java.lang.reflect.Method.invoke(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
2012-10-08 10:12:09,492 INFO [STDOUT] at $Proxy144.loadActions(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at com.percussion.webservices.ui.UiSOAPImpl.loadActions(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2012-10-08 10:12:09,492 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at java.lang.reflect.Method.invoke(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
2012-10-08 10:12:09,492 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
2012-10-08 10:12:09,492 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2012-10-08 10:12:09,492 INFO [STDOUT] at com.percussion.webdav.PSWebDavRequestFilter.doFilter(Unknown Source)
2012-10-08 10:12:09,492 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2012-10-08 10:12:09,493 INFO [STDOUT] at com.percussion.servlets.PSSecurityFilter.doFilter(Unknown Source)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2012-10-08 10:12:09,493 INFO [STDOUT] at com.percussion.servlets.PSCharacterSetFilter.doFilter(Unknown Source)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
2012-10-08 10:12:09,493 INFO [STDOUT] at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
2012-10-08 10:12:09,493 INFO [STDOUT] at java.lang.Thread.run(Unknown Source)
2012-10-08 10:12:09,493 DEBUG [org.springframework.transaction.interceptor.TransactionInterceptor] Completing transaction for [com.percussion.webservices.ui.IPSUiWs.loadActions] after exception: com.percussion.webservices.PSErrorException: Could not find design object of type ‘com.percussion.cms.objectstore.PSAction’ with name ‘%’ and label ‘%’. The underlying error was: An invalid XML character (Unicode: 0x0) was found in the element content of the document…
2012-10-08 10:12:09,494 DEBUG [org.springframework.transaction.interceptor.RuleBasedTransactionAttribute] Applying rules to determine whether transaction should rollback on com.percussion.webservices.PSErrorException: Could not find design object of type ‘com.percussion.cms.objectstore.PSAction’ with name ‘%’ and label ‘%’. The underlying error was: An invalid XML character (Unicode: 0x0) was found in the element content of the document…

Which version of Percussion/Rhythmyx are you running?

Version 6.7.

When did this problem start occurring?

Started about couple of weeks ago. We implemented a new site and promoted the site to our production server, everything was fine until 2 weeks ago. The problem only occurs in Workbench. In the Content Explorer we can see the menus. But now we cannot make any modifications or even add new menus. I even removed the last 2 menus created for the new site and still the same issue.

You could try looking at http://your-server-address:9992/Rhythmyx/sys_psxCms/QueryActions.xml to find any elements with null characters (0x0). Have you already opened a Tech Support incident? You could also try running this SQL statement

SELECT * FROM rxmenuaction where NAME IS NULL OR DISPLAYNAME IS NULL;

to see what is returned.

Thanks for the URL. The XML generated is valid and it does not have any invalid characters. I can also see that all the menus are in the XML file. I have opened a support ticket and working with percussion to resolve the issue. But no luck so far. I’ve been trying to find a way to see the XML file generated for the menus for a few days and haven’t been able too. I wish the support would have told me about this URL you gave me. Thanks again!

You’re welcome. You may be able to debug this problem by enabling debug messages in the console log.

You can turn on debug messages by editing AppServer/server/rx/conf/log4j.xml and adding the following line:


<logger name="<font color=" #333333"=""><logger name="com.percussion.webservices"><level value="ALL"/></logger></logger>
<logger name="</font><font color=" #333333"=""><logger name="com.percussion.xml"><level value="ALL"/></logger></logger>

Log4j should refresh its configuration upon detecting a change; otherwise, you may need to restart the application. After you’ve captured the debug messages (if any) I highly recommend removing/commenting these lines as it will increase the amount of output to your server logs.

Tried that already and did not get anything useful in the logs. I even turned on logging for all the SQL statements and ran those manually against the database and didn’t notice any invalid characters. There are some null values in the column obviously, but not in the name column or display column.

Thanks!

Try escalating the issue with Percussion. If you find a solution, be sure to share with the community :slight_smile:

Will Do! Thanks for all your help.

[QUOTE=Rileyw;20106]You could try looking at http://your-server-address:9992/Rhythmyx/sys_psxCms/QueryActions.xml to find any elements with null characters (0x0). Have you already opened a Tech Support incident? You could also try running this SQL statement

SELECT * FROM rxmenuaction where NAME IS NULL OR DISPLAYNAME IS NULL;

to see what is returned.[/QUOTE]

You are too quick for me Riley :slight_smile: Just actually gave this same response to the customer. Although there are a few QueryActions resources based upon the html parameters. The one being used here is based upon sys_name and sys_label being not null and ACTIONID being null. These two parameters are being used in a like clause and % is being used for both in this case to return everything from the rxmenuaction table

http://your-server-address:9992/Rhythmyx/sys_psxCms/QueryActions.xml?sys_name=%&sys_label=%

This is probably returning empty or invalid xml.

I downloaded the XML file from this Query which basically returned same data as running the same query without any query parameters and was not able to find any invalid characters. The XML generated is actually valid.

http://your-server-address:9992/Rhythmyx/sys_psxCms/QueryActions.xml?sys_name=%&sys_label=%

Thanks!

This may be a long shot but try reinstalling Workbench to see if something is corrupt with your installation. Be sure to use the installation files located at

http://your-server-address:9992/Rhythmyx/Administration/DeveloperTools/install.htm

And remember, there is a “feature” in 7.x where you don’t want to click on the links at the bottom of the page (Under “Available Installers”) to install the tools (They give you an xml error because those links haven’t been updated and point to an old url)… Wait until java loads the “Recommended Installation for your platform” applet.

o.O “A feature” -.-

Jit, Thank you for sharing. I am guessing you’ve already filed an incident for this feature?

I was hoping the re install of the workbench would fix the problem, but it did not. We are running version 6.7. I may just have to upgrade and see if that will fix the issue.

Riley,
I have not. It is on a list of things, but isn’t anywhere close to the top… “a mere flesh wound”…

It only affects developers (for just once) and the actual applet works, so I had labeled it as…“oh this is cool”, “certainly they know about this”, “really??”, and “there are bigger fish”. :wink:

@sshaid2: When you created the menu entries, did you copy and paste the text from say word? The reason I ask is that we were able to paste a linebreak code in the filename (and that got through the regexp validation) and it caused havoc on searching. So long story short, you may have the null character as part of the label (but the label itself may not be null).

Jit,
I’m not sure if our WCMS administrator did that or not, But I updated the Name,Display name and even the description of the last menus created in the tables using SQL and that did not resolve the issue.