code: protected void processIncomingEvents (long iterStamp)
      {
          // process those events
          long bytesIn = 0, msgsIn = 0, eventCount = 0;
          for (SelectionKey selkey : _selectorSelector) {
              eventCount++;
              NetEventHandler handler = null;
              try {
                  handler = _handlers.get(selkey);
                  if (handler == null) {
                      log.warning("Received network event for unknown handler",
                                  "key", selkey, "ops", selkey.readyOps());
                      // request that this key be removed from our selection set, which normally
                      // happens automatically but for some reason didn't
                      selkey.cancel();
                      continue;
                  }
  
  //                 log.info("Got event", "selkey", selkey, "handler", handler);
  
                  int got = handler.handleEvent(iterStamp);
                  if (got != 0) {
                      bytesIn += got;
                      // we know that the handlers only report having read bytes when they have a
                      // whole message, so we can count thusly
                      msgsIn++;
                  }
  
              } catch (Exception e) {
                  log.warning("Error processing network data: " + handler + ".", e);
  
                  // if you freak out here, you go straight in the can
                  if (handler != null && handler instanceof Connection) {
                      closeConnection((Connection)handler);
                  }
              }
          }
  
          synchronized (this) {
              // update our stats
              _stats.eventCount += eventCount;
              _stats.bytesIn += bytesIn;
              _stats.msgsIn += msgsIn;
          }
      }
docs: Checks for any network events on our set of sockets and passes those events down to their
  associated {@link NetEventHandler}s for processing.