Zerschossener RI-Cache

Ereignisse, Vorschläge und Aktionen

Zerschossener RI-Cache

Beitragvon datengrab » Mi Jun 04, 2008 3:27 pm

Dafür das yacy bei zerschossenem RI-Cache nicht mehr starten will habe ich einen kleinen Workarround. Zum Test habe ich den Cache absichtlich beschädigt indem ich jeweils eine Handvoll Bytes aus den Dateinen gelöscht habe. In den allermeisten Fällen startete yacy trotdem einwandfrei. In einem einzigen Test habe ich es hinbekommen, das mit einem OutOfMemoryError abgebrochen wurde.

Code: Alles auswählen
--- yacy-svn/source/de/anomic/index/indexRAMRI.java   2008-05-27 19:34:02.738095873 +0200
+++ yacy-work/source/de/anomic/index/indexRAMRI.java   2008-06-04 16:01:42.844720858 +0200
@@ -73,7 +73,12 @@
                     this.hashScore.setScore(ic.getWordHash(), ic.size());
                 }
             } catch (IOException e){
-                log.logSevere("unable to restore cache dump: " + e.getMessage(), e);
+                log.logSevere("unable to restore cache dump: " + e.getMessage(), e);
+            // this occurrs if the cache file is corrupted
+            } catch (NegativeArraySizeException ne) {
+                log.logWarning("the word cache is corrupted and for that truncated");
+                this.hashDate.clear();
+                this.hashScore.clear();
             }
         } else {
             heap.initWriteMode();
datengrab
 
Beiträge: 366
Registriert: Sa Aug 25, 2007 7:22 pm

Zurück zu Mitmachen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast