Skip to content

fixes BUG-53779: RO pool is never closed by IE threads

Description

If a process executed in an import entry used the RO pool, the connection was not being closed properly by the infrastructure under some circumstances.

We had different scenarios depending on the process being executed in the import entry thread:

  • If the process executed was a blocking EDL process, the RO pool session was being always closed because the postProcessEntry method was invoked using the SessionHandler that had the reference to the open session.

  • If the process executed in the import entry was a non-blocking EDL process, the RO pool session was NOT being closed because the postProcessEntry method used a SessionHandler which do not have the reference to the open session, because it was invoked by a different thread.

  • If the process was not an EDL process, the RO pool was being closed in case the process was executed without errors. If the process failed, the RO pool session was not being closed.

Now we fix the two scenarios where the session was not being closed.

Note that for the case of a successful execution we now use DalThreadCleaner().getInstance.cleanWithCommit() method for consistency and to avoid some small code duplicity.

Merge request reports