Details
-
Type: New Feature
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: EE-3.0.0.GA
-
Component/s: Release
-
Labels:None
-
Environment:ICEfaces EE 2.0.0, WebSphere Portal 7, PortletFacesBridge
-
Affects:Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration
Description
1. The existing ICEfaces 2 portlet samples should be tested successfully with WebSphere Portal 7.
2. The instructions for using ICEfaces with WebSphere 7 should be documented and added to the ICEfaces EE Wiki on this page: http://wiki.icesoft.com/display/IFEE2/WebSphere+Portal+7
See the following existing Portlet docs as a reference:
- ICEfaces 2 Portlets doc: http://wiki.icefaces.org/display/ICE/Portlet+Development
- Existing ICEfaces EE 1.8 WebSphere Portal Docs: http://wiki.icesoft.com/display/ICEboxDev/Configuring+WebSphere+6.1.0.1+Portal
Issue Links
- depends on
-
ICE-7790 Bridge enters browser id acquisition loop in not picking up browser id from responses in WebSphere Portal environment
- Closed
-
ICE-7791 Push application (Myfaces, WebSphere, Portal) throws IllegalStateException changing the characterEncoding
- Closed
-
ICE-7807 Logout button in portlet chat application and WebSphere throws exception
- Closed
-
PUSH-162 Various Runtime Exceptions in WebSphere Portal push environment
- Closed
- is duplicated by
-
IPCK-309 Add ICEfaces EE 3 Support for WebSphere Portal 7
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Using the portlet bridge, we are running into problems that the response is already committed when the bridge is trying to reset it.
See exception below:
[1/31/11 19:55:46:264 EST] 0000003a SystemErr R java.lang.IllegalStateException: clearBuffer(): illegal state--> stream is committed
[1/31/11 19:55:46:265 EST] 0000003a SystemErr R at com.ibm.wsspi.webcontainer.util.BufferedServletOutputStream.clearBuffer(BufferedServletOutputStream.java:599)
[1/31/11 19:55:46:267 EST] 0000003a SystemErr R at com.ibm.ws.webcontainer.srt.SRTServletResponse.reset(SRTServletResponse.java:1045)
[1/31/11 19:55:46:267 EST] 0000003a SystemErr R at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:193)
[1/31/11 19:55:46:267 EST] 0000003a SystemErr R at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:193)
[1/31/11 19:55:46:267 EST] 0000003a SystemErr R at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:193)
[1/31/11 19:55:46:267 EST] 0000003a SystemErr R at javax.servlet.ServletResponseWrapper.reset(ServletResponseWrapper.java:193)
[1/31/11 19:55:46:267 EST] 0000003a SystemErr R at com.ibm.ws.portletcontainer.core.impl.PortletResponseImpl.reset(PortletResponseImpl.java:354)
[1/31/11 19:55:46:268 EST] 0000003a SystemErr R at org.portletfaces.bridge.context.ExternalContextImpl.responseReset(ExternalContextImpl.java:438)
[1/31/11 19:55:46:268 EST] 0000003a SystemErr R at com.sun.faces.context.ExceptionHandlerImpl.throwIt(ExceptionHandlerImpl.java:251)
[1/31/11 19:55:46:268 EST] 0000003a SystemErr R at com.sun.faces.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:141)
[1/31/11 19:55:46:268 EST] 0000003a SystemErr R at org.icefaces.impl.application.ExtendedExceptionHandler.handle(ExtendedExceptionHandler.java:110)
[1/31/11 19:55:46:269 EST] 0000003a SystemErr R at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
[1/31/11 19:55:46:269 EST] 0000003a SystemErr R at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:113)
[1/31/11 19:55:46:269 EST] 0000003a SystemErr R at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
[1/31/11 19:55:46:270 EST] 0000003a SystemErr R at org.portletfaces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:238)
[1/31/11 19:55:46:275 EST] 0000003a SystemErr R at org.portletfaces.bridge.GenericFacesPortlet.doView(GenericFacesPortlet.java:194)
[1/31/11 19:55:46:275 EST] 0000003a SystemErr R at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)
[1/31/11 19:55:46:277 EST] 0000003a SystemErr R at javax.portlet.GenericPortlet.render(GenericPortlet.java:222)
The problems encountered in WSP 7 environment consisted of managing a couple of bugs in MyFaces, a bug in the PortletFaces Bridge code, a problem with our push product using Threads that couldn't inherit MyFaces Portlet context ThreadLocal Variables, and various problems with some of ICEFaces resource code that wasn't encoding URLs properly for IBM's URL munging environment.
Several issues clouded debugging this issue. There were a few spots in the push code where exceptions were silently caught and rethrown. One of these places was in a TimerTask, which is a no-no as it stops the Task from being rescheduled. This stopped the blocking connection from returning a <noop/> response if there were no responses pending.
Another issue was trying to determine the place within the code that was throwing the exception since WebSphere doesn't fill in stack traces from inside its own code. We managed to get Idea to stop at a breakpoint when an IllegalStateException was thrown and to get a stack trace via the debugger. This is how we managed to find the spot in the IBM code where it was throwing the exception.
Early on it looked like the push code with the various push and viewIds was a problem, but those symptoms turned out to be related to missing functionality caused by the exceptions from using threads. It looks like that group notification code is pretty sound at this stage. Part of that difficulty was understanding which request was what, given WebSphere's URL mangling process. It wasn't clear that all the requests passed through the Portlet ResourceHandlerImpl, but they do, and it's easy to put the cleartext URL into a header so that it can be read while looking through the network traffic log. Then we were able to identify the problems with the missing resources.