Package net.jini.core.event

Examples of net.jini.core.event.RemoteEvent


  try {
      EventLogIterator eli = reg.iterator();
            if (eli.hasNext()) {
                //TODO - configurable logic for determining initial batch size
                RemoteEventData[] evts = eli.readAhead(Integer.MAX_VALUE);
                RemoteEvent evt = null;
//TODO - try-catch around getRemoteEvent for CNFE? Send anyway?
                for (int i=0; i < evts.length; i++) {
                    evt = evts[i].getRemoteEvent();          
                    if (evt != null &&
                        !reg.getUnknownEvents().containsKey(new EventID(evt))) {
View Full Code Here


           
            do {
               if (eli.hasNext()) {
                    //TODO - configurable logic for determining initial batch size
                    RemoteEventData[] evts = eli.readAhead(Integer.MAX_VALUE);
                    RemoteEvent evt = null;
                    for (int i=0; i < evts.length; i++) {
                        try {
                            evt = evts[i].getRemoteEvent();          
                            if (evt != null &&
                                !reg.getUnknownEvents().containsKey(new EventID(evt))) {
View Full Code Here

      private RemoteEvent getNextEvent(ServiceRegistration reg) {
            if (operationsLogger.isLoggable(Level.FINER)) {
          operationsLogger.entering(notifyTaskSourceClass,
              "getNextEvent", reg);
      }
          RemoteEvent evt = null;
      try {
              if (reg.iterator().hasNext()) {
        try {
            evt =  (RemoteEvent)reg.iterator().next();
        } catch (IOException ioe) {
View Full Code Here

          boolean succeeded = false;           // attempt this task again?     
          boolean deleteEvent = false;         // delete the retrieved event?
          boolean doNotify = true;             // attempt notification?
          ServiceRegistration reg = null;      //
          RemoteEventListener listener = null; // event delivery target
      RemoteEvent ev = null;               // event to deliver

          if (deliveryLogger.isLoggable(Level.FINEST)) {
                deliveryLogger.log(Level.FINEST,
        "Attempting event delivery for: {0} at {1}",
            new Object[] {
                regID,
                new java.util.Date(System.currentTimeMillis())
            });
      }
   
            // Put an upper time limit on how long to keep
            // this task on the active list.  This prevents
            // slow/bad event recipients from monopolizing
            // a thread in the thread pool. This will not
            // prevent a "malicious" event recipient from
            // hanging up this thread if it never returns
            // from the notify() call.
      long curTime = System.currentTimeMillis();
          if (curTime - startTime() > MAX_TIME) {
    succeeded = true;
    deleteEvent = false;
              doNotify = false;
              if (deliveryLogger.isLoggable(Level.FINEST)) {
                    deliveryLogger.log(Level.FINEST,
            "Cancelling delivery due to time limit expiration.");
    }
      } else {
                // Get required delivery information
                concurrentObj.readLock();
          try {
              try {
                        // Note: the following method will throw a
                        // ThrowThis exception if the registration
                        // is invalid (i.e. expired or non-existent)
                        reg = getServiceRegistration(regID);
            listener = reg.getEventTarget();
            ev = getNextEvent(reg);
   
                        // Check to see if either the listener or the event
                        // is null. If so, skip the notify() call.
                        // If the event is not null, make an
                        // additional check to see if the event is on the
                        // unknown event list for this registration.
                        // If so, then skip the notify() call as well.
            if (listener == null) {
           succeeded = true;   // don't try again
                deleteEvent = false; // don't delete event
                doNotify = false;    // skip notify
          if (deliveryLogger.isLoggable(Level.FINEST)) {
                                deliveryLogger.log(Level.FINEST,
                        "Cancelling delivery because of disabled listener");
                }
             } else if (ev == null) {
                succeeded = true;    // don't try again
                // Note that if getNextEvent returned null
                // then there was a problem reading or extracting
                // the event. If so, the EventLog mechanism
                // wil have already advanced past the offending
                // event, so we don't have to remove it.
                deleteEvent = false;
                doNotify = false;    // skip notify
                          if (deliveryLogger.isLoggable(Level.FINEST)) {
                                deliveryLogger.log(Level.FINEST,
                        "Cancelling delivery because of null event");
          }
      } else if (ev != null &&
                 reg.getUnknownEvents().containsKey(
                     new EventID(ev))) {
          // If this event type caused an
          // UnknownEventException in the past, then
          // delete it since it likely do so again.
                succeeded = true;    // don't try again
                deleteEvent = true// delete event
                doNotify = false;    // skip notify
                          if (deliveryLogger.isLoggable(Level.FINEST)) {
                                deliveryLogger.log(Level.FINEST,
                        "Cancelling delivery because of unknown event");
          }
            }
        } catch (ThrowThis tt) { // reg was not valid ... skip it
                succeeded = true;        // don't try again
                deleteEvent = false;     // don't remove event
            doNotify = false;        // skip notify
                      if (deliveryLogger.isLoggable(Level.FINEST)) {
                            deliveryLogger.log(Level.FINEST,
                    "Cancelling delivery because of unknown registration");
      }
            }
          } finally {
                    concurrentObj.readUnlock();
          }
      } // end else
         
          // Important - don't hold any locks during a remote invocation
            if (doNotify) {
          if (deliveryLogger.isLoggable(Level.FINEST)) {
                    deliveryLogger.log(Level.FINEST,
            "Delivering evt: {0}, ID {1}, Seq# {2}",
                new Object[] {ev, new Long(ev.getID()),
                new Long(ev.getSequenceNumber())});
          }
    try {
        // Notify target listener and note a successful delivery
        listener.notify(ev);
        succeeded = true;
View Full Code Here

   
    public RemoteEvent getRemoteEvent() throws ClassNotFoundException {
        if (mi == null)
            throw new ClassNotFoundException(
                "Failed to create server-side remote event");
        RemoteEvent re = null;
        try {
            re = (RemoteEvent)mi.get(integrity);
        } catch (IOException ioe) {
            throw new ClassNotFoundException(
                "Failed to create client-side remote event", ioe);
View Full Code Here

  checkLease(mrl, REG_LEASE);

        // Get events and verify
  logger.log(Level.INFO, "Getting events from empty mailbox.");
        RemoteEventIterator rei = mr.getRemoteEvents();
        RemoteEvent rei_event;
        Date before = new Date();
  logger.log(Level.INFO, "Calling next() on empty set @ {0}", before);       
        try {
            rei_event = rei.next(REG_LEASE_WAIT);
            throw new TestException("Successfully called next on expired reg.");
View Full Code Here

        t.start();
       
        // Get events and verify
  logger.log(Level.INFO, "Getting events from empty mailbox.");
        RemoteEventIterator rei = mr.getRemoteEvents();
        RemoteEvent rei_event;
        Date before = new Date();
  logger.log(Level.INFO, "Calling next() on empty set @ {0}", before);       
        try {
            rei_event = rei.next(REG_LEASE_WAIT);
            throw new TestException("Successfully called next on invalid reg.");
View Full Code Here

        t.start();
       
        // Get events and verify
  logger.log(Level.INFO, "Getting events from empty mailbox.");
        RemoteEventIterator rei = mr.getRemoteEvents();
        RemoteEvent rei_event;
        Date before = new Date();
  logger.log(Level.INFO, "Calling next() on empty set @ {0}", before);       
        try {
            rei_event = rei.next(REG_LEASE_WAIT);
            throw new TestException("Successfully called next on invalid reg.");
View Full Code Here

        t.start();
       
        // Get events and verify
  logger.log(Level.INFO, "Getting events from empty mailbox.");
        RemoteEventIterator rei = mr.getRemoteEvents();
        RemoteEvent rei_event = null;
        Date before = new Date();
  logger.log(Level.INFO, "Calling next() on empty set @ {0}", before);
        try {
            rei_event = rei.next(MAX_WAIT_GET_EVENT);
            throw new TestException("Did not receive expected exception");
View Full Code Here

  TestListener badRel = TestUtils.createUEListener(manager);
  int goodRelCount = 0, badRelCount = 0;

  // Generate some events from both generators
  logger.log(Level.INFO, "Generating some events");
  RemoteEvent event = myGen.generateEvent(evtReg.getID(), 2);
  RemoteEvent event2 = myGen2.generateEvent(evtReg2.getID(), 2);
  goodRelCount += 2;

  RemoteEvent[] bogus = {
      new RemoteEvent(myGen, 9999, 9999, null),
      new RemoteEvent(myGen2, 1234, 1, null),
  };

  // Enable the first of our listener objects
  assertCount(goodRel, 0);
  logger.log(Level.INFO, "Enabling delivery to our REL" + goodRel);
View Full Code Here

TOP

Related Classes of net.jini.core.event.RemoteEvent

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.