title: OpenCSV runtime error NoClassDefFoundError: java/sql/Date
body: <p>I'm trying to read a CSV file into a Bean.  Everything compiles without issue, but when I run, I get the below Exception. </p>
  
  <p>I don't think it's an issue with the code, most likely with one of the libraries that Apache is using.  I had a Date (java util) in the original class, but converted it to string just to see if that was the issue.  I even switched the project to Maven and added the opencsv dependency just to make sure I was getting the correct dependencies.  No luck... I did the google search and found that the issue was fixed at some point, but I'm not sure how to get the right code in place...</p>
  
  <p><a href="https://issues.jenkins-ci.org/browse/JENKINS-54355?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel" rel="nofollow noreferrer">ClassNotFound: java.sql.Date in JDK 11 in Pipeline Utility Steps</a></p>
  
  <blockquote>
    <p>Exception in thread "main" java.lang.NoClassDefFoundError:
    java/sql/Date     at
    org.apache.commons.beanutils.ConvertUtilsBean.registerOther(ConvertUtilsBean.java:730)
      at
    org.apache.commons.beanutils.ConvertUtilsBean.deregister(ConvertUtilsBean.java:602)
      at
    org.apache.commons.beanutils.ConvertUtilsBean.(ConvertUtilsBean.java:161)
      at
    opencsv@4.6/com.opencsv.bean.ConverterPrimitiveTypes.(ConverterPrimitiveTypes.java:66)
      at
    opencsv@4.6/com.opencsv.bean.AbstractMappingStrategy.determineConverter(AbstractMappingStrategy.java:608)
      at
    opencsv@4.6/com.opencsv.bean.HeaderColumnNameMappingStrategy.loadFieldMap(HeaderColumnNameMappingStrategy.java:214)
      at
    opencsv@4.6/com.opencsv.bean.AbstractMappingStrategy.setType(AbstractMappingStrategy.java:358)</p>
    
    <p>** snip**</p>
  </blockquote>
  
  <pre><code>import com.opencsv.bean.CsvBindByName;
  
  public class OpenBail {
      @CsvBindByName
      private String CourtCaseNumber;
  
      @CsvBindByName
      private String CourtBranch;
  
      @CsvBindByName
      private String EntityName;
  
      @CsvBindByName
      private String ReceivedDate;
  
      @CsvBindByName
      private String PlaintiffTitle;
  
      @CsvBindByName
      private String DefendantTitle;
  
      @CsvBindByName
      private String ReceiptNumber;
  
      @CsvBindByName
      private String ReceiptEntityName;
  
      @CsvBindByName
      private String RoleTypeDesc;
  
      @CsvBindByName
      private String ActionStatusDesc;
  
      @CsvBindByName
      private String ActionTypeDesc;
  
      @CsvBindByName
      private String Address1;
  
      @CsvBindByName
      private String Address2;
  
      @CsvBindByName
      private String Address3;
  
      @CsvBindByName
      private String City;
  
      @CsvBindByName
      private String StateCode;
  
      @CsvBindByName
      private String ZipCode;
  
      @CsvBindByName
      private int OriginalAmount;
  
      @CsvBindByName
      private boolean isValidUSPS;
  
      @CsvBindByName
      private String USPSAddress1;
  
      @CsvBindByName
      private String USPSAddress2;
  
      @CsvBindByName
      private String USPSAddress3;
  
      @CsvBindByName
      private String USPSCity;
  
      @CsvBindByName
      private String USPSStateCode;
  
      @CsvBindByName
      private String USPSZipCode;
  
  // Removed Getter's and Setter's 
  }
  </code></pre>
  
  <p>// Calling Code method</p>
  
  <pre><code>public static List&lt;OpenBail&gt; readOpenBailFile(String openBailFile){
  Path myPath = Paths.get(openBailFile);
  
  try (BufferedReader br = Files.newBufferedReader(myPath, StandardCharsets.UTF_8)) {
  
      HeaderColumnNameMappingStrategy&lt;OpenBail&gt; strategy = new HeaderColumnNameMappingStrategy&lt;OpenBail&gt;();
      strategy.setType(OpenBail.class);
  
          CsvToBean&lt;OpenBail&gt; csvToBean = new CsvToBeanBuilder&lt;OpenBail&gt;(br)
                  .withType(OpenBail.class)
                  .withMappingStrategy(strategy)
                  .withIgnoreLeadingWhiteSpace(true)
                  .build();
  
          List&lt;OpenBail&gt; openBailList = csvToBean.parse();
  
          return openBailList;
  
      } catch (IOException e) {
          System.err.println(e.getMessage() + "Caused By: " + e.getCause());
          return null;
      } 
  }
  </code></pre>