public DeletionInfoPacket(byte[] data) { super(data); entries = new ArrayList<DeletionRecord>(); ByteBuffer buffer = ByteBuffer.wrap(data, HEADER_LENGTH, data.length-HEADER_LENGTH); try { int numEntries = buffer.getInt(); for (int i=0; i<numEntries; i++) { Hash dhtKey = readHash(buffer); UniqueId delAuthentication = new UniqueId(buffer); long storeTime = buffer.getInt() * 1000L; DeletionRecord entry = new DeletionRecord(dhtKey, delAuthentication, storeTime); entries.add(entry); } } catch (BufferUnderflowException e) { log.error("Not enough bytes in packet.", e); } if (buffer.hasRemaining()) log.debug("Extra bytes in Index Packet data."); }