Uploaded image for project: 'ODE'
  1. ODE
  2. ODE-671

clean up queries in HLargeData are too broad

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.3.4, 2.0-beta3
    • None
    • None

    Description

      (Regression presumably introduced by ODE-641)

      The clean up queries executed in ProcessDaoImpl#deleteMessages might return some null values. These null values are then used in a IN operator, which Derby does not like at all. The query hangs on for ever, no timeout, no warning, nothing.

      For instance:

      deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MEX_LDATA_IDS_BY_INSTANCES_1).setParameterList("instances", instances).list());

      a. HLargeData#SELECT_MEX_LDATA_IDS_BY_INSTANCES_1 = select m.messageData.id from HMessage m where m.messageExchange.instance in (:instances)
      This returns a list of null values
      b. deleteByIds executes: delete HLargeData where id in(null, null, null), which hangs on for ever.

      The fix is to add a 'is not null' clause in a.

      I used the following Derby properties to gather information.

      -Dderby.drda.traceAll=true -Dderby.locks.monitor=true -Dderby.language.logStatementText=true -Dderby.stream.error.field=java.lang.System.err -Dderby.stream.error.logSeverityLevel=0 -Dderby.locks.deadlockTimeout=3

      Attachments

        Issue Links

          Activity

            People

              rrusin Rafal Rusin
              alexismidon Alexis Midon
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: