diff --git a/bindings/java/src/org/sleuthkit/datamodel/CommunicationsManager.java b/bindings/java/src/org/sleuthkit/datamodel/CommunicationsManager.java
index ccf840d53dcc7571827d5706e255b84686189952..5130d63310c7dd70c9e19154ded107604ccaff0b 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/CommunicationsManager.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/CommunicationsManager.java
@@ -77,6 +77,7 @@ public class CommunicationsManager {
 	 */
 	private void initAccountTypes() throws TskCoreException {
 		CaseDbConnection connection = db.getConnection();
+		db.acquireSingleUserCaseWriteLock();
 		Statement statement = null;
 		ResultSet resultSet = null;
 
@@ -115,6 +116,7 @@ private void initAccountTypes() throws TskCoreException {
 			closeResultSet(resultSet);
 			closeStatement(statement);
 			connection.close();
+			db.releaseSingleUserCaseWriteLock();
 		}
 	}
 
@@ -130,6 +132,7 @@ private void initAccountTypes() throws TskCoreException {
 	 */
 	private int readAccountTypes() throws SQLException, TskCoreException {
 		CaseDbConnection connection = db.getConnection();
+		db.acquireSingleUserCaseReadLock();
 		Statement statement = null;
 		ResultSet resultSet = null;
 		int count = 0;
@@ -158,6 +161,7 @@ private int readAccountTypes() throws SQLException, TskCoreException {
 			closeResultSet(resultSet);
 			closeStatement(statement);
 			connection.close();
+			db.releaseSingleUserCaseReadLock();
 		}
 
 		return count;