Author: [log in to unmask] Date: Tue Nov 4 20:46:16 2014 New Revision: 1429 Log: fix off-by-one error in reading slot banks Modified: java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java Modified: java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java (original) +++ java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java Tue Nov 4 20:46:16 2014 @@ -62,17 +62,18 @@ if (bank.getHeader().getDataType() == DataType.COMPOSITE) { // for (CompositeData cdata : bank.getCompositeData()) { CompositeData cdatalist[] = bank.getCompositeData(); - for (CompositeData cdata:cdatalist) - switch (bank.getHeader().getTag()) { - case 0xe101: - printWindow(cdata, indent + "\t"); - break; - case 0xe102: - printComposite(cdata, indent + "\t"); - break; - case 0xe103: - printComposite(cdata, indent + "\t"); - break; + for (CompositeData cdata : cdatalist) { + switch (bank.getHeader().getTag()) { + case 0xe101: + printWindow(cdata, indent + "\t"); + break; + case 0xe102: + printComposite(cdata, indent + "\t"); + break; + case 0xe103: + printComposite(cdata, indent + "\t"); + break; + } } // } } @@ -92,7 +93,7 @@ } private static void printWindow(CompositeData cdata, String indent) { - while (cdata.index() < cdata.getItems().size()) { + while (cdata.index() + 1 < cdata.getItems().size()) { System.out.println(indent + "Byte count: " + cdata.getRawBytes().length); System.out.println(indent + "Slot: " + cdata.getByte()); System.out.println(indent + "Trigger: " + cdata.getInt()); @@ -115,4 +116,4 @@ * i<bytes.length; i++) { if (i%4==0) System.out.println(); * System.out.println(Byte.toString(bytes[i])); } } */ -} +}