Repository: asterixdb Updated Branches: refs/heads/master 29a34df5c -> 756daf5ca
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/756daf5c/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/integration/PredistributedJobsTest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/integration/PredistributedJobsTest.java b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/integration/PredistributedJobsTest.java index 4a01fdb..caba5f6 100644 --- a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/integration/PredistributedJobsTest.java +++ b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/integration/PredistributedJobsTest.java @@ -23,6 +23,7 @@ import static org.mockito.Matchers.any; import static org.mockito.Mockito.verify; import java.io.File; +import java.lang.reflect.Field; import java.util.logging.Level; import java.util.logging.Logger; @@ -32,6 +33,8 @@ import org.apache.hyracks.api.client.IHyracksClientConnection; import org.apache.hyracks.api.job.JobId; import org.apache.hyracks.api.job.JobSpecification; import org.apache.hyracks.control.cc.ClusterControllerService; +import org.apache.hyracks.control.cc.cluster.INodeManager; +import org.apache.hyracks.control.cc.cluster.NodeManager; import org.apache.hyracks.control.common.controllers.CCConfig; import org.apache.hyracks.control.common.controllers.NCConfig; import org.apache.hyracks.control.nc.NodeControllerService; @@ -69,9 +72,17 @@ public class PredistributedJobsTest { ccRoot.mkdir(); ccConfig.setRootDir(ccRoot.getAbsolutePath()); ClusterControllerService ccBase = new ClusterControllerService(ccConfig); + // The spying below is dangerous since it replaces the ClusterControllerService already referenced by many + // objects created in the constructor above cc = Mockito.spy(ccBase); cc.start(); + // The following code partially fixes the problem created by the spying + INodeManager nodeManager = cc.getNodeManager(); + Field ccsInNodeManager = NodeManager.class.getDeclaredField("ccs"); + ccsInNodeManager.setAccessible(true); + ccsInNodeManager.set(nodeManager, cc); + NCConfig ncConfig1 = new NCConfig(NC1_ID); ncConfig1.setClusterAddress("localhost"); ncConfig1.setClusterPort(39001); @@ -79,7 +90,7 @@ public class PredistributedJobsTest { ncConfig1.setDataListenAddress("127.0.0.1"); ncConfig1.setResultListenAddress("127.0.0.1"); ncConfig1.setResultSweepThreshold(5000); - ncConfig1.setIODevices(new String [] { joinPath(System.getProperty("user.dir"), "target", "data", "device0") }); + ncConfig1.setIODevices(new String[] { joinPath(System.getProperty("user.dir"), "target", "data", "device0") }); NodeControllerService nc1Base = new NodeControllerService(ncConfig1); nc1 = Mockito.spy(nc1Base); nc1.start(); @@ -91,7 +102,7 @@ public class PredistributedJobsTest { ncConfig2.setDataListenAddress("127.0.0.1"); ncConfig2.setResultListenAddress("127.0.0.1"); ncConfig2.setResultSweepThreshold(5000); - ncConfig2.setIODevices(new String [] { joinPath(System.getProperty("user.dir"), "target", "data", "device1") }); + ncConfig2.setIODevices(new String[] { joinPath(System.getProperty("user.dir"), "target", "data", "device1") }); NodeControllerService nc2Base = new NodeControllerService(ncConfig2); nc2 = Mockito.spy(nc2Base); nc2.start(); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/756daf5c/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/RPCInterface.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/RPCInterface.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/RPCInterface.java index aebe2f5..ba1c9a4 100644 --- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/RPCInterface.java +++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/api/RPCInterface.java @@ -27,7 +27,7 @@ public class RPCInterface implements IIPCI { private final Map<Long, Request> reqMap; public RPCInterface() { - reqMap = new HashMap<Long, RPCInterface.Request>(); + reqMap = new HashMap<>(); } public Object call(IIPCHandle handle, Object request) throws Exception {
