svn commit: r747405 - /webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java

[email protected] Tue, 24 Feb 2009 15:38:38 -0000
Newsgroups gmane.comp.apache.webservices.fx.devel
Message-ID <[email protected]>
Author: amilas
Date: Tue Feb 24 15:38:33 2009
New Revision: 747405

URL: http://svn.apache.org/viewvc?rev=747405&view=rev
Log:
when handling duplicate messages. i.e if the services blocks the thread for 60 seconds, then there is a possiblity
that RMS sends duplicate messages. these duplcate messages are locked in the GloblaInHander util first message clear 
the service. Then when after processing these messages they going to commit. At this commit release locks method 
throws a Runtime Exception which causes a soap fault message. this can be avoided by catching this exception at this 
level. But how ever there may be an error with the InMemory Transaction model.

Modified:
    webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java?rev=747405&r1=747404&r2=747405&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryTransaction.java Tue Feb 24 15:38:33 2009
@@ -81,12 +81,15 @@
 		this.useSerialization = useSerialization;
 		if(LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled()) log.debug("Exit: InMemoryTransaction::<init>, " + this);
 	}
-	
-	public void commit() {
-		releaseLocks();
-		if(sentMessages && useSerialization) manager.getSender().wakeThread();
-		active = false;
-	}
+
+    public void commit() {
+        try {
+            releaseLocks();
+        } catch (RuntimeException e) {
+        }
+        if (sentMessages && useSerialization) manager.getSender().wakeThread();
+        active = false;
+    }
 
 	public void rollback() {
 		releaseLocks();