1. Derby
  2. DERBY-4334

Invoking certain methods on PreparedStatements after the underlying connection changed forces repreparing


    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s:
    • Fix Version/s: None
    • Component/s: JDBC
    • Urgency:
    • Issue & fix info:
      Repro attached


      Whenever we invoke methods like isClosed() or getMetaData() on prepared or callable statements after the underlying connection changed, these methods will try to reprepare the statement. This becomes an issue if in the meanwhile, the query became obsolete (e.g. querying a table that was dropped in the meanwhile).

      For example, if we start a transaction and prepare a statement with "SELECT * FROM FOO;" then drop FOO with a parallel regular connection and try to invoke the said methods on the statement, a repreparement will be attempted. Since FOO no longer exists, it will throw an exception.

      I fixed this issue on DERBY-4310 for the .close() calls on Prepared and Callable statements, but this will require more extensive work to convert the remaining methods that try to do a getRealStatement() on the XAStatementControl. I will be attaching a repro that pops this issue with the isClosed() call.

      The approach I used in DERBY-4310 was to add a couple of methods to XAStatementControl that act directly on the real statement object and close them right away, without attempting to reprepare.

        3 kB
        Tiago R. Espinha
        2 kB
        Tiago R. Espinha

        Issue Links


          Tiago R. Espinha created issue -
          Tiago R. Espinha made changes -
          Field Original Value New Value
          Attachment [ 12415391 ]
          Attachment [ 12415392 ]
          Tiago R. Espinha made changes -
          Link This issue relates to DERBY-4310 [ DERBY-4310 ]
          Kathey Marsden made changes -
          Labels derby_triage10_5_2
          Tiago R. Espinha made changes -
          Link This issue blocks DERBY-5091 [ DERBY-5091 ]
          Gavin made changes -
          Link This issue blocks DERBY-5091 [ DERBY-5091 ]
          Gavin made changes -
          Link This issue is depended upon by DERBY-5091 [ DERBY-5091 ]
          Gavin made changes -
          Workflow jira [ 12472218 ] Default workflow, editable Closed status [ 12802452 ]


            • Assignee:
              Tiago R. Espinha
            • Votes:
              0 Vote for this issue
              1 Start watching this issue


              • Created: