Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-7751

CallableStatement leak in Sql.call() method

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.4.5
    • 2.4.7
    • SQL processing
    • None

    Description

      All Sql.call(...) methods ultimately delegate to Sql.callWithRows(...) method where we have:

      try {
          statement = connection.prepareCall(sql);
          // ...
      } finally {
          // ...
          closeResources(connection, statement);
      }
      

      The problem is that statement is unconditionally parsed and compiled each time, but the closeResources() method only closes it when statement caching is disabled. So with statement caching enabled we end up allocating and leaking a new CallableStatement instance per Sql.call() invocation.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            jwagenleitner John Wagenleitner
            avladykin Alexey Vladykin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment