From: bdemsky Date: Sun, 24 Jul 2016 05:09:36 +0000 (-0700) Subject: more bugs X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=commitdiff_plain;h=d37f854060c432c26db183a41b68a926a2590cbe more bugs --- diff --git a/src/java/iotcloud/SlotBuffer.java b/src/java/iotcloud/SlotBuffer.java index e3ababf..054d4fc 100644 --- a/src/java/iotcloud/SlotBuffer.java +++ b/src/java/iotcloud/SlotBuffer.java @@ -43,11 +43,17 @@ class SlotBuffer { void putSlot(Slot s) { array[head]=s; head++; + if (head >= array.length) + head=0; + if (oldestseqn==0) oldestseqn = s.getSequenceNumber(); if (head==tail) { tail++; + if (tail >= array.length) + tail=0; + oldestseqn++; } } @@ -64,7 +70,15 @@ class SlotBuffer { if (index >= array.length || index >= head) return null; + if (index < 0) { + System.out.println("seqnum="+seqnum); + System.out.println("olestseqn="+oldestseqn); + System.out.println("diff="+diff); + System.out.println("tail="+tail); + + } + return array[index]; } diff --git a/src/java/iotcloud/Table.java b/src/java/iotcloud/Table.java index d3bac3d..72b4927 100644 --- a/src/java/iotcloud/Table.java +++ b/src/java/iotcloud/Table.java @@ -109,7 +109,8 @@ final public class Table { if ((numslots - buffer.size()) < FREE_SLOTS) { //have to check whether we have enough free slots - seqn = buffer.getNewestSeqNum() + 1 - numslots; + long fullfirstseqn = buffer.getNewestSeqNum() + 1 - numslots; + seqn = fullfirstseqn < 1 ? 1: fullfirstseqn; for(int i=0; i < FREE_SLOTS; i++, seqn++) { Slot prevslot=buffer.getSlot(seqn); if (!prevslot.isLive())