A couple of bug in clustered environment
ssolfaroli Apr 15, 2008 5:43 AMI think I found a couple of bug when using portal in a clustered environment.
First bug: doing a search in CMSAdminPortlet I obtain a NullPointereException with the stack trace in the portlet window.
The error orginated in org.jboss.portal.search.impl.jcr.JCRQuery, and the in
portal-cms.sar\portal-cms.war\WEB-INF\jsp\cms\admin\searchResult.jsp
is not managed the null value, so the exception in the portlet.
I solved placing:
in jsp
List files = (List)request.getAttribute("files"); String createDate = ""; String modifiedDate = ""; if (files==null) { %> <h2>Search error</h2> <% } else if (files.size() > 0) {
instead of
List files = (List)request.getAttribute("files"); String createDate = ""; String modifiedDate = ""; if (files.size() > 0) {
The error during the search is this:
2008-04-12 14:43:08,784 ERROR [org.jboss.portal.jems.ha.HASingletonInvoker] Cannot invoke proxy will no more retry java.rmi.MarshalException: error marshalling arguments; nested exception is: java.io.NotSerializableException: org.jboss.portal.search.impl.jcr.JCRQuery at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122) at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source) at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:133) at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365) at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:197) at org.jboss.proxy.ClientMethodInterceptor.invoke(ClientMethodInterceptor.java:74) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100) at $Proxy187.invoke(Unknown Source) at org.jboss.portal.jems.ha.HASingletonInvoker.invoke(HASingletonInvoker.java:147) at org.jboss.portal.cms.impl.jcr.ha.HAJCRCMS.execute(HAJCRCMS.java:86) at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) at $Proxy273.execute(Unknown Source) at org.jboss.portal.core.cms.ui.admin.CMSAdminPortlet.internalDoView(CMSAdminPortlet.java:322) at org.jboss.portal.core.cms.ui.admin.CMSAdminPortlet.doView(CMSAdminPortlet.java:172)
I solved modifing the declaration of org.jboss.portal.search.impl.jcr.JCRQuery so:
import java.io.Serializable; public class JCRQuery implements Query, Serializable
instead of
public class JCRQuery implements Query
After recompiling and replacing the portal-search-lib.jar in jboss-portal.sar\lib search is now working.
Other error on which I'm still blocked is related to the publish/approval workflow; after activating it, if I try on the jboss instance
on which is running the CMS singleton it's working fine, on other instance I get this error trying to preview a pending content item:
Cause: java.lang.RuntimeException: javax.naming.NameNotFoundException: CMS not bound Message: javax.naming.NameNotFoundException: CMS not bound StackTrace: java.lang.RuntimeException: javax.naming.NameNotFoundException: CMS not bound at org.jboss.portal.cms.workflow.CMSWorkflowUtil.getCMSService(CMSWorkflowUtil.java:116) at org.jboss.portal.cms.workflow.CMSWorkflowUtil.getPendingContent(CMSWorkflowUtil.java:55) at org.jboss.portal.core.cms.ui.admin.CMSAdminPortlet.internalDoView(CMSAdminPortlet.java:645) at org.jboss.portal.core.cms.ui.admin.CMSAdminPortlet.doView(CMSAdminPortlet.java:172)
Any hint on what can I try?
Thanks in advance
Stefano Solfaroli