You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2009/07/27 16:42:29 UTC
svn commit: r798175 -
/incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
Author: cwiklik
Date: Mon Jul 27 14:42:29 2009
New Revision: 798175
URL: http://svn.apache.org/viewvc?rev=798175&view=rev
Log:
UIMA-1459 Added checks for NULL before dereferencing vars
Modified:
incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java?rev=798175&r1=798174&r2=798175&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngineCommon_impl.java Mon Jul 27 14:42:29 2009
@@ -338,9 +338,11 @@
while( it.hasNext() ) {
Long key = (Long)it.next();
CasQueueEntry entry = threadRegistrar.get(key);
- synchronized( entry.getMonitor() ) {
- entry.signal();
- entry.getMonitor().notifyAll();
+ if ( entry != null ) {
+ synchronized( entry.getMonitor() ) {
+ entry.signal();
+ entry.getMonitor().notifyAll();
+ }
}
}
}
@@ -540,7 +542,9 @@
CasQueueEntry entry = null;
if ( threadRegistrar.containsKey(aThreadId ) ) {
entry = threadRegistrar.get(aThreadId);
- entry.reset();
+ if ( entry != null ) {
+ entry.reset();
+ }
} else {
entry = new CasQueueEntry();
threadRegistrar.put(aThreadId, entry);
@@ -554,7 +558,7 @@
receivedMetaReply = false;
}
- private class CasQueueEntry {
+ private class CasQueueEntry {
private CAS cas;
private Object monitor = new Object();
private volatile boolean signaled = false;
@@ -1052,11 +1056,12 @@
// of the reply. The message has been stored in the cache and
// when the thread wakes up due to notification below, it will
// retrieve the reply and process it.
- synchronized( threadMonitor.getMonitor() )
- {
- threadMonitor.setWasSignaled();
- cachedRequest.setReceivedProcessCasReply();
- threadMonitor.getMonitor().notifyAll();
+ if ( threadMonitor != null && threadMonitor.getMonitor() != null) {
+ synchronized( threadMonitor.getMonitor() )
+ {
+ threadMonitor.setWasSignaled();
+ threadMonitor.getMonitor().notifyAll();
+ }
}
}
@@ -1870,11 +1875,12 @@
{
ThreadMonitor threadMonitor = (ThreadMonitor) threadMonitorMap.get(cachedRequest.getThreadId());
// Unblock the sending thread so that it can complete processing with an error
- synchronized( threadMonitor.getMonitor() )
- {
- threadMonitor.setWasSignaled();
- cachedRequest.setReceivedProcessCasReply(); // should not be needed
- threadMonitor.getMonitor().notifyAll();
+ if ( threadMonitor != null && threadMonitor.getMonitor() != null) {
+ synchronized( threadMonitor.getMonitor() )
+ {
+ threadMonitor.setWasSignaled();
+ threadMonitor.getMonitor().notifyAll();
+ }
}
}
}
@@ -1941,8 +1947,6 @@
private String endpoint;
- private volatile boolean receivedProcessCasReply = false;
-
private long threadId=-1;
private Message message;
@@ -2076,10 +2080,6 @@
{
return threadId;
}
- public void setReceivedProcessCasReply()
- {
- receivedProcessCasReply = true;
- }
public void setMetadataTimeout( int aTimeout )
{
metadataTimeout = aTimeout;