bug fixes
[iotcloud.git] / src / java / iotcloud / Slot.java
index 6604894e0e364e3cf556f254ac828ba4a74394d6..4db9133de5a958ec5a9a6ba523fd41297ddb5600 100644 (file)
@@ -64,6 +64,13 @@ class Slot implements Liveness {
        }
 
        void addEntry(Entry e) {
+               e=e.getCopy(this);
+               entries.add(e);
+               livecount++;
+               freespace -= e.getSize();
+       }
+
+       private void addShallowEntry(Entry e) {
                entries.add(e);
                livecount++;
                freespace -= e.getSize();
@@ -109,7 +116,7 @@ class Slot implements Liveness {
                Slot slot=new Slot(seqnum, machineid, prevhmac, hmac);
 
                for(int i=0; i<numentries; i++) {
-                       slot.addEntry(Entry.decode(slot, bb));
+                       slot.addShallowEntry(Entry.decode(slot, bb));
                }
 
                return slot;
@@ -152,10 +159,11 @@ class Slot implements Liveness {
 
        Vector<Entry> getLiveEntries() {
                Vector<Entry> liveEntries=new Vector<Entry>();
-               for(Entry entry: entries)
+               for(Entry entry: entries) {
                        if (entry.isLive())
                                liveEntries.add(entry);
-
+               }
+                       
                if (seqnumlive)
                        liveEntries.add(new LastMessage(this, machineid, seqnum));
 
@@ -184,8 +192,8 @@ class Slot implements Liveness {
         */
 
        void setDead() {
-               decrementLiveCount();
                seqnumlive=false;
+               decrementLiveCount();
        }
 
        /**
@@ -194,6 +202,7 @@ class Slot implements Liveness {
 
        void decrementLiveCount() {
                livecount--;
+               Vector<Entry> e=getLiveEntries();
        }
 
        /**