Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.0.RC2
-
Fix Version/s: 3.0
-
Component/s: Framework
-
Labels:None
-
Environment:ICEfaces 3 portal portlet ICEpush
-
Affects:Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial, Compatibility/Configuration
-
Workaround Exists:Yes
-
Workaround Description:
Description
In testing our ACE Showcase portlets on Liferay 6.1, I'm finding that an aspect of ICEpush is failing in the following way:
Caused by: java.lang.UnsupportedOperationException
at org.icefaces.impl.push.servlet.ProxyHttpServletRequest.(ProxyHttpServletRequest.java:81)
at org.icepush.servlet.AsyncAdaptingServlet.service(AsyncAdaptingServlet.java:42)
at org.icepush.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:48)
at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
at org.icepush.servlet.BrowserDispatcher$BrowserEntry.service(BrowserDispatcher.java:105)
at org.icepush.servlet.BrowserDispatcher.service(BrowserDispatcher.java:44)
at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
at org.icepush.servlet.MainServlet.service(MainServlet.java:90)
The ProxyHttpServletRequest class is used as a wrapper to protect certain framework calls from having to do portlet-specific handling. Instead, the proxy exposes the full HttpServletRequest API but only implements that stuff we need. Apparently we need the isAsyncSupported() method to return something for portlets. From what I can gather, the Portlet API does not expose any of the various *Async* methods that are part of the Servlet 3.0 spec, so our options are:
Short-term:
1) Change the proxies method implementation from:
public boolean isAsyncSupported(){
log.severe("ProxyHttpServletRequest unsupported operation");
if (true) throw new UnsupportedOperationException();
return false;
}
to always return "false" for portlets when checking whether Async is supported.
public boolean isAsyncSupported(){
log.info("Asynchronous servlet API not currently supported in portlets");
return false;
}
2) Add an existing context parameter to all portlet examples to prevent the ICEpush from even checking:
<context-param>
<param-name>org.icepush.useAsyncContext</param-name>
<param-value>false</param-value>
</context-param>
Long-term:
I assume somewhere along the way that Async support in portlets would be desirable so we'd need to somehow provide that information in a portal environment in a non-standard way until it's available in a future portlet API.
Caused by: java.lang.UnsupportedOperationException
at org.icefaces.impl.push.servlet.ProxyHttpServletRequest.(ProxyHttpServletRequest.java:81)
at org.icepush.servlet.AsyncAdaptingServlet.service(AsyncAdaptingServlet.java:42)
at org.icepush.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:48)
at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
at org.icepush.servlet.BrowserDispatcher$BrowserEntry.service(BrowserDispatcher.java:105)
at org.icepush.servlet.BrowserDispatcher.service(BrowserDispatcher.java:44)
at org.icepush.servlet.PathDispatcher.service(PathDispatcher.java:39)
at org.icepush.servlet.MainServlet.service(MainServlet.java:90)
The ProxyHttpServletRequest class is used as a wrapper to protect certain framework calls from having to do portlet-specific handling. Instead, the proxy exposes the full HttpServletRequest API but only implements that stuff we need. Apparently we need the isAsyncSupported() method to return something for portlets. From what I can gather, the Portlet API does not expose any of the various *Async* methods that are part of the Servlet 3.0 spec, so our options are:
Short-term:
1) Change the proxies method implementation from:
public boolean isAsyncSupported(){
log.severe("ProxyHttpServletRequest unsupported operation");
if (true) throw new UnsupportedOperationException();
return false;
}
to always return "false" for portlets when checking whether Async is supported.
public boolean isAsyncSupported(){
log.info("Asynchronous servlet API not currently supported in portlets");
return false;
}
2) Add an existing context parameter to all portlet examples to prevent the ICEpush from even checking:
<context-param>
<param-name>org.icepush.useAsyncContext</param-name>
<param-value>false</param-value>
</context-param>
Long-term:
I assume somewhere along the way that Async support in portlets would be desirable so we'd need to somehow provide that information in a portal environment in a non-standard way until it's available in a future portlet API.
Issue Links
- is duplicated by
-
ICE-7628 Using chat portlet in Liferay portal results in UnsupportedOperationException
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #27333 | Mon Jan 23 18:55:05 MST 2012 | ken.fyten | |
Files Changed | ||||
MODIFY
/icefaces3/tags/icefaces-3.0.0/icefaces/core/src/main/java/org/icefaces/impl/push/servlet/ProxyHttpServletRequest.java
|