Hi

Is there any specific reason for not removing any successful action from the action list.

In Method of class org.hibernate.engine.ActionQueue

    private void executeActions(List list) throws HibernateException {
        int size = list.size();
        for ( int i = 0; i < size; i++ ) {
            execute( (Executable) list.get(i) );
        }
        list.clear();
        session.getBatcher().executeBatch();
    }

Why is list being cleared in one go rather then removing after every action. something like this


    private void executeActions(List list) throws HibernateException {
       for(Iterator actionIter = list.iterator();actionIter.hasNext();){
              execute( (Executable) actionIter .next());
              actionIter.remove();
        }
        session.getBatcher().executeBatch();
    }


Reasons i am facing issues due to this is following:

For Example in ActionQueue i have three  EntityUpdateAction and my Entity is versioned
 
and my 3rd EntityUpdateAction Fails and say i can recover from this failure programmatically and i try to flush again. This time even my first Action will fail as it would have already updated Version No.

And even theoretically why will i want to retry a Successful Action.

I think after action is successfully executed it should be removed from the list.

Regards
Pavitar
 

--
Pavitar Singh
Blog: http://blog.webscale.co.in