private void processFragmentResponseDependencies(FragmentResponseMessage response) { int depCount = response.getTableCount(); for (int i = 0; i < depCount; i++) { int dependencyId = response.getTableDependencyIdAtIndex(i); VoltTable payload = response.getTableAtIndex(i); assert (payload != null); // if we're getting a dependency, i hope we know about it assert (m_missingDependencies != null); WorkUnit w = m_missingDependencies.get(dependencyId); if (w == null) { String msg = "Unable to find WorkUnit for dependency: " + dependencyId + " as part of TXN: " + txnId + " received from execution site: " + response.getExecutorSiteId(); hostLog.warn(msg); // throw new FragmentFailureException(); return; } // if the node is recovering, it doesn't matter if the payload matches if (response.isRecovering()) { w.putDummyDependency(dependencyId, response.getExecutorSiteId()); } else { w.putDependency( dependencyId, response.getExecutorSiteId(), payload, m_site.getSiteTracker()); } if (w.allDependenciesSatisfied()) { handleWorkUnitComplete(w); } } }