diff --git a/xwiki-platform-core/xwiki-platform-repository/xwiki-platform-repository-server-api/src/main/java/org/xwiki/repository/internal/RepositoryManager.java b/xwiki-platform-core/xwiki-platform-repository/xwiki-platform-repository-server-api/src/main/java/org/xwiki/repository/internal/RepositoryManager.java index f77f7568f31df1be3b230681bc6b6a0af6e50435..13dd38fc0d1d55f608c9df936563867c6b893581 100644 --- a/xwiki-platform-core/xwiki-platform-repository/xwiki-platform-repository-server-api/src/main/java/org/xwiki/repository/internal/RepositoryManager.java +++ b/xwiki-platform-core/xwiki-platform-repository/xwiki-platform-repository-server-api/src/main/java/org/xwiki/repository/internal/RepositoryManager.java @@ -1072,6 +1072,13 @@ protected <T> T getValue(BaseObject object, String field, T def) protected boolean update(BaseObject object, String fieldName, Object value) { + // Make sure collection are lists + if (value instanceof Collection) { + if (!(value instanceof List)) { + value = new ArrayList<>((Collection) value); + } + } + if (ObjectUtils.notEqual(value, getValue(object, fieldName))) { object.set(fieldName, value, this.xcontextProvider.get());