Index: src/edu/ucsb/nceas/metacat/dataone/MNodeService.java
===================================================================
--- src/edu/ucsb/nceas/metacat/dataone/MNodeService.java	(revision 6691)
+++ src/edu/ucsb/nceas/metacat/dataone/MNodeService.java	(revision 6692)
@@ -27,7 +27,6 @@
 import java.io.InputStream;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -84,7 +83,6 @@
 import org.dataone.service.types.v1.Services;
 import org.dataone.service.types.v1.Session;
 import org.dataone.service.types.v1.Subject;
-import org.dataone.service.types.v1.SubjectList;
 import org.dataone.service.types.v1.Synchronization;
 import org.dataone.service.types.v1.SystemMetadata;
 import org.dataone.service.types.v1.util.ChecksumUtil;
@@ -856,7 +854,7 @@
                 Date logDate = logEntry.getDateLogged();
                 // if we are filtering by format
                 if (formatId != null) {
-                    SystemMetadata sysmeta = IdentifierManager.getInstance().getSystemMetadata(pid.getValue());
+                    SystemMetadata sysmeta = HazelcastService.getInstance().getSystemMetadataMap().get(pid);
                     if (!sysmeta.getFormatId().getValue().equals(formatId.getValue())) {
                         // does not match
                         continue;
@@ -1100,15 +1098,16 @@
         
         // compare what we have locally to what is sent in the change notification
         try {
-            currentLocalSysMeta = 
-                IdentifierManager.getInstance().getSystemMetadata(pid.getValue());
-        
-        } catch (McdbDocNotFoundException e) {
+            currentLocalSysMeta = HazelcastService.getInstance().getSystemMetadataMap().get(pid);
+             
+        } catch (RuntimeException e) {
             String msg = "SystemMetadata for pid " + pid.getValue() +
-              " cpouldn't be updated because it couldn't be found locally: " +
+              " couldn't be updated because it couldn't be found locally: " +
               e.getMessage();
-            logMetacat.warn(msg);
-            
+            logMetacat.error(msg);
+            ServiceFailure sf = new ServiceFailure("1333", msg);
+            sf.initCause(e);
+            throw sf; 
         }
         
         if (currentLocalSysMeta.getSerialVersion().longValue() < serialVersion ) {
@@ -1116,23 +1115,29 @@
                 newSysMeta = cn.getSystemMetadata(null, pid);
             } catch (NotFound e) {
                 // huh? you just said you had it
-                logMetacat.error("On updating the local copy of system metadata " + 
-                    "for pid " + pid.getValue() +", the CN reports it is not found." +
-                    " The error message was: " + e.getMessage());
-                
+            	String msg = "On updating the local copy of system metadata " + 
+                "for pid " + pid.getValue() +", the CN reports it is not found." +
+                " The error message was: " + e.getMessage();
+                logMetacat.error(msg);
+                ServiceFailure sf = new ServiceFailure("1333", msg);
+                sf.initCause(e);
+                throw sf;
             }
+            
             // update the local copy of system metadata for the pid
             try {
-                IdentifierManager.getInstance().updateSystemMetadata(newSysMeta);
+                HazelcastService.getInstance().getSystemMetadataMap().put(newSysMeta.getIdentifier(), newSysMeta);
                 logMetacat.info("Updated local copy of system metadata for pid " +
                     pid.getValue() + " after change notification from the CN.");
                 
-            } catch (McdbDocNotFoundException e) {
+            } catch (RuntimeException e) {
                 String msg = "SystemMetadata for pid " + pid.getValue() +
-                  " cpouldn't be updated because it couldn't be found: " +
+                  " couldn't be updated: " +
                   e.getMessage();
-                logMetacat.warn(msg);
-                
+                logMetacat.error(msg);
+                ServiceFailure sf = new ServiceFailure("1333", msg);
+                sf.initCause(e);
+                throw sf;
             }
         }
         
