Author: dasarath
Date: Sat Dec 31 00:26:43 2005
New Revision: 360260

URL: http://svn.apache.org/viewcvs?rev=360260&view=rev
Log: (empty)

Modified:
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java

Modified: 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java?rev=360260&r1=360259&r2=360260&view=diff
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java
 (original)
+++ 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java
 Sat Dec 31 00:26:43 2005
@@ -14,6 +14,9 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.xml.namespace.QName;
+
+import org.apache.axis.AxisFault;
 import org.apache.axis.MessageContext;
 import org.apache.axis.components.uuid.UUIDGen;
 import org.apache.axis.components.uuid.UUIDGenFactory;
@@ -46,9 +49,9 @@
 
        List participantsComp = Collections.synchronizedList(new ArrayList());
 
-       public static final int MAX_RETRIES = 3;
+       public static final int MAX_RETRIES = 10;
 
-       public static final int RETRY_DELAY_MILLIS = 15 * 1000;
+       public static final int RETRY_DELAY_MILLIS = 20 * 1000;
 
        public static final int RESPONSE_DELAY_MILLIS = 3 * 1000;
 
@@ -205,20 +208,16 @@
                        return;
 
                case AT2PCStatus.ABORTING:
-                       epr = getEpr(ref);
-                       try {
-                               new 
ParticipantStub(epr).rollbackOperation(null);
-                       } catch (Exception e) {
-                               e.printStackTrace();
-                       }
-                       forget2PC(ref);
-                       return;
-
                case AT2PCStatus.NONE:
                        epr = (EndpointReference) 
participants2PC[VOLATILE].get(ref);
-                       if (epr != null)
+                       if (epr != null) {
+                               if (status == AT2PCStatus.ABORTING)
+                                       forget2PC(ref);
                                throw new IllegalStateException();
+                       }
                        epr = (EndpointReference) 
participants2PC[DURABLE].get(ref);
+                       if (status == AT2PCStatus.ABORTING)
+                               forget2PC(ref);
                        try {
                                new 
ParticipantStub(epr).rollbackOperation(null);
                        } catch (Exception e) {
@@ -365,9 +364,20 @@
                status = AT2PCStatus.NONE;
        }
 
+       private AxisFault getInvalidStateSoapFault() {
+               QName subcode = new QName(
+                               "http://schemas.xmlsoap.org/ws/2004/10/wscoor";, 
"InvalidState");
+               String faultString = "The message was invalid for the current 
state of the activity.";
+               return new AxisFault(subcode, faultString, null, null);
+       }
+
        public synchronized void preparedOperation(Notification parameters)
                        throws RemoteException {
-               prepared(getParticipantRef());
+               try {
+                       prepared(getParticipantRef());
+               } catch (IllegalStateException e) {
+                       throw getInvalidStateSoapFault();
+               }
        }
 
        public synchronized void abortedOperation(Notification parameters)
@@ -408,10 +418,11 @@
        }
 
        public synchronized void timeout() {
-               System.out.println("[ATCoordinatorImpl] timeout " + 
AT2PCStatus.getStatusName(status));
+               System.out.println("[ATCoordinatorImpl] timeout "
+                               + AT2PCStatus.getStatusName(status));
                if (status == AT2PCStatus.NONE)
                        return;
                rollback();
-               throw new TimedOutException();          
+               throw new TimedOutException();
        }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to