public void replay(EntryCallback callback) {
        try {
            final ObjectInputStream stream = new ObjectInputStream(new FileInputStream(this.file));
            while (true) {
                try {
                    callback.nextEntry((Entry) stream.readObject());
                } catch(Exception e) {
                    if(e instanceof EOFException) break;
                    if(e instanceof StreamCorruptedException) break;
                    if(e instanceof ClassNotFoundException) { System.err.println("Skipping one entry due to a class not found: " + e.getMessage()); continue; }
                    e.printStackTrace();
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            // e.printStackTrace();
            System.out.println("End of File");
        }
    }