/** * Called when all required finish messages are received, * send ACK message to complete operation futures on all nodes. * * @param opId Operation ID. * @param err Error. */ private void onFinishOperation(IgniteUuid opId, IgniteCheckedException err) { try { UserAcceptedMessage msg = new UserAcceptedMessage(opId, err); ctx.discovery().sendCustomEvent(msg); } catch (IgniteCheckedException e) { if (!e.hasCause(IgniteFutureCancelledException.class)) U.error(log, "Unexpected exception on send UserAcceptedMessage.", e); } }
/** {@inheritDoc} */ @Override public void onCustomEvent(AffinityTopologyVersion topVer, ClusterNode snd, UserAcceptedMessage msg) { if (!isEnabled || ctx.isStopping()) return; if (log.isDebugEnabled()) log.debug(msg.toString()); synchronized (mux) { UserOperationFinishFuture f = opFinishFuts.get(msg.operationId()); if (f != null) { if (msg.error() != null) f.onDone(null, msg.error()); else f.onDone(); } } } }
/** {@inheritDoc} */ @Override public void onCustomEvent(AffinityTopologyVersion topVer, ClusterNode snd, UserAcceptedMessage msg) { if (!isEnabled || ctx.isStopping()) return; if (log.isDebugEnabled()) log.debug(msg.toString()); synchronized (mux) { UserOperationFinishFuture f = opFinishFuts.get(msg.operationId()); if (f != null) { if (msg.error() != null) f.onDone(null, msg.error()); else f.onDone(); } } } }
/** * Called when all required finish messages are received, * send ACK message to complete operation futures on all nodes. * * @param opId Operation ID. * @param err Error. */ private void onFinishOperation(IgniteUuid opId, IgniteCheckedException err) { try { UserAcceptedMessage msg = new UserAcceptedMessage(opId, err); ctx.discovery().sendCustomEvent(msg); } catch (IgniteCheckedException e) { if (!e.hasCause(IgniteFutureCancelledException.class)) U.error(log, "Unexpected exception on send UserAcceptedMessage.", e); } }