Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 4.0
-
Fix Version/s: EE-4.0.0.GA, 4.1
-
Component/s: Framework
-
Labels:None
-
Environment:Liferay Portlet
-
Assignee Priority:P2
Description
In trying to upgrade their portlet demos to use ICEFaces 4, Liferay ran into a problem. They were in the process of converting the demo located here:
https://github.com/liferay/liferay-faces/tree/3.2.4-ga5/demos/bridge/icefaces3-portlet
In that demo, when you finish entering information into the initial application view and click submit, the server throws and exception and the portlet is no longer usable.
https://github.com/liferay/liferay-faces/tree/3.2.4-ga5/demos/bridge/icefaces3-portlet
In that demo, when you finish entering information into the initial application view and click submit, the server throws and exception and the portlet is no longer usable.
-
Hide
- liferay-faces.zip
- 4.83 MB
- Deryk Sinotte
-
- liferay-faces-3.2.4-ga5/.DS_Store 8 kB
- __MACOSX/.../._.DS_Store 0.1 kB
- liferay-faces-3.2.4-ga5/.gitignore 0.1 kB
- __MACOSX/.../._.gitignore 0.2 kB
- liferay-faces-3.2.4-ga5/alloy/pom.xml 4 kB
- __MACOSX/.../._pom.xml 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIButtonRow.java 0.9 kB
- __MACOSX/.../._AUIButtonRow.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUICol.java 3 kB
- __MACOSX/.../._AUICol.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIColumn.java 0.9 kB
- __MACOSX/.../._AUIColumn.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIDialog.java 0.9 kB
- __MACOSX/.../._AUIDialog.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIField.java 0.8 kB
- __MACOSX/.../._AUIField.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIFieldSet.java 0.9 kB
- __MACOSX/.../._AUIFieldSet.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIForm.java 3 kB
- __MACOSX/.../._AUIForm.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUILayout.java 0.9 kB
- __MACOSX/.../._AUILayout.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIList.java 0.9 kB
- __MACOSX/.../._AUIList.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIListItem.java 0.9 kB
- __MACOSX/.../._AUIListItem.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIPanel.java 0.7 kB
- __MACOSX/.../._AUIPanel.java 0.2 kB
- liferay-faces-3.2.4-ga5/.../AUIRow.java 2 kB
- __MACOSX/.../._AUIRow.java 0.2 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Clicking the button leads to the following exception:
19:18:26,448 DEBUG [BodyRendererBridgeImpl:168] Rendering resource just before closing liferay-faces-bridge-body </div> name=[ICEfacesSetup.js] library=[ice.core] rendererType=[javax.faces.Text] value=[null] className=[org.icefaces.impl.event.BridgeSetup$1] 19:18:26,448 DEBUG [BodyRendererBridgeImpl:168] Rendering resource just before closing liferay-faces-bridge-body </div> name=[JavaScriptRunnerSetup.js] library=[ice.core] rendererType=[javax.faces.Text] value=[null] className=[org.icefaces.impl.event.JavaScriptRunnerSetup$1] 19:18:26,449 DEBUG [BodyRendererBridgeImpl:168] Rendering resource just before closing liferay-faces-bridge-body </div> name=[null] library=[null] rendererType=[javax.faces.Text] value=[null] className=[org.icefaces.util.CachingHeadersSetup$1] java.lang.NullPointerException at org.icefaces.impl.util.DOMUtils.printNode(DOMUtils.java:298) at org.icefaces.impl.util.DOMUtils.printNodeCDATA(DOMUtils.java:286) at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:208) at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219) at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219) at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219) at com.liferay.faces.util.context.PartialViewContextOnChangeImpl.processPartial(PartialViewContextOnChangeImpl.java:105) at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:1004) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:430) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) at com.liferay.faces.bridge.application.ViewHandlerCompatImpl.renderView(ViewHandlerCompatImpl.java:52) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) at com.liferay.faces.bridge.BridgePhaseResourceImpl.execute(BridgePhaseResourceImpl.java:107) at com.liferay.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:133) at javax.portlet.faces.GenericFacesPortlet.serveResource(GenericFacesPortlet.java:178)
The most relevant cases I could find are:
A fix was made to the relevant code of ICE-8379 as part of ICE-9679. The original fix in ICE-8379 was done to help with non-redirect navigation as that's what there example does. None of our samples use navigation so it's conceivable that we didn't see the impact of this change.
Show
Deryk Sinotte
added a comment - Clicking the button leads to the following exception:
19:18:26,448 DEBUG [BodyRendererBridgeImpl:168] Rendering resource just before closing liferay-faces-bridge-body </div> name=[ICEfacesSetup.js] library=[ice.core] rendererType=[javax.faces.Text] value=[null] className=[org.icefaces.impl.event.BridgeSetup$1]
19:18:26,448 DEBUG [BodyRendererBridgeImpl:168] Rendering resource just before closing liferay-faces-bridge-body </div> name=[JavaScriptRunnerSetup.js] library=[ice.core] rendererType=[javax.faces.Text] value=[null] className=[org.icefaces.impl.event.JavaScriptRunnerSetup$1]
19:18:26,449 DEBUG [BodyRendererBridgeImpl:168] Rendering resource just before closing liferay-faces-bridge-body </div> name=[null] library=[null] rendererType=[javax.faces.Text] value=[null] className=[org.icefaces.util.CachingHeadersSetup$1]
java.lang.NullPointerException
at org.icefaces.impl.util.DOMUtils.printNode(DOMUtils.java:298)
at org.icefaces.impl.util.DOMUtils.printNodeCDATA(DOMUtils.java:286)
at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:208)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219)
at com.liferay.faces.util.context.PartialViewContextOnChangeImpl.processPartial(PartialViewContextOnChangeImpl.java:105)
at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:1004)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:430)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.liferay.faces.bridge.application.ViewHandlerCompatImpl.renderView(ViewHandlerCompatImpl.java:52)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at com.liferay.faces.bridge.BridgePhaseResourceImpl.execute(BridgePhaseResourceImpl.java:107)
at com.liferay.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:133)
at javax.portlet.faces.GenericFacesPortlet.serveResource(GenericFacesPortlet.java:178)
The most relevant cases I could find are:
ICE-8379
ICE-10282
A fix was made to the relevant code of ICE-8379 as part of ICE-9679 . The original fix in ICE-8379 was done to help with non-redirect navigation as that's what there example does. None of our samples use navigation so it's conceivable that we didn't see the impact of this change.
I'm attaching a modified version of the liferay-faces source tree. The poms have been changed so that when you build the iceface3-portlet it will use JSF 2.2, Liferay Faces Bridge 4.2-m2, and ICEfaces 4.0.
- Download and extract the zip.
- Navigate to demos/bridge/icefaces3-portlet.
- Build using "mvn clean package".
- Then deploy "cp target/icefaces3-portlet-4.2.0-m2.war ~/apps/liferay-portal-6.2-ce-ga2/deploy/" or wherever you Liferay installation is.
Show
Deryk Sinotte
added a comment - - edited I'm attaching a modified version of the liferay-faces source tree. The poms have been changed so that when you build the iceface3-portlet it will use JSF 2.2, Liferay Faces Bridge 4.2-m2, and ICEfaces 4.0.
Download and extract the zip.
Navigate to demos/bridge/icefaces3-portlet.
Build using "mvn clean package".
Then deploy "cp target/icefaces3-portlet-4.2.0-m2.war ~/apps/liferay-portal-6.2-ce-ga2/deploy/" or wherever you Liferay installation is.
Modified DOMPartialViewContext to generate custom head update only when there is a 'head' element to be found in the document.
Show
Mircea Toma
added a comment - Modified DOMPartialViewContext to generate custom head update only when there is a 'head' element to be found in the document.
Clicking the button leads to the following exception on the server:
The most relevant cases I could find are:
http://jira.icesoft.org/browse/ICE-8379
http://jira.icesoft.org/browse/ICE-10282
Mircea made a tweak to the fix in
ICE-8379as part ofICE-9679. The original fix inICE-8379was done to help with non-redirect navigation as that's what there example does. None of our samples use navigation so it easy for us to miss impacts in that area.