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();