private void handleCharacterByte(int ch) throws IOException
   {
      if (parsingHex)
      {
         int b = HexUtils.parseHexDigit(ch) << 4;
         ch = source.read();
         if (ch == -1)
         {
            throw new IllegalStateException("Unexpected end of file");
         }
         b += HexUtils.parseHexDigit(ch);
         buffer.add(b);
         parsingHex = false;
      }
      else
      {
         buffer.add(ch);
      }
   }