Uploaded image for project: 'Commons CSV'
  1. Commons CSV
  2. CSV-150

Escaping is not disableable

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.1
    • Fix Version/s: Review
    • Component/s: Parser
    • Labels:
      None

      Description

      Problem

      If escaping is disabled the Lexer maps the NULL Character to the magic char '\ufffe'. I currently hit this char randomly with data. This leads to a RuntimeException inside of org.apache.commons.csv.Lexer.parseEncapsulatedToken(Token) with the message "invalid char between encapsulated token and delimiter".

      Solution

      Don't map the Character object and use it.

      Lexer.java
          Lexer(final CSVFormat format, final ExtendedBufferedReader reader) {
              this.reader = reader;
              this.delimiter = format.getDelimiter();
              this.escape = format.getEscapeCharacter();
              .
              .
              .
          }
      
          boolean isEscape(final int ch) {
              return null != this.escape && escape.charValue() == ch;
          }
      
      Hint

      This pattern is used in other cases to. It seem to be a systematic error. This cases should be refactored also.

        Attachments

        1. CSV-150.patch
          2 kB
          Georg Tsakumagos

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              geo Georg Tsakumagos
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: