This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch 4.0.x in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/4.0.x by this push: new be2eb0c [OPENMEETINGS-2054] recordings are not imported if room/owner is deleted be2eb0c is described below commit be2eb0c5b8a58526d441c2e018fc546067d9cfd2 Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Wed Apr 17 15:04:07 2019 +0700 [OPENMEETINGS-2054] recordings are not imported if room/owner is deleted --- .../apache/openmeetings/backup/BackupImport.java | 39 ++++++++++++---------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java index 4438d97..ed7b527 100644 --- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java +++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java @@ -775,6 +775,23 @@ public class BackupImport { } } + private boolean isInvalidFile(BaseFileItem file) { + if (file.getRoomId() != null) { + Long newRoomId = roomMap.get(file.getRoomId()); + if (newRoomId == null) { + return true; // room was deleted + } + file.setRoomId(newRoomId); + } + if (file.getOwnerId() != null) { + Long newOwnerId = userMap.get(file.getOwnerId()); + if (newOwnerId == null) { + return true; // owner was deleted + } + file.setOwnerId(newOwnerId); + } + return false; + } /* * ##################### Import Recordings */ @@ -784,11 +801,8 @@ public class BackupImport { for (Recording r : list) { Long recId = r.getId(); r.setId(null); - if (r.getRoomId() != null) { - r.setRoomId(roomMap.get(r.getRoomId())); - } - if (r.getOwnerId() != null) { - r.setOwnerId(userMap.get(r.getOwnerId())); + if (isInvalidFile(r)) { + continue; } if (r.getMetaData() != null) { for (RecordingMetaData meta : r.getMetaData()) { @@ -913,19 +927,8 @@ public class BackupImport { Long fId = file.getId(); // We need to reset this as openJPA reject to store them otherwise file.setId(null); - if (file.getRoomId() != null) { - Long newRoomId = roomMap.get(file.getRoomId()); - if (newRoomId == null) { - continue; // room was deleted - } - file.setRoomId(newRoomId); - } - if (file.getOwnerId() != null) { - Long newOwnerId = userMap.get(file.getOwnerId()); - if (newOwnerId == null) { - continue; // owner was deleted - } - file.setOwnerId(newOwnerId); + if (isInvalidFile(file)) { + continue; } if (file.getParentId() != null && file.getParentId().longValue() <= 0L) { file.setParentId(null);