code: @Override
      public void run() {
          synchronized (this) {
              // Save current event pipeline and currently handled event
              // because a SynchronousEventPipeline can be called while
              // handling an event (from another event processor).
              InternalEventPipeline currentPipeline = FeedBackPipelineFilter
                  .getAssociatedPipeline();
              EventBase<?> currentEvent = newEventsParent.get();
              try {
                  super.run();
              } finally {
                  newEventsParent.set(currentEvent);
                  FeedBackPipelineFilter.setAssociatedPipeline(currentPipeline);
              }
          }
      }
docs: /*
  (non-Javadoc)
  
  @see org.jgrapes.core.internal.EventProcessor#run()