Author: mckierna
Date: Mon Sep 17 05:31:22 2007
New Revision: 576399
URL: http://svn.apache.org/viewvc?rev=576399&view=rev
Log:
potential NPE in populateRMMsgContext
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/WorkerLock.java
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java?rev=576399&r1=576398&r2=576399&view=diff
==============================================================================
---
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java
(original)
+++
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java
Mon Sep 17 05:31:22 2007
@@ -120,11 +120,15 @@
work =
contextMgr.wrapWithContext(work, invoker.getContext());
}
- threadPool.execute(work);
-
- //adding the workId to the lock
after assigning it to a thread makes sure
- //that all the workIds in the
Lock are handled by threads.
- getWorkerLock().addWork(workId, worker);
+ try {
+ // Try and set the lock
up before we start the thread, but roll it back
+ // if we hit any
problems
+
if(worker.getLock().addWork(workId, worker)){
+
threadPool.execute(work);
+ }
+ } catch(Exception e) {
+
worker.getLock().removeWork(workId);
+ }
long msgNumber =
invoker.getMsgNo();
//if necessary, update the
"next message number" bean under this transaction
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/WorkerLock.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/WorkerLock.java?rev=576399&r1=576398&r2=576399&view=diff
==============================================================================
---
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/WorkerLock.java
(original)
+++
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/WorkerLock.java
Mon Sep 17 05:31:22 2007
@@ -26,9 +26,10 @@
}
- public synchronized void addWork (String work, Object owner) {
- if(locks.containsKey(work)) return;
+ public synchronized boolean addWork (String work, Object owner) {
+ if(locks.containsKey(work)) return false;
locks.put(work, owner);
+ return true;
}
public synchronized void removeWork (String work) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]