code: @Override
      public Message read(long timeout, TimeUnit unit)
              throws InterruptedException, IOException {
          Message message;
  
          message = super.read(timeout, unit);
  
          if (message == ISOBlueBus.MESSAGE_NONE) {
              throw new ClosedChannelException();
          }
  
          return message;
      }
docs: /*
  (non-Javadoc)
  
  @see org.isoblue.isobus.ISOBUSSocket#read(long,
  java.util.concurrent.TimeUnit)