Author: orbiter
Date: 2008-02-02 22:36:19 +0100 (Sat, 02 Feb 2008)
New Revision: 4429

Modified:
   trunk/htroot/LogStatistics_p.java
   trunk/source/de/anomic/kelondro/kelondroBufferedEcoFS.java
   trunk/source/de/anomic/kelondro/kelondroEcoFS.java
   trunk/source/de/anomic/kelondro/kelondroEcoTable.java
Log:
tried to fix another eco bug

Modified: trunk/htroot/LogStatistics_p.java
===================================================================
--- trunk/htroot/LogStatistics_p.java   2008-02-02 11:30:47 UTC (rev 4428)
+++ trunk/htroot/LogStatistics_p.java   2008-02-02 21:36:19 UTC (rev 4429)
@@ -60,7 +60,7 @@
     
     private static final String RESULTS = "results_";
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "boxing" })
     public static serverObjects respond(httpHeader header, serverObjects post, 
serverSwitch env) {
         
         final serverObjects prop = new serverObjects();
@@ -89,7 +89,7 @@
         prop.put("results", "1");
         String[] t;
         float l;
-        prop.put(RESULTS + LogParserPLASMA.DHT_DISTANCE_AVERAGE, (String) 
r.get(LogParserPLASMA.DHT_DISTANCE_AVERAGE));
+        prop.put(RESULTS + LogParserPLASMA.DHT_DISTANCE_AVERAGE, (Double) 
r.get(LogParserPLASMA.DHT_DISTANCE_AVERAGE));
         prop.put(RESULTS + LogParserPLASMA.DHT_DISTANCE_MAX, (String) 
r.get(LogParserPLASMA.DHT_DISTANCE_MAX));
         prop.put(RESULTS + LogParserPLASMA.DHT_DISTANCE_MIN, (String) 
r.get(LogParserPLASMA.DHT_DISTANCE_MIN));
         prop.put(RESULTS + LogParserPLASMA.DHT_REJECTED, (String) 
r.get(LogParserPLASMA.DHT_REJECTED));

Modified: trunk/source/de/anomic/kelondro/kelondroBufferedEcoFS.java
===================================================================
--- trunk/source/de/anomic/kelondro/kelondroBufferedEcoFS.java  2008-02-02 
11:30:47 UTC (rev 4428)
+++ trunk/source/de/anomic/kelondro/kelondroBufferedEcoFS.java  2008-02-02 
21:36:19 UTC (rev 4429)
@@ -93,7 +93,7 @@
 
     public synchronized void put(long index, byte[] b, int start) throws 
IOException {
         assert b.length - start >= efs.recordsize;
-        if (index > size()) throw new 
IndexOutOfBoundsException("kelondroEcoFS.put(" + index + ") outside bounds (" + 
this.size() + ")");
+        if (index > size()) throw new 
IndexOutOfBoundsException("kelondroBufferedEcoFS.put(" + index + ") outside 
bounds (" + this.size() + ")");
         if (index == efs.size()) {
             efs.put(index, b, start);
         } else {
@@ -107,7 +107,7 @@
     public synchronized void add(byte[] b, int start) throws IOException {
         put(size(), b, start);
     }
-
+/*
     public synchronized void clean(long index, byte[] b, int start) throws 
IOException {
         assert b.length - start >= efs.recordsize;
         if (index >= size()) throw new 
IndexOutOfBoundsException("kelondroBufferedEcoFS.clean(" + index + ") outside 
bounds (" + this.size() + ")");
@@ -126,24 +126,23 @@
         buffer.remove(new Long(index));
         efs.clean(index);
     }
-
+*/
     public synchronized void cleanLast(byte[] b, int start) throws IOException 
{
         assert b.length - start >= efs.recordsize;
         Long i = new Long(size() - 1);
-        byte[] bb = buffer.get(i);
+        byte[] bb = buffer.remove(i);
         if (bb == null) {
-            efs.clean(i.intValue(), b, start);
+            efs.cleanLast(b, start);
         } else {
             System.arraycopy(bb, 0, b, start, efs.recordsize);
-            buffer.remove(i);
-            efs.clean(i.intValue());
+            efs.cleanLast();
         }
     }
     
     public synchronized void cleanLast() throws IOException {
         Long i = new Long(size() - 1);
         buffer.remove(i);
-        efs.clean(i.intValue());
+        efs.cleanLast();
     }
     
 }

Modified: trunk/source/de/anomic/kelondro/kelondroEcoFS.java
===================================================================
--- trunk/source/de/anomic/kelondro/kelondroEcoFS.java  2008-02-02 11:30:47 UTC 
(rev 4428)
+++ trunk/source/de/anomic/kelondro/kelondroEcoFS.java  2008-02-02 21:36:19 UTC 
(rev 4429)
@@ -225,10 +225,12 @@
         assert b.length - start >= this.recordsize;
         if (index > size()) throw new 
IndexOutOfBoundsException("kelondroEcoFS.put(" + index + ") outside bounds (" + 
this.size() + ")");
         // check if this is an empty entry
+        /*
         if (isClean(b , start, this.recordsize)) {
             clean(index);
             return;
         }
+        */
         // check if index is inside of cache
         int p = inCache(index);
         int q = (p >= 0) ? -1 : inBuffer(index);
@@ -304,7 +306,7 @@
          assert false;
          return false;
     }
-    
+    /*
     public synchronized void clean(long index, byte[] b, int start) throws 
IOException {
         // removes an entry by cleaning (writing zero bytes to the file)
         // the entry that had been at the specific place before is copied to 
the given array b
@@ -376,7 +378,7 @@
         raf.seek((long) index * (long) this.recordsize);
         raf.write(zero, 0, this.recordsize);
     }
-
+    */
     public synchronized void cleanLast(byte[] b, int start) throws IOException 
{
         cleanLast0(b, start);
         long i;
@@ -472,7 +474,7 @@
             t.add("=======2".getBytes(), 0);
             t.cleanLast(b, 0);
             System.out.println(new String(b));
-            t.clean(2, b, 0);
+            //t.clean(2, b, 0);
             System.out.println(new String(b));
             t.get(1, b, 0);
             System.out.println(new String(b));
@@ -484,7 +486,7 @@
             t.get(4, b, 0);
             System.out.println(new String(b));
             System.out.println("size = " + t.size());
-            t.clean(t.size() - 2);
+            //t.clean(t.size() - 2);
             t.cleanLast();
             long start = System.currentTimeMillis();
             long c = 0;

Modified: trunk/source/de/anomic/kelondro/kelondroEcoTable.java
===================================================================
--- trunk/source/de/anomic/kelondro/kelondroEcoTable.java       2008-02-02 
11:30:47 UTC (rev 4428)
+++ trunk/source/de/anomic/kelondro/kelondroEcoTable.java       2008-02-02 
21:36:19 UTC (rev 4429)
@@ -375,7 +375,7 @@
         byte[] p = new byte[rowdef.objectsize];
         if (table == null) {
             if (i == index.size() - 1) {
-                file.clean(i);
+                file.cleanLast();
             } else {
                 file.cleanLast(p, 0);
                 file.put(i, p, 0);
@@ -387,7 +387,7 @@
             if (i == index.size() - 1) {
                 // special handling if the entry is the last entry in the file
                 table.removeRow(i, false);
-                file.clean(i);
+                file.cleanLast();
             } else {
                 // switch values
                 kelondroRow.Entry te = table.removeOne();
@@ -413,12 +413,17 @@
         byte[] b = new byte[rowdef.objectsize];
         byte[] p = new byte[rowdef.objectsize];
         int sb = index.size();
+        int ix;
+        assert i < index.size();
         if (table == null) {
             if (i == index.size() - 1) {
-                index.removei(key);
-                file.clean(i, b, 0);
+                ix = index.removei(key);
+                assert ix == i;
+                file.cleanLast(b, 0);
             } else {
-                index.removei(key);
+                assert i < index.size() - 1;
+                ix = index.removei(key);
+                assert ix == i;
                 file.get(i, b, 0);
                 file.cleanLast(p, 0);
                 file.put(i, p, 0);
@@ -437,7 +442,7 @@
                 // special handling if the entry is the last entry in the file
                 index.removei(key);
                 table.removeRow(i, false);
-                file.clean(i);
+                file.cleanLast();
             } else {
                 // switch values
                 index.removei(key);

_______________________________________________
YaCy-svn mailing list
YaCy-svn@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/yacy-svn

Antwort per Email an