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;