Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-2798

Connection.isClosed throws NullPointerException or returns false after close

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 5.5.0.Final
    • 5.4.0.Final
    • None
    • None

      The following snippet fails with a NullPointerException:

      Connection c = ConnectionManager.create(dbUrl, properties);
      System.err.println("closed1=" + c.isClosed());
      c.close();
      System.err.println("closed2=" + c.isClosed());
      

      output:

      closed1=false
      java.lang.NullPointerException
      	at com.arjuna.ats.internal.jdbc.ConnectionImple.closeImpl(ConnectionImple.java:389)
      	at com.arjuna.ats.internal.jdbc.ConnectionImple.close(ConnectionImple.java:381)
      	at org.jboss.narayana.quickstarts.jta.Main.main(Main.java:140)
      

      If it is modified to "use" the init the physical connect before closing, it will not throw an
      exception, but returns false for isClosed after the close:

      Connection c = ConnectionManager.create(dbUrl, properties);
      System.err.println("closed1=" + c.isClosed());
      c.createStatement().close();
      System.err.println("closed2=" + c.isClosed());
      c.close();
      System.err.println("closed3=" + c.isClosed());
      

      output:

      closed1=false
      closed2=false
      closed3=false
      

              Unassigned Unassigned
              pms11 Mirko Streckenbach (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: