private void processMethodExitEvent(MethodExitEvent event) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("<- " + event.method());
    }
    try {
      if (myEntryMethod != null) {
        // first check declaring type to avoid method calculation in some cases
        if (myEntryMethod.declaringType().equals(event.location().declaringType()) && myEntryMethod.equals(event.method())) {
          LOG.debug("Now watching all");
          enableEntryWatching(true);
          myEntryMethod = null;
          DebuggerUtilsAsync.setEnabled(createExitRequest(), true);
        }
        else {
          return;
        }
      }
      final Method method = event.method();
      final Value retVal = event.returnValue();

      if (method == null || !DebuggerUtilsEx.isVoid(method)) {
        // remember methods with non-void return types only
        myLastExecutedMethod = method;
        myLastMethodReturnValue = retVal;
      }
    }
    catch (UnsupportedOperationException ex) {
      LOG.error(ex);
    }
  }
private void processMethodExitEvent(MethodExitEvent event)