[jboss-cvs] jboss-seam/src/main/org/jboss/seam/util ...

Gavin King gavin.king at jboss.com
Fri Feb 2 02:06:23 EST 2007


  User: gavin   
  Date: 07/02/02 02:06:23

  Modified:    src/main/org/jboss/seam/util  EJB.java
  Log:
  search exception causes for a match
  
  Revision  Changes    Path
  1.6       +28 -0     jboss-seam/src/main/org/jboss/seam/util/EJB.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: EJB.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/EJB.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- EJB.java	1 Feb 2007 19:38:41 -0000	1.5
  +++ EJB.java	2 Feb 2007 07:06:22 -0000	1.6
  @@ -28,6 +28,7 @@
      public static final Class<Annotation> PERSISTENCE_CONTEXT;
      public static final Class<Annotation> INTERCEPTORS;
      public static final Class<Annotation> AROUND_INVOKE;
  +   public static final Class<Annotation> EJB_EXCEPTION;
      public static boolean INVOCATION_CONTEXT_AVAILABLE;
      
      private static Class classForName(String name)
  @@ -58,6 +59,7 @@
         POST_CONSTRUCT = classForName("javax.annotation.PostConstruct");
         INTERCEPTORS = classForName("javax.interceptor.Interceptors");
         AROUND_INVOKE = classForName("javax.interceptor.AroundInvoke");
  +      EJB_EXCEPTION = classForName("javax.ejb.EJBException");
         INVOCATION_CONTEXT_AVAILABLE = !classForName("javax.interceptor.InvocationContext").equals(Dummy.class);
      }
      
  @@ -66,6 +68,32 @@
         return (String) Reflections.invokeAndWrap( Reflections.getMethod(annotation, "name"), annotation );
      }
   
  +   public static Exception getCause(Exception exception)
  +   {
  +      if ( EJB_EXCEPTION.isInstance(exception) )
  +      {
  +         try
  +         {
  +            return (Exception) Reflections.getGetterMethod(EJB_EXCEPTION, "causedByException").invoke(exception);
  +         }
  +         catch (Exception x)
  +         {
  +            return null;
  +         }
  +      }
  +      else
  +      {
  +         try
  +         {
  +            return (Exception) exception.getCause();
  +         }
  +         catch (Exception x)
  +         {
  +            return null;
  +         }
  +      }
  +   }
  +
      public static Class[] value(Annotation annotation)
      {
         return (Class[]) Reflections.invokeAndWrap( Reflections.getMethod(annotation, "value"), annotation );
  
  
  



More information about the jboss-cvs-commits mailing list