[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