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

Escaping is not disableable

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.1
    • Review
    • Parser
    • 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

        Issue Links

          Activity

            People

              Unassigned Unassigned
              geo Georg Tsakumagos
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 10m
                  1h 10m