Uploaded image for project: 'MariaDB Connector/J'
  1. MariaDB Connector/J
  2. CONJ-479

ArrayIndexOutOfBoundsException on connect to MySQL 5.1.73

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 2.0.1
    • 1.6.1, 2.0.2
    • Other
    • None

    Description

      MariaDB Connector/J 2.0.1 is unable to connect to a MySQL 5.1.73 server. In Java 8, attempting to connect like this:

      try (Connection c = DriverManager.getConnection(url, user, new String(password))) {
        System.out.printf("Connection class:%n%s%n", c.getClass().getName());
      }
      

      where url is something like this:

      "jdbc:mariadb://my.host.name:3306/MYDB"
      

      results in the following stack trace:

      Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
      	at org.mariadb.jdbc.internal.com.read.resultset.SelectResultSet.readNextValue(SelectResultSet.java:481)
      	at org.mariadb.jdbc.internal.com.read.resultset.SelectResultSet.fetchAllResults(SelectResultSet.java:338)
      	at org.mariadb.jdbc.internal.com.read.resultset.SelectResultSet.<init>(SelectResultSet.java:209)
      	at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readResultSet(AbstractQueryProtocol.java:1273)
      	at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1033)
      	at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:982)
      	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.readRequestSessionVariables(AbstractConnectProtocol.java:498)
      	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.readPipelineAdditionalData(AbstractConnectProtocol.java:544)
      	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:410)
      	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1013)
      	at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:481)
      	at org.mariadb.jdbc.Driver.connect(Driver.java:103)
      	at java.sql.DriverManager.getConnection(DriverManager.java:664)
      	at java.sql.DriverManager.getConnection(DriverManager.java:247)
      	at Main.main(Main.java:16)
      

      This issue was initially a question.

      Attachments

        Activity

          jlmuir J. Lewis Muir created issue -
          diego dupin Diego Dupin made changes -
          Field Original Value New Value
          Fix Version/s 2.0.2 [ 22551 ]
          diego dupin Diego Dupin made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          diego dupin Diego Dupin added a comment -

          Issue confirmed.
          Since in MySQL 5.1 capabilities rely only on 2 bytes, 2 to 4 bytes capabilities are set to 0xFFFF, not to 0x0000.
          This cause an issue with resultset because driver think that EOF_PACKET is deprecated, but server still send it.

          diego dupin Diego Dupin added a comment - Issue confirmed. Since in MySQL 5.1 capabilities rely only on 2 bytes, 2 to 4 bytes capabilities are set to 0xFFFF, not to 0x0000. This cause an issue with resultset because driver think that EOF_PACKET is deprecated, but server still send it.
          diego dupin Diego Dupin added a comment - - edited

          correction SNAPSHOT is available using :

          <repositories>
              <repository>
                  <id>sonatype-nexus-snapshots</id>
                  <name>Sonatype Nexus Snapshots</name>
                  <url>https://oss.sonatype.org/content/repositories/snapshots</url>
              </repository>
          </repositories>
           
          <dependencies>
              <dependency>
                  <groupId>org.mariadb.jdbc</groupId>
                  <artifactId>mariadb-java-client</artifactId>
                  <version>2.0.2-SNAPSHOT</version>
              </dependency>
          </dependencies>
          
          

          or download directly from maven repo : https://oss.sonatype.org/content/repositories/snapshots/org/mariadb/jdbc/mariadb-java-client/2.0.2-SNAPSHOT/

          diego dupin Diego Dupin added a comment - - edited correction SNAPSHOT is available using : <repositories> <repository> <id>sonatype-nexus-snapshots</id> <name>Sonatype Nexus Snapshots</name> <url>https: //oss.sonatype.org/content/repositories/snapshots</url> </repository> </repositories>   <dependencies> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> <version> 2.0 . 2 -SNAPSHOT</version> </dependency> </dependencies> or download directly from maven repo : https://oss.sonatype.org/content/repositories/snapshots/org/mariadb/jdbc/mariadb-java-client/2.0.2-SNAPSHOT/
          diego dupin Diego Dupin made changes -
          Fix Version/s 1.6.1 [ 22550 ]
          diego dupin Diego Dupin made changes -
          Component/s Other [ 12201 ]
          Resolution Fixed [ 1 ]
          Status In Progress [ 3 ] Closed [ 6 ]
          jlmuir J. Lewis Muir added a comment -

          Thank you! I confirm that 2.0.2-SNAPSHOT fixes the problem!

          jlmuir J. Lewis Muir added a comment - Thank you! I confirm that 2.0.2-SNAPSHOT fixes the problem!
          diego dupin Diego Dupin added a comment -

          for information this concern only MySQL/MariaDB 5.1

          diego dupin Diego Dupin added a comment - for information this concern only MySQL/MariaDB 5.1
          serg Sergei Golubchik made changes -
          Workflow MariaDB v3 [ 80971 ] MariaDB v4 [ 134984 ]

          People

            diego dupin Diego Dupin
            jlmuir J. Lewis Muir
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.