diff --git a/src/main/java/org/caosdb/server/accessControl/UserSources.java b/src/main/java/org/caosdb/server/accessControl/UserSources.java
index b169849b4ec910d998e6e4184a195ef804c2a9f8..bd63da6fb7a116f0fb9c75f1724c93913e308a22 100644
--- a/src/main/java/org/caosdb/server/accessControl/UserSources.java
+++ b/src/main/java/org/caosdb/server/accessControl/UserSources.java
@@ -282,10 +282,7 @@ public class UserSources extends HashMap<String, UserSource> {
     return false;
   }
 
-  /**
-   * Log the current time as the user's last visit.
-   *
-   */
+  /** Log the current time as the user's last visit. */
   public static void logUserVisit(String realm, String username, String type) {
     try {
       LogUserVisitTransaction t =
diff --git a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListRoles.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListRoles.java
index 11505b0772792504e1146f4b6103d9274f20dd2d..69ac524eae823d06fdbd4346056979ea15307437 100644
--- a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListRoles.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListRoles.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.implementation.MySQL;
diff --git a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListUsers.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListUsers.java
index cb79d4adea2250dd447d4bbd9f0d3e284e2d8301..83ebffe679e6625da720fd2933a5d8defb7264c3 100644
--- a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListUsers.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLListUsers.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.implementation.MySQL;
diff --git a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLLogUserVisit.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLLogUserVisit.java
index 7a0e8ba45b2ddd501c81fef39ba45bfc7c685e68..23050da87e324026be1eefa02690959d0a0590cc 100644
--- a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLLogUserVisit.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLLogUserVisit.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.implementation.MySQL;
diff --git a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveEntityACL.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveEntityACL.java
index 2cb97d80b6b95e76fb0042141f87d57343dd572a..5db8ed7597b1c0d357273848fb7c36febdcfed13 100644
--- a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveEntityACL.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveEntityACL.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.implementation.MySQL;
diff --git a/src/main/java/org/caosdb/server/database/backend/interfaces/ListRolesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/ListRolesImpl.java
index aafa16e221e076ca0ca380515414f45fb41b4360..aab9041ae0f4e02d4b601e97d042dff591fbbf85 100644
--- a/src/main/java/org/caosdb/server/database/backend/interfaces/ListRolesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/ListRolesImpl.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.interfaces;
diff --git a/src/main/java/org/caosdb/server/database/backend/interfaces/ListUsersImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/ListUsersImpl.java
index 0508a01a22cf0565a95969b5de04d074b2b9fa2b..6bdfda92f2b5a78b8b2dfc8b6f20aac3b68c08a9 100644
--- a/src/main/java/org/caosdb/server/database/backend/interfaces/ListUsersImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/ListUsersImpl.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.interfaces;
diff --git a/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java
index d9c5fbba2e3d6d16c98f3a2d38d6d82177c16418..230d4d34103603d5499532a7dc1a941cf82068e7 100644
--- a/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.interfaces;
diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/ListRoles.java b/src/main/java/org/caosdb/server/database/backend/transaction/ListRoles.java
index 747b3c5ccb4ef11de286bb26de0de6c3f15137df..75792475c4c5a6ae9091f89c8de1b4ef157aa11f 100644
--- a/src/main/java/org/caosdb/server/database/backend/transaction/ListRoles.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/ListRoles.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.transaction;
diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/ListUsers.java b/src/main/java/org/caosdb/server/database/backend/transaction/ListUsers.java
index e4d5dabb948acad4091cb598e09c633d110bcf35..9f29a3c5888104140eb6e2c29b83370fc1c56401 100644
--- a/src/main/java/org/caosdb/server/database/backend/transaction/ListUsers.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/ListUsers.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.transaction;
diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveEntityACLTransaction.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveEntityACLTransaction.java
index b3d2402e81475a3bbe30d351a206cef4e81e5ebe..9cb96112532fe249fd81c3e8d10d85ca900293d9 100644
--- a/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveEntityACLTransaction.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveEntityACLTransaction.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.transaction;
diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java
index 5950c2554875bd9cae8d90df9690742c5def8db1..bbd23aa95d3eb1bed4f2bafc78fa12d112a02169 100644
--- a/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java
@@ -18,7 +18,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.database.backend.transaction;
diff --git a/src/main/java/org/caosdb/server/grpc/AccessControlManagementServiceImpl.java b/src/main/java/org/caosdb/server/grpc/AccessControlManagementServiceImpl.java
index 0079af6f25bfcc6f9471786d17f821e66fcd3c2b..18dd29a2c6ccd95de74ff530a7d574b14e3b4b52 100644
--- a/src/main/java/org/caosdb/server/grpc/AccessControlManagementServiceImpl.java
+++ b/src/main/java/org/caosdb/server/grpc/AccessControlManagementServiceImpl.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.grpc;
diff --git a/src/main/java/org/caosdb/server/grpc/AuthInterceptor.java b/src/main/java/org/caosdb/server/grpc/AuthInterceptor.java
index 7f192503ab957c786e46966962d4b0d664e5ac24..b58769d4ba6bff28ea922160a29b9747ff99e992 100644
--- a/src/main/java/org/caosdb/server/grpc/AuthInterceptor.java
+++ b/src/main/java/org/caosdb/server/grpc/AuthInterceptor.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.grpc;
diff --git a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
index 29b4ea11889eff8218025bd70df81297bf13c946..fe09df562663289fd796c79bc1db30875e266da5 100644
--- a/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
+++ b/src/main/java/org/caosdb/server/grpc/CaosDBToGrpcConverters.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.grpc;
@@ -299,6 +299,11 @@ public class CaosDBToGrpcConverters {
   }
 
   private ScalarValue convertScalarValue(final IndexedSingleValue v) {
+    if (v == null) {
+      return ScalarValue.newBuilder()
+          .setSpecialValue(SpecialValue.SPECIAL_VALUE_UNSPECIFIED)
+          .build();
+    }
     return convertScalarValue(v.getWrapped()).build();
   }
 
diff --git a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
index 0d5288d946f7e4240f73d0fca997993ef76f75e6..9b43a04c19387559f95e05084519974817db852b 100644
--- a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
+++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.grpc;
diff --git a/src/main/java/org/caosdb/server/grpc/GrpcToCaosDBConverters.java b/src/main/java/org/caosdb/server/grpc/GrpcToCaosDBConverters.java
index 9798cbf52d025508c736393038322fd66dbe6e31..5ec896fd44899cd59520f2f45c6ceec6c55042a5 100644
--- a/src/main/java/org/caosdb/server/grpc/GrpcToCaosDBConverters.java
+++ b/src/main/java/org/caosdb/server/grpc/GrpcToCaosDBConverters.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.grpc;
diff --git a/src/main/java/org/caosdb/server/transaction/ListRolesTransaction.java b/src/main/java/org/caosdb/server/transaction/ListRolesTransaction.java
index 5fda2b62f7f1c866ffe1252837447e18b0b07b7f..b8f5943cb6e48fe31784ce0795cead3baeff226e 100644
--- a/src/main/java/org/caosdb/server/transaction/ListRolesTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/ListRolesTransaction.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.transaction;
diff --git a/src/main/java/org/caosdb/server/transaction/ListUsersTransaction.java b/src/main/java/org/caosdb/server/transaction/ListUsersTransaction.java
index 1756b2e1c3d8ae5fc60caf3a297471d83822dce6..b0c4af3503ed4eb8672870604586b9795faa0658 100644
--- a/src/main/java/org/caosdb/server/transaction/ListUsersTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/ListUsersTransaction.java
@@ -16,13 +16,12 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.transaction;
 
 import java.util.List;
-import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.subject.Subject;
@@ -37,16 +36,23 @@ public class ListUsersTransaction extends AccessControlTransaction {
   @Override
   protected void transaction() throws Exception {
     Subject currentUser = SecurityUtils.getSubject();
-    users = execute(new ListUsers(), getAccess()).getUsers().stream().filter(user -> currentUser.isPermitted(ACMPermissions.PERMISSION_RETRIEVE_USER_INFO(user.realm, user.name))
-        ).collect(Collectors.toList());
-    
+    users =
+        execute(new ListUsers(), getAccess())
+            .getUsers()
+            .stream()
+            .filter(
+                user ->
+                    currentUser.isPermitted(
+                        ACMPermissions.PERMISSION_RETRIEVE_USER_INFO(user.realm, user.name)))
+            .collect(Collectors.toList());
+
     // remove roles
-    for(ProtoUser user : users) {
-      if(!currentUser.isPermitted(ACMPermissions.PERMISSION_RETRIEVE_USER_ROLES(user.realm, user.name))) {
+    for (ProtoUser user : users) {
+      if (!currentUser.isPermitted(
+          ACMPermissions.PERMISSION_RETRIEVE_USER_ROLES(user.realm, user.name))) {
         user.roles = null;
       }
     }
-
   }
 
   public List<ProtoUser> getUsers() {
diff --git a/src/main/java/org/caosdb/server/transaction/RetrieveACL.java b/src/main/java/org/caosdb/server/transaction/RetrieveACL.java
index e780b460e12aaa56854b568bd6e05bf01745c355..c82ff76e696d73da030f6b0c1b815a0620e6e7c4 100644
--- a/src/main/java/org/caosdb/server/transaction/RetrieveACL.java
+++ b/src/main/java/org/caosdb/server/transaction/RetrieveACL.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.transaction;
diff --git a/src/main/java/org/caosdb/server/transaction/UpdateACL.java b/src/main/java/org/caosdb/server/transaction/UpdateACL.java
index a5025181889ba59405d04ae20bea567f62d4563f..49125a2b67abac4fd640e7d07b2d4ddc2960c72f 100644
--- a/src/main/java/org/caosdb/server/transaction/UpdateACL.java
+++ b/src/main/java/org/caosdb/server/transaction/UpdateACL.java
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.transaction;
diff --git a/src/main/java/org/caosdb/server/utils/ServerMessages.java b/src/main/java/org/caosdb/server/utils/ServerMessages.java
index 2938048c269838fdb240f2f95841c78ddc8b5c2f..c1f361e24ce88260d9ac2932d542eedb136180df 100644
--- a/src/main/java/org/caosdb/server/utils/ServerMessages.java
+++ b/src/main/java/org/caosdb/server/utils/ServerMessages.java
@@ -18,7 +18,7 @@
  *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 package org.caosdb.server.utils;