/** Send open event after open */
 public void open() throws IOException, InterruptedException {
   super.open();
   super.append(openEvent()); // purposely using old append
   listener.start(new String(tag));
 }
 /** Send close event before close */
 public void close() throws IOException, InterruptedException {
   super.append(closeEvent()); // purposely using old append
   super.close();
   listener.end(new String(tag));
 }