Browse Source

fix #404 : delete by sessionId

Shinsuke Sugaya 9 years ago
parent
commit
b6c52bf6ca
1 changed files with 19 additions and 11 deletions
  1. 19 11
      src/main/java/org/codelibs/fess/helper/WebFsIndexHelper.java

+ 19 - 11
src/main/java/org/codelibs/fess/helper/WebFsIndexHelper.java

@@ -472,20 +472,28 @@ public class WebFsIndexHelper implements Serializable {
         for (final String sid : sessionIdList) {
             // remove config
             crawlingConfigHelper.remove(sid);
-        }
-
-        // clear url filter
-        final UrlFilterService urlFilterService = SingletonLaContainer.getComponent(UrlFilterService.class);
-        urlFilterService.deleteAll();
 
-        // clear queue
-        final UrlQueueService urlQueueService = SingletonLaContainer.getComponent(UrlQueueService.class);
-        urlQueueService.deleteAll();
+            try {
+                // clear url filter
+                SingletonLaContainer.getComponent(UrlFilterService.class).delete(sid);
+            } catch (Exception e) {
+                logger.warn("Failed to delete UrlFilter for " + sid, e);
+            }
 
-        // clear
-        final DataService dataService = SingletonLaContainer.getComponent(DataService.class);
-        dataService.deleteAll();
+            try {
+                // clear queue
+                SingletonLaContainer.getComponent(UrlQueueService.class).delete(sid);
+            } catch (Exception e) {
+                logger.warn("Failed to delete UrlQueue for " + sid, e);
+            }
 
+            try {
+                // clear
+                SingletonLaContainer.getComponent(DataService.class).delete(sid);
+            } catch (Exception e) {
+                logger.warn("Failed to delete AccessResult for " + sid, e);
+            }
+        }
     }
 
 }