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

Nullpointer-Exception in Select-Statement

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 1.5.6
    • 1.5.7
    • Other
    • None
    • Windows 10 version 10.0 running on amd64; Cp1252; en_US (nb)
      Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
      NetBeans IDE 8.2 (Build 201609300101)

    Description

      The following statement on a remote database throws the shown exception:

      use s12db1;
      select * from machines;

      Exception shown in Netbeans Notifications:

      java.lang.NullPointerException
      at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.close(MariaSelectResultSet.java:483)
      at org.netbeans.modules.db.dataview.util.DataViewUtils.closeResources(DataViewUtils.java:195)
      at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.getForeignKeys(DBMetaDataFactory.java:179)
      at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.checkForeignKeys(DBMetaDataFactory.java:408)
      at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.postprocessTables(DBMetaDataFactory.java:320)
      [catch] at org.netbeans.modules.db.dataview.output.SQLExecutionHelper$1Loader.run(SQLExecutionHelper.java:174)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443)
      at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68)
      at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303)
      at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058)

      Error does not occur in version 1.5.5.

      Attachments

        Issue Links

          Activity

            schrotti12 Andreas Gottardi created issue -
            schrotti12 Andreas Gottardi made changes -
            Field Original Value New Value
            Description The following statement on a remote database throws the shown exception:
            {{use s12db1;
            select * from machines;}}
            Exception shown in Netbeans Notifications:
            {{java.lang.NullPointerException
            at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.close(MariaSelectResultSet.java:483)
            at org.netbeans.modules.db.dataview.util.DataViewUtils.closeResources(DataViewUtils.java:195)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.getForeignKeys(DBMetaDataFactory.java:179)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.checkForeignKeys(DBMetaDataFactory.java:408)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.postprocessTables(DBMetaDataFactory.java:320)
            [catch] at org.netbeans.modules.db.dataview.output.SQLExecutionHelper$1Loader.run(SQLExecutionHelper.java:174)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443)
            at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68)
            at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303)
            at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058)}}
            Error does not occur in version 1.5.5.
            The following statement on a remote database throws the shown exception:

            use s12db1;
            select * from machines;

            Exception shown in Netbeans Notifications:

            java.lang.NullPointerException
            at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.close(MariaSelectResultSet.java:483)
            at org.netbeans.modules.db.dataview.util.DataViewUtils.closeResources(DataViewUtils.java:195)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.getForeignKeys(DBMetaDataFactory.java:179)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.checkForeignKeys(DBMetaDataFactory.java:408)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.postprocessTables(DBMetaDataFactory.java:320)
            [catch] at org.netbeans.modules.db.dataview.output.SQLExecutionHelper$1Loader.run(SQLExecutionHelper.java:174)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443)
            at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68)
            at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303)
            at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058)
            Error does not occur in version 1.5.5.
            schrotti12 Andreas Gottardi made changes -
            Description The following statement on a remote database throws the shown exception:

            use s12db1;
            select * from machines;

            Exception shown in Netbeans Notifications:

            java.lang.NullPointerException
            at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.close(MariaSelectResultSet.java:483)
            at org.netbeans.modules.db.dataview.util.DataViewUtils.closeResources(DataViewUtils.java:195)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.getForeignKeys(DBMetaDataFactory.java:179)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.checkForeignKeys(DBMetaDataFactory.java:408)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.postprocessTables(DBMetaDataFactory.java:320)
            [catch] at org.netbeans.modules.db.dataview.output.SQLExecutionHelper$1Loader.run(SQLExecutionHelper.java:174)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443)
            at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68)
            at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303)
            at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058)
            Error does not occur in version 1.5.5.
            The following statement on a remote database throws the shown exception:

            use s12db1;
            select * from machines;

            Exception shown in Netbeans Notifications:

            java.lang.NullPointerException
            at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.close(MariaSelectResultSet.java:483)
            at org.netbeans.modules.db.dataview.util.DataViewUtils.closeResources(DataViewUtils.java:195)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.getForeignKeys(DBMetaDataFactory.java:179)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.checkForeignKeys(DBMetaDataFactory.java:408)
            at org.netbeans.modules.db.dataview.meta.DBMetaDataFactory.postprocessTables(DBMetaDataFactory.java:320)
            [catch] at org.netbeans.modules.db.dataview.output.SQLExecutionHelper$1Loader.run(SQLExecutionHelper.java:174)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1443)
            at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:68)
            at org.openide.util.lookup.Lookups.executeWith(Lookups.java:303)
            at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2058)

            Error does not occur in version 1.5.5.
            padakwaak Chris Kistner added a comment - - edited

            We're getting the NullPointerException at the same line with our webapp, but our stacktrace is quite different:

            java.lang.NullPointerException
                    at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.close(MariaSelectResultSet.java:483)
                    at org.hibernate.engine.jdbc.internal.TypeInfoExtracter.extractTypeInfo(TypeInfoExtracter.java:85)
                    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:144)
                    at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:85)
                    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:184)
                    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:156)
                    at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1827)
                    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1785)
                    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
                    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
                    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:900)
                    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59)
                    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
                    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
                    at com.google.inject.persist.jpa.JpaPersistService.start(JpaPersistService.java:94)
                    at com.company.di.GuiceBootstrap.contextInitialized(GuiceBootstrap.java:48)
                    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5118)
                    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5634)
                    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
                    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
                    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
                    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
                    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)
                    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984)
                    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
                    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
                    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
                    at java.lang.Thread.run(Thread.java:745)
            

            Our environment is as follow:

            • CentOS 6.6 x64
            • OpenJDK 1.7.0_75 (rhel-2.5.4.0.el6_6-x86_64 u75-b13)
            • Apache Tomcat 7.0.72
            • Webapp maven dependencies: guice-persist-3.0, hibernate-entitymanager-4.2.21.Final, hibernate-core-4.2.21.Final, hibernate-jpa-2.0-api-1.0.1.Final

            Version 1.5.5 and 1.4.6 does not have this issue.

            padakwaak Chris Kistner added a comment - - edited We're getting the NullPointerException at the same line with our webapp, but our stacktrace is quite different: java.lang.NullPointerException at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.close(MariaSelectResultSet.java:483) at org.hibernate.engine.jdbc.internal.TypeInfoExtracter.extractTypeInfo(TypeInfoExtracter.java:85) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:144) at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:85) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:184) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:156) at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1827) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1785) at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:900) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) at com.google.inject.persist.jpa.JpaPersistService.start(JpaPersistService.java:94) at com.company.di.GuiceBootstrap.contextInitialized(GuiceBootstrap.java:48) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5118) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5634) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Our environment is as follow: CentOS 6.6 x64 OpenJDK 1.7.0_75 (rhel-2.5.4.0.el6_6-x86_64 u75-b13) Apache Tomcat 7.0.72 Webapp maven dependencies: guice-persist-3.0, hibernate-entitymanager-4.2.21.Final, hibernate-core-4.2.21.Final, hibernate-jpa-2.0-api-1.0.1.Final Version 1.5.5 and 1.4.6 does not have this issue.
            diego dupin Diego Dupin made changes -
            Fix Version/s 1.5.7 [ 22500 ]
            rjstanford Richard Stanford added a comment - - edited

            We are able to trigger this when using JDBI to return generated keys:

            Caused by: java.lang.NullPointerException
            at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.close(MariaSelectResultSet.java:483)
            at org.skife.jdbi.v2.Cleanables$ResultSetCleanable.cleanup(Cleanables.java:65)
            at org.skife.jdbi.v2.BaseStatement$StatementCleaningCustomizer.cleanup(BaseStatement.java:126)
            at org.skife.jdbi.v2.BaseStatement.cleanup(BaseStatement.java:101)
            at org.skife.jdbi.v2.GeneratedKeys.first(GeneratedKeys.java:84)
            .....

            Tracing through, it appears that the generated keys are returned successfully, no exceptions are thrown, but packetFetcher is indeed null in:

            Buffer buffer = packetFetcher.getReusableBuffer();

            I can also confirm that this issue does not appear in 1.5.5

            The particular datatype of the incremented key is a BIGINT(20) in case that makes a difference. Once the row is inserted, SELECTing the row works as expected even in 1.5.6.

            rjstanford Richard Stanford added a comment - - edited We are able to trigger this when using JDBI to return generated keys: Caused by: java.lang.NullPointerException at org.mariadb.jdbc.internal.queryresults.resultset.MariaSelectResultSet.close(MariaSelectResultSet.java:483) at org.skife.jdbi.v2.Cleanables$ResultSetCleanable.cleanup(Cleanables.java:65) at org.skife.jdbi.v2.BaseStatement$StatementCleaningCustomizer.cleanup(BaseStatement.java:126) at org.skife.jdbi.v2.BaseStatement.cleanup(BaseStatement.java:101) at org.skife.jdbi.v2.GeneratedKeys.first(GeneratedKeys.java:84) ..... Tracing through, it appears that the generated keys are returned successfully, no exceptions are thrown, but packetFetcher is indeed null in: Buffer buffer = packetFetcher.getReusableBuffer(); I can also confirm that this issue does not appear in 1.5.5 The particular datatype of the incremented key is a BIGINT(20) in case that makes a difference. Once the row is inserted, SELECTing the row works as expected even in 1.5.6.
            diego dupin Diego Dupin made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            diego dupin Diego Dupin made changes -
            Priority Minor [ 4 ] Major [ 3 ]
            diego dupin Diego Dupin made changes -
            diego dupin Diego Dupin made changes -
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Closed [ 6 ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 78910 ] MariaDB v4 [ 134938 ]

            People

              diego dupin Diego Dupin
              schrotti12 Andreas Gottardi
              Votes:
              3 Vote for this issue
              Watchers:
              4 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.