@Test public void verify_usable_stack_trace() { try { man.node("aa").exec(new ExceptionalRunnable()); } catch (Exception e) { e.printStackTrace(); ArithmeticException exception = (ArithmeticException) e; boolean found = false; for (StackTraceElement stackTraceElement : exception.getStackTrace()) { if (stackTraceElement.getClassName().equals(this.getClass().getName()) && stackTraceElement.getMethodName().equals("verify_usable_stack_trace")) { found = true; } } Assert.assertTrue("expected this method in stack trace", found); } }
@Override public synchronized ViNode node(String namePattern) { ensureAlive(); if (liveNodes.containsKey(namePattern)) { return liveNodes.get(namePattern); } else if (deadNodes.containsKey(namePattern)) { return deadNodes.get(namePattern); } else if (dynamicSelectors.containsKey(namePattern)){ return dynamicSelectors.get(namePattern); } else if (isPattern(namePattern)) { NodeSelector selector = new NodeSelector(namePattern); dynamicSelectors.put(namePattern, selector); return selector; } else { String name = namePattern; ManagedNode node = new ManagedNode(name); inferConfiguration(node); liveNodes.put(name, node); return node; } }
ViManager implements ViNodeSet { @Override public synchronized ViNode node(String namePattern) { ensureAlive(); if (liveNodes.containsKey(namePattern)) { return liveNodes.get(namePattern); } else if (deadNodes.containsKey(namePattern)) { return deadNodes.get(namePattern); } else if (dynamicSelectors.containsKey(namePattern)){ return dynamicSelectors.get(namePattern); } else if (isPattern(namePattern)) { NodeSelector selector = new NodeSelector(namePattern); dynamicSelectors.put(namePattern, selector); return selector; } else { String name = namePattern; ManagedNode node = new ManagedNode(name); inferConfiguration(node); liveNodes.put(name, node); return node; } } }
ViManager implements ViNodeSet { @Override public synchronized ViNode node(String namePattern) { ensureAlive(); if (liveNodes.containsKey(namePattern)) { return liveNodes.get(namePattern); } else if (deadNodes.containsKey(namePattern)) { return deadNodes.get(namePattern); } else if (dynamicSelectors.containsKey(namePattern)){ return dynamicSelectors.get(namePattern); } else if (isPattern(namePattern)) { NodeSelector selector = new NodeSelector(namePattern); dynamicSelectors.put(namePattern, selector); return selector; } else { String name = namePattern; ManagedNode node = new ManagedNode(name); inferConfiguration(node); liveNodes.put(name, node); return node; } } ViManager(ViNodeProvider provider);  ViManager(ViNodeProvider provider, int deferedTaskLimit); }
ViManager implements ViNodeSet { @Override public synchronized ViNode node(String namePattern) { ensureAlive(); if (liveNodes.containsKey(namePattern)) { return liveNodes.get(namePattern); } else if (deadNodes.containsKey(namePattern)) { return deadNodes.get(namePattern); } else if (dynamicSelectors.containsKey(namePattern)){ return dynamicSelectors.get(namePattern); } else if (isPattern(namePattern)) { NodeSelector selector = new NodeSelector(namePattern); dynamicSelectors.put(namePattern, selector); return selector; } else { String name = namePattern; ManagedNode node = new ManagedNode(name); inferConfiguration(node); liveNodes.put(name, node); return node; } } ViManager(ViNodeProvider provider);  ViManager(ViNodeProvider provider, int deferedTaskLimit); ViNodeProvider getProvider(); @Override synchronized ViNode node(String namePattern); ViNode nodes(String... patterns); @Override synchronized Collection<ViNode> listNodes(String namePattern); @Override void shutdown(); synchronized void resetDeadNode(); }
ViManager implements ViNodeSet { @Override public synchronized ViNode node(String namePattern) { ensureAlive(); if (liveNodes.containsKey(namePattern)) { return liveNodes.get(namePattern); } else if (deadNodes.containsKey(namePattern)) { return deadNodes.get(namePattern); } else if (dynamicSelectors.containsKey(namePattern)){ return dynamicSelectors.get(namePattern); } else if (isPattern(namePattern)) { NodeSelector selector = new NodeSelector(namePattern); dynamicSelectors.put(namePattern, selector); return selector; } else { String name = namePattern; ManagedNode node = new ManagedNode(name); inferConfiguration(node); liveNodes.put(name, node); return node; } } ViManager(ViNodeProvider provider);  ViManager(ViNodeProvider provider, int deferedTaskLimit); ViNodeProvider getProvider(); @Override synchronized ViNode node(String namePattern); ViNode nodes(String... patterns); @Override synchronized Collection<ViNode> listNodes(String namePattern); @Override void shutdown(); synchronized void resetDeadNode();  }