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 <[email protected]>
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);