diff --git a/src/main/java/org/caosdb/server/transaction/WriteTransaction.java b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java index 7b9bc7495a67aa458ad40f25435cb0af7da290d7..3c4cf0f5ddb5ab2118f6bf2ae03bb9e99fb494ba 100644 --- a/src/main/java/org/caosdb/server/transaction/WriteTransaction.java +++ b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java @@ -399,6 +399,8 @@ public class WriteTransaction extends Transaction<WritableContainer> || newEntity.hasDatatype() ^ oldEntity.hasDatatype()) { needPermissions.add(EntityPermission.UPDATE_DATA_TYPE); updatetable = true; + } else { + newEntity.setDatatypeOverride(oldEntity.isDatatypeOverride()); } // entity role @@ -417,7 +419,7 @@ public class WriteTransaction extends Transaction<WritableContainer> try { newEntity.parseValue(); oldEntity.parseValue(); - } catch (Message m) { + } catch (NullPointerException|Message m) { // ignore, parsing is handled elsewhere } if (!newEntity.getValue().equals(oldEntity.getValue())) { @@ -436,6 +438,8 @@ public class WriteTransaction extends Transaction<WritableContainer> || newEntity.hasName() ^ oldEntity.hasName()) { needPermissions.add(EntityPermission.UPDATE_NAME); updatetable = true; + } else { + newEntity.setNameOverride(oldEntity.isNameOverride()); } // entity description @@ -445,6 +449,8 @@ public class WriteTransaction extends Transaction<WritableContainer> || newEntity.hasDescription() ^ oldEntity.hasDescription()) { needPermissions.add(EntityPermission.UPDATE_DESCRIPTION); updatetable = true; + } else { + newEntity.setDescOverride(oldEntity.isDescOverride()); } // file properties