Repository: openmeetings
Updated Branches:
  refs/heads/master e5518cdc9 -> 41fd6f541


[OPENMEETINGS-1714] more issues are fixed


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/41fd6f54
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/41fd6f54
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/41fd6f54

Branch: refs/heads/master
Commit: 41fd6f5416aef890e6bc5f81610570ba4f976127
Parents: e5518cd
Author: Maxim Solodovnik <[email protected]>
Authored: Wed Oct 11 23:39:09 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Wed Oct 11 23:39:09 2017 +0700

----------------------------------------------------------------------
 .../service/quartz/scheduler/CleanupJob.java    | 77 ++++++++++----------
 .../openmeetings/service/quartz/TestJob.java    | 45 ++++++++++++
 2 files changed, 84 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/41fd6f54/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
index d6d6cfa..aa76db1 100644
--- 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
+++ 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
@@ -73,25 +73,26 @@ public class CleanupJob extends AbstractJob {
 
        public void cleanTestSetup() {
                log.debug("CleanupJob.cleanTestSetup");
+               final long now = System.currentTimeMillis();
                if (!isInitComplete()) {
                        return;
                }
                try {
                        //TODO need to move all these staff to helper
-                       File[] folders = getStreamsDir().listFiles();
-                       if (folders != null) {
-                               for (File folder : folders) {
-                                       if (folder.isDirectory()) {
-                                               File[] files = 
folder.listFiles(fi -> fi.getName().startsWith(TEST_SETUP_PREFIX));
-                                               if (files != null) {
-                                                       for (File file : files) 
{
-                                                               if 
(file.isFile() && file.lastModified() + testSetupTimeout < 
System.currentTimeMillis()) {
-                                                                       
log.debug("expired TEST SETUP found: " + file.getCanonicalPath());
-                                                                       
file.delete();
-                                                               }
-                                                       }
-                                               }
-                                       }
+                       File[] folders = getStreamsDir().listFiles(fi -> 
fi.isDirectory());
+                       if (folders == null) {
+                               return;
+                       }
+                       for (File folder : folders) {
+                               File[] files = folder.listFiles(
+                                               fi -> 
fi.getName().startsWith(TEST_SETUP_PREFIX) && fi.isFile() && fi.lastModified() 
+ testSetupTimeout < now
+                                       );
+                               if (files == null) {
+                                       continue;
+                               }
+                               for (File file : files) {
+                                       log.debug("expired TEST SETUP found: " 
+ file.getCanonicalPath());
+                                       file.delete();
                                }
                        }
                } catch (Exception e) {
@@ -101,37 +102,37 @@ public class CleanupJob extends AbstractJob {
 
        public void cleanRoomFiles() {
                log.debug("CleanupJob.cleanRoomFiles");
+               final long now = System.currentTimeMillis();
                if (!isInitComplete()) {
                        return;
                }
                try {
                        //TODO need to move all these staff to helper
-                       File[] folders = getStreamsDir().listFiles();
-                       if (folders != null) {
-                               for (File folder : folders) {
-                                       Long roomId = null;
-                                       if 
(NumberUtils.isCreatable(folder.getName())) {
-                                               roomId = 
Long.valueOf(folder.getName());
-                                               Whiteboards wbList = 
WhiteboardCache.get(roomId);
-                                               for (Map.Entry<Long, 
Whiteboard> e : wbList.getWhiteboards().entrySet()) {
-                                                       if 
(!e.getValue().isEmpty()) {
-                                                               roomId = null;
-                                                               break;
-                                                       }
+                       File[] folders = getStreamsDir().listFiles(fi -> 
fi.isDirectory());
+                       if (folders == null) {
+                               return;
+                       }
+                       for (File folder : folders) {
+                               Long roomId = null;
+                               if (NumberUtils.isCreatable(folder.getName())) {
+                                       roomId = Long.valueOf(folder.getName());
+                                       Whiteboards wbList = 
WhiteboardCache.get(roomId);
+                                       for (Map.Entry<Long, Whiteboard> e : 
wbList.getWhiteboards().entrySet()) {
+                                               if (!e.getValue().isEmpty()) {
+                                                       roomId = null;
+                                                       break;
                                                }
                                        }
-                                       if (folder.isDirectory() && roomId != 
null && sessionManager.listByRoom(roomId).isEmpty()) {
-                                               File[] files = 
folder.listFiles();
-                                               //TODO need to rework this and 
remove hardcodings
-                                               if (files != null) {
-                                                       for (File file : files) 
{
-                                                               if 
(file.isFile() && file.lastModified() + roomFilesTtl < 
System.currentTimeMillis()) {
-                                                                       
log.debug("Room files are too old and no users in the room: " + roomId);
-                                                                       
FileUtils.deleteDirectory(folder);
-                                                                       break;
-                                                               }
-                                                       }
-                                               }
+                               }
+                               if (roomId != null && 
sessionManager.listByRoom(roomId).isEmpty()) {
+                                       File[] files = folder.listFiles(fi -> 
fi.isFile() && fi.lastModified() + roomFilesTtl < now);
+                                       //TODO need to rework this and remove 
hardcodings
+                                       if (files == null || files.length == 0) 
{
+                                               continue;
+                                       } else {
+                                               log.debug("Room files are too 
old and no users in the room: " + roomId);
+                                               
FileUtils.deleteDirectory(folder);
+                                               break;
                                        }
                                }
                        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/41fd6f54/openmeetings-web/src/test/java/org/apache/openmeetings/service/quartz/TestJob.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/service/quartz/TestJob.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/service/quartz/TestJob.java
new file mode 100644
index 0000000..a4832dc
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/service/quartz/TestJob.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.service.quartz;
+
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setInitComplete;
+
+import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.service.quartz.scheduler.CleanupJob;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestJob extends AbstractWicketTester {
+       @Autowired
+       private CleanupJob cleanJob;
+
+       @Test
+       public void testNotInited() {
+               try {
+                       setInitComplete(false);
+                       cleanJob.cleanExpiredRecordings();
+                       cleanJob.cleanExpiredResetHash();
+                       cleanJob.cleanRoomFiles();
+                       cleanJob.cleanSessions();
+                       cleanJob.cleanTestSetup();
+               } finally {
+                       setInitComplete(true);
+               }
+       }
+}

Reply via email to