public boolean timeoutMsg() { for (int i = 0; i < targetActors.size(); i++) { ActorReference target = (ActorReference) targetActors.get(i); String messageId = (String) targetMessages.get(i); Integer position = (Integer) targetPositions.get(i); /** * If the value is a large object, it isn't required to be sent if this token is being used * for synchronization. We can send null instead. */ Object[] arguments = new Object[3]; arguments[0] = messageId; arguments[1] = position; Object[] ret = new Object[index]; System.arraycopy(values, 0, ret, 0, index); if (position.intValue() == -3) arguments[2] = null; else arguments[2] = ret; Message data = new Message( ((JoinDirector) self), target, "resolveToken", arguments, null, null, false); target.send(data); } this.ServiceDie(); return true; }