예제 #1
0
 @Override
 public void enter(Node node, VirtualFrame frame) {
   this.probe.checkProbeUnchanged();
   final BeforeTagInstrument beforeTagInstrument = probe.getBeforeTagInstrument();
   if (beforeTagInstrument != null) {
     beforeTagInstrument
         .getListener()
         .onEnter(probe, ((WrapperNode) this.getParent()).getChild(), frame);
   }
   if (firstInstrumentNode != null) {
     firstInstrumentNode.enter(node, frame);
   }
 }
예제 #2
0
 @Override
 public void returnVoid(Node node, VirtualFrame frame) {
   this.probe.checkProbeUnchanged();
   if (firstInstrumentNode != null) {
     firstInstrumentNode.returnVoid(node, frame);
   }
   final AfterTagInstrument afterTagInstrument = probe.getAfterTagInstrument();
   if (afterTagInstrument != null) {
     afterTagInstrument
         .getListener()
         .onReturnVoid(probe, ((WrapperNode) this.getParent()).getChild(), frame);
   }
 }
예제 #3
0
 @Override
 public void returnExceptional(Node node, VirtualFrame frame, Throwable exception) {
   if (exception instanceof KillException) {
     throw (KillException) exception;
   }
   if (exception instanceof QuitException) {
     throw (QuitException) exception;
   }
   this.probe.checkProbeUnchanged();
   if (firstInstrumentNode != null) {
     firstInstrumentNode.returnExceptional(node, frame, exception);
   }
   final AfterTagInstrument afterTagInstrument = probe.getAfterTagInstrument();
   if (afterTagInstrument != null) {
     afterTagInstrument
         .getListener()
         .onReturnExceptional(
             probe, ((WrapperNode) this.getParent()).getChild(), frame, exception);
   }
 }