Package com.sun.jdi.event

Examples of com.sun.jdi.event.EventSet


    }

    // process events
    EventQueue eventQueue = vm.eventQueue();
    while (true) {
      EventSet eventSet = eventQueue.remove();
      for (Event event : eventSet) {
        if (event instanceof ClassPrepareEvent) {
          event.request().disable();
          installHaltPoint(vm);
        }
        if (event instanceof VMDeathEvent
            || event instanceof VMDisconnectEvent) {
          return null;
        }
        if (event instanceof BreakpointEvent) {
          event.request().disable();
          ThreadReference thread = ((BreakpointEvent) event).thread();
          return new VMRemoteTarget(process, vm, thread, debugPort);
        }
      }
      eventSet.resume();
    }
  }
View Full Code Here


  private void eventLoop() throws InterruptedException {
    System.out.println("eventLoop started");
    EventQueue eventQueue = vm.eventQueue();
    boolean isRunning = true;
    while (isRunning) {
      EventSet eventSet = eventQueue.remove();
      boolean mayResume = true;
      for (Event event : eventSet) {
        System.out.println(event);
        if (event instanceof VMDeathEvent
            || event instanceof VMDisconnectEvent) {
          isRunning = false;
        } else if (event instanceof ExceptionEvent) {
          mayResume = false;
        }
      }
      if (mayResume) eventSet.resume();
    }
  }
View Full Code Here

  public void run() {
    eventHandlingLoop:
    while (!this.interrupted) {
      try {
        EventSet es = this.vm.eventQueue().remove(2000);
        if (es != null) {
          for (Event event : es) {
            if (event instanceof VMStartEvent) {
              this.dispatcher.notifyObservers(new net.sf.rej.gui.event.Event(EventType.DEBUG_ATTACH));
              if (this.suspendOnStartup) {
View Full Code Here

      //TODO hacerle refactor a el codigo que escucha los eventos
      while(true)
        {
        resumir.clear();

        EventSet eventSet = queue.remove();
        EventIterator it = eventSet.eventIterator();
       
        //iniciar transacion
        JPAManager.getJPAManager().startTransaction();
       
        while(it.hasNext())
View Full Code Here

      while(true)
        {
        resumir.clear();
        System.out.println("Ciclo de eventos: " + ++ciclos);

        EventSet eventSet = queue.remove();
        /*while(eventSet==null)
          {
          for(ThreadReference tr : vm.allThreads())
            {
            System.out.println("\t" + tr.name() + ", " + tr.suspendCount() + ", " + tr.status());
            if(tr.isSuspended())
              tr.resume();
            }
          eventSet = queue.remove(1000);
          }
        System.out.println("suspendPolicy:" + eventSet.suspendPolicy() + ", " +  eventSet);*/
        EventIterator it = eventSet.eventIterator();
       
        JPAManager.getJPAManager().startTransaction();
        Boolean habilitarMethodEvents=null;
        int evento=0;
       
View Full Code Here

          Runtime.getRuntime().addShutdownHook(shutdownHook);
         
            boolean stop = false;
           
            do {
                EventSet eventSet = eventQueue.remove();
                long eventIniTime = System.currentTimeMillis();
                //int resumeVMtimes = 0;
                for(EventIterator i = eventSet.eventIterator(); i.hasNext(); ) {
                    Event evt = i.nextEvent();
                    if(evt instanceof ClassPrepareEvent) {
                        ClassPrepareEvent cpe = (ClassPrepareEvent) evt;
                        ReferenceType refType = cpe.referenceType();
                        logClazz.debug("Loading: " + refType.name() + " [cl:" + refType.classLoader()+"]");
                        loadClassDebug(refType, cpe.thread());
                    } else if(evt instanceof ClassUnloadEvent) {
                      ClassUnloadEvent cue = (ClassUnloadEvent) evt;
                      logClazz.debug("Unloading: " + cue.className());
                    } else if(evt instanceof ThreadStartEvent) {
                      ThreadStartEvent tse = (ThreadStartEvent) evt;
                      threadEventDebug(tse.thread(), "Thread Start");
                      //logThread.debug("Thread Start: " + tse.thread().name());
                    } else if(evt instanceof ThreadDeathEvent) {
                      ThreadDeathEvent tde = (ThreadDeathEvent) evt;
                      threadEventDebug(tde.thread(), "Thread Death");
                      //resumeVMtimes++;
                      //tde.virtualMachine().resume();
                      //logThread.debug("Thread Death: " + tde.thread().name());
                      //SuspendVMTimed svt = new SuspendVMTimed(tde.virtualMachine(), 1000);
                    } else if(evt instanceof ExceptionEvent) {
                      ExceptionEvent exe = (ExceptionEvent) evt;
                      exceptionEventDebug(exe);
                    } else if(evt instanceof VMDisconnectEvent) {
                      log.debug("VMDisconnectEvent!");
                      stop = true;
                    }
                }
                eventTime += (System.currentTimeMillis() - eventIniTime);
                //for(int i=0;i<resumeVMtimes;i++) {
                //  eventQueue.virtualMachine().resume();
                //}
              //resumeVMtimes = 0;
                eventSet.resume();
                //eventQueue.virtualMachine().resume();
            } while(!stop);
        }
        catch(Throwable oops) {
            oops.printStackTrace();
View Full Code Here

    public EventSet remove(long timeout) throws InterruptedException {
        if (timeout < 0) {
            throw new IllegalArgumentException("Timeout cannot be negative");
        }

        EventSet eventSet;
        while (true) {
            EventSetImpl fullEventSet = removeUnfiltered(timeout);
            if (fullEventSet == null) {
                eventSet = null// timeout
                break;
            }
            /*
             * Remove events from the event set for which
             * there is no corresponding enabled request (
             * this includes our internally requested events.)
             * This never returns null
             */
            eventSet = fullEventSet.userFilter();
            if (!eventSet.isEmpty()) {
                break;
            }
        }

        if ((eventSet != null) && (eventSet.suspendPolicy() == JDWP.SuspendPolicy.ALL)) {
            vm.notifySuspend();
        }

        return eventSet;
    }
View Full Code Here

        return eventSet;
    }

    EventSet removeInternal() throws InterruptedException {
        EventSet eventSet;
        do {
            // Waiting forever, so removeUnfiltered() is never null
            eventSet = removeUnfiltered(0).internalFilter();
        } while (eventSet == null || eventSet.isEmpty());

        /*
         * Currently, no internal events are requested with a suspend
         * policy other than none, so we don't check for notifySuspend()
         * here. If this changes in the future, there is much
View Full Code Here

     *
     * Instead the whole packet is passed for lazy eval by a queue
     * reading thread.
     */
    protected void handleEventCmdSet(Packet p) {
        EventSet eventSet = new EventSetImpl(vm, p);

        if (eventSet != null) {
            queueEventSet(eventSet);
        }
    }
View Full Code Here


    vm.resume();
    boolean connected = true;
    while (connected) {
      EventSet eventSet = eventQueue.remove();
      for (Event event : eventSet) {
        if (event instanceof VMDeathEvent
            || event instanceof VMDisconnectEvent) {
          // exit
          connected = false;
        } else if (event instanceof ClassPrepareEvent) {
          // watch field on loaded class
          System.out.println("ClassPrepareEvent");
          ClassPrepareEvent classPrepEvent = (ClassPrepareEvent) event;
          ReferenceType refType = classPrepEvent
              .referenceType();
          addFieldWatch(vm, refType);
        } else if (event instanceof ModificationWatchpointEvent) {
          System.out.println("sleep for 500 ms");
          Thread.sleep(500);
          System.out.println("resume...");

          ModificationWatchpointEvent modEvent = (ModificationWatchpointEvent) event;
          System.out.println("old="
              + modEvent.valueCurrent());
          System.out.println("new=" + modEvent.valueToBe());
          System.out.println();
        }
      }
      eventSet.resume();
    }
    // Shutdown begins when event thread terminates
    try {
        errThread.join(); // Make sure output is forwarded
        outThread.join();
View Full Code Here

TOP

Related Classes of com.sun.jdi.event.EventSet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.