Monday, December 20, 2010

Problem with Liferay 4.3.4 on Websphere 5.1

com.liferay.portal.events.ServicePreAction.java

fixState method:

/* WebSphere when builds an url with query string and forwards the request to that URL,
* the request.getRequestURI() method returns the URI with the query string.
*/
// if (!requestURI.endsWith("/portal/layout")) {
// return;
// }


// The above snippet should be changed to:

if (!(requestURI.indexOf("/portal/layout") > -1)) {
return;
}

Liferay 4.3.4 ClassCastException during startup

com.liferay.portal.model.impl.PortletImpl.java

/**
* Checks whether this portlet is equal to the specified object.
*
* @param obj the object to compare this portlet against
* @return true if the portlet is equal to the specified object
*/
public boolean equals(Object obj) {

/****************** ********************/
/* WebSphere calls equals method while retreiving request attributes. This call throws
* ClassCastException. To avoid this following condition is added to check if the argument
* object is of type Portlet
*/
if(obj instanceof Portlet){
Portlet portlet = (Portlet)obj;

return getPortletId().equals(portlet.getPortletId());
}else{
return false;
}
/****************** ********************/
}

Friday, December 17, 2010

Liferay Blank Page issue

Liferay 4.3.4 when running in a clustered environment after a rolling restart causes blank pages.
The versions released before 4.4 have the commons object pooling enabled. This causes a NullPointerException when a rolling restart is done in a clustered env.
Disabling the commons.object.pooling in the portal.properties will resolve this issue.