private static String readQuotedDescriptor(final SubstringReader reader,final boolean allowCompatChars) throws DecodeException {
  int length=0;
  reader.skipWhitespaces();
  try {
    char c=reader.read();
    if (c != '\'') {
      throw DecodeException.error(ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS1.get(reader.pos() - 1,c));
    }
    reader.mark();
    while ((c=reader.read()) != '\'') {
      if (length == 0 && !isAlpha(c)) {
        throw DecodeException.error(ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1.get(c,reader.pos() - 1));
      }
      if (!isKeyChar(c,allowCompatChars)) {
        throw DecodeException.error(ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1.get(c,reader.pos() - 1));
      }
      length++;
    }
    reader.reset();
    final String descr=reader.read(length);
    reader.read();
    return descr;
  }
 catch (  final StringIndexOutOfBoundsException e) {
    throw DecodeException.error(ERR_ATTR_SYNTAX_TRUNCATED_VALUE1.get());
  }
}

private static String readQuotedDescriptor ( final SubstringReader reader , final boolean allowCompatChars ) throws DecodeException { int length = 0 ; reader . skipWhitespaces ( ) ; try { char c = reader . read ( ) ; if ( c != '\'' ) { throw DecodeException . error ( ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS1 . get ( reader . pos ( ) - 1 , c ) ) ; } reader . mark ( ) ; while ( ( c = reader . read ( ) ) != '\'' ) { if ( length == 0 && ! isAlpha ( c ) ) { throw DecodeException . error ( ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1 . get ( c , reader . pos ( ) - 1 ) ) ; } if ( ! isKeyChar ( c , allowCompatChars ) ) { throw DecodeException . error ( ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID1 . get ( c , reader . pos ( ) - 1 ) ) ; } length ++ ; } reader . reset ( ) ; final String descr = reader . read ( length ) ; reader . read ( ) ; return descr ; } catch ( final StringIndexOutOfBoundsException e ) { throw DecodeException . error ( ERR_ATTR_SYNTAX_TRUNCATED_VALUE1 . get ( ) ) ; } }
reads the value of a string enclosed in single quotes , skipping over the quotes and any leading spaces .
