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);

Reply via email to