[Mulgara-svn] r1348 - trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi

ronald at mulgara.org ronald at mulgara.org
Thu Oct 23 13:11:42 UTC 2008


Author: ronald
Date: 2008-10-23 06:11:42 -0700 (Thu, 23 Oct 2008)
New Revision: 1348

Modified:
   trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/AbstractXAResource.java
   trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/DummyXAResource.java
Log:
Moved the isHeuristic() helper into DummyXAResource, added isRollback(), and
made them public and a bit more generic.

Modified: trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/AbstractXAResource.java
===================================================================
--- trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/AbstractXAResource.java	2008-10-23 13:11:35 UTC (rev 1347)
+++ trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/AbstractXAResource.java	2008-10-23 13:11:42 UTC (rev 1348)
@@ -374,12 +374,7 @@
    */
   protected abstract void doForget(T tx) throws Exception;
 
-  private static boolean isHeuristic(XAException xae) {
-    return (xae.errorCode == XAException.XA_HEURHAZ || xae.errorCode == XAException.XA_HEURCOM ||
-            xae.errorCode == XAException.XA_HEURRB  || xae.errorCode == XAException.XA_HEURMIX);
-  }
 
-
   /** The resource-manager info */
   public static class RMInfo<T extends TxInfo> {
     /** the list of active transactions */

Modified: trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/DummyXAResource.java
===================================================================
--- trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/DummyXAResource.java	2008-10-23 13:11:35 UTC (rev 1347)
+++ trunk/src/jar/resolver-spi/java/org/mulgara/resolver/spi/DummyXAResource.java	2008-10-23 13:11:42 UTC (rev 1348)
@@ -175,6 +175,39 @@
   //
 
   /**
+   * @param t the exception
+   * @return true if <var>t</var> is an XAException that represents a heuristic completion
+   */
+  public static boolean isHeuristic(Throwable t) {
+    return (t instanceof XAException) && isHeuristic(((XAException)t).errorCode);
+  }
+
+  /**
+   * @param errorCode the xa error code
+   * @return true if <var>errorCode</var> represents a heuristic completion
+   */
+  public static boolean isHeuristic(int errorCode) {
+    return (errorCode == XAException.XA_HEURHAZ || errorCode == XAException.XA_HEURCOM ||
+            errorCode == XAException.XA_HEURRB  || errorCode == XAException.XA_HEURMIX);
+  }
+
+  /**
+   * @param t the exception
+   * @return true if <var>t</var> is an XAException that represents a rollback
+   */
+  public static boolean isRollback(Throwable t) {
+    return (t instanceof XAException) && isRollback(((XAException)t).errorCode);
+  }
+
+  /**
+   * @param errorCode the xa error code
+   * @return true if <var>errorCode</var> represents a rollback
+   */
+  public static boolean isRollback(int errorCode) {
+    return (errorCode >= XAException.XA_RBBASE && errorCode <= XAException.XA_RBEND);
+  }
+
+  /**
    * Format an xid for printing.
    *
    * @param xid the xid to format




More information about the Mulgara-svn mailing list