diff --git a/core/src/org/labkey/core/query/DataStatesTableInfo.java b/core/src/org/labkey/core/query/DataStatesTableInfo.java index ebdf00d67af..20ffdeef6b5 100644 --- a/core/src/org/labkey/core/query/DataStatesTableInfo.java +++ b/core/src/org/labkey/core/query/DataStatesTableInfo.java @@ -91,7 +91,7 @@ private DataState getDataState(Map row, Container container) return _dataState; } - private boolean isDuplicate(String label, Container container) + private boolean isDuplicate(String label, Container container, int currentRowId) { Map> registeredHandlers = DataStateManager.getInstance().getRegisteredDataHandlers(); for (DataStateHandler handler : registeredHandlers.values()) @@ -101,7 +101,8 @@ private boolean isDuplicate(String label, Container container) List dataStates = handler.getStates(container); for (DataState dataState : dataStates) { - if (dataState.getLabel().equalsIgnoreCase(label)) + boolean isUpdatingCurrent = currentRowId == dataState.getRowId(); + if (!isUpdatingCurrent && dataState.getLabel().equalsIgnoreCase(label)) return true; } } @@ -151,7 +152,8 @@ protected Map updateRow(User user, Container container, Map insertRow(User user, Container container, Map rowToInsert;