clean up queries in HLargeData are too broad
--------------------------------------------

                 Key: ODE-671
                 URL: https://issues.apache.org/jira/browse/ODE-671
             Project: ODE
          Issue Type: Bug
            Reporter: Alexis Midon


(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 



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to