}
private void processQueuedMethodCalls(List queue) throws Throwable
{
Map gtxMap = new HashMap();
JBCMethodCall call = null;
JBCMethodCall wrapped = null;
for (Iterator iter = queue.iterator(); iter.hasNext();)
{
call = (JBCMethodCall) iter.next();
boolean forgive = false;
if (call.getMethodId() == MethodDeclarations.replicateMethod_id)
{
Object[] args = call.getArgs();
wrapped = (JBCMethodCall) args[0];
switch (wrapped.getMethodId())
{
case MethodDeclarations.prepareMethod_id:
args = wrapped.getArgs();
gtxMap.put(args[0], NULL);
break;
case MethodDeclarations.commitMethod_id:
case MethodDeclarations.rollbackMethod_id:
args = wrapped.getArgs();
// If we didn't see the prepare earlier, we'll forgive
// any error when we invoke the commit/rollback
// TODO maybe just skip the commit/rollback?
// forgive = (gtxMap.remove(args[0]) == null);
if (gtxMap.remove(args[0]) == null)