[richfaces-svn-commits] JBoss Rich Faces SVN: r11953 - trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Sat Dec 20 13:02:35 EST 2008
Author: nbelaevski
Date: 2008-12-20 13:02:34 -0500 (Sat, 20 Dec 2008)
New Revision: 11953
Modified:
trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java
Log:
https://jira.jboss.org/jira/browse/RF-4932
Modified: trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java
===================================================================
--- trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java 2008-12-20 16:18:38 UTC (rev 11952)
+++ trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java 2008-12-20 18:02:34 UTC (rev 11953)
@@ -23,6 +23,8 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -34,6 +36,7 @@
import javax.el.ExpressionFactory;
import javax.el.ValueExpression;
+import javax.faces.FacesException;
import javax.faces.FactoryFinder;
import javax.faces.component.UIComponent;
import javax.faces.component.UIParameter;
@@ -712,10 +715,30 @@
public String getSessionId(FacesContext context, UIComponent component) {
String id = null;
- HttpSession session = (HttpSession)context.getExternalContext().getSession(false);
+ Object session = context.getExternalContext().getSession(false);
if (session != null) {
- id = session.getId();
+ if (session instanceof HttpSession) {
+ id = ((HttpSession) session).getId();
+ } else {
+ Class<? extends Object> sesssionClass = session.getClass();
+ try {
+ Method getIdMethod = sesssionClass.getMethod("getId");
+ id = (String) getIdMethod.invoke(session);
+ } catch (SecurityException e) {
+ throw new FacesException(e.getMessage(), e);
+ } catch (NoSuchMethodException e) {
+ throw new FacesException(e.getMessage(), e);
+ } catch (IllegalArgumentException e) {
+ throw new FacesException(e.getMessage(), e);
+ } catch (IllegalAccessException e) {
+ throw new FacesException(e.getMessage(), e);
+ } catch (InvocationTargetException e) {
+ Throwable cause = e.getCause();
+ throw new FacesException(cause.getMessage(), cause);
+ }
+ }
}
+
return id;
}
More information about the richfaces-svn-commits
mailing list