package org.jboss.seam.util; import javax.servlet.ServletException; public class Exceptions { public static Exception getCause(Exception exception) { Throwable cause = null; try { if ( EJB.EJB_EXCEPTION.isInstance(exception) ) { cause = (Throwable) Reflections.getGetterMethod(EJB.EJB_EXCEPTION, "causedByException").invoke(exception); } else if (exception instanceof ServletException) { cause = ( (ServletException) exception ).getRootCause(); } else { cause = exception.getCause(); } } catch (Exception x) { return null; } return cause==exception || !(cause instanceof Exception) ? null : (Exception) cause; } }