title: IEventBroker subscription handles the same event more than once and handles incorrectly
body: <p>I am bootstrapping the <code>IEventBroker</code> in a compat-layer Eclipse RCP app.</p>
  
  <p>I have two views: <code>Triggerer</code> and <code>Receiver</code>.</p>
  
  <p><code>Triggerer</code> (excerpts):</p>
  
  
  
  <pre class="lang-java prettyprint-override"><code>private IEventBroker eventBroker = PlatformUI.getWorkbench().getService(IEventBroker.class);
  
  btn.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
          IStructuredSelection selection = viewer.getStructuredSelection();
          List selectionList = selection.toList();
          for (Object s : selectionList) {
              if (s instanceof MyObject) {
                  matches.add(s);
              }
          }
          eventBroker.send(MyEventConstants.TOPIC_OBJECT_CHANGED, matches);
      }
  }
  </code></pre>
  
  <p><code>Receiver</code> (excerpts):</p>
  
  <pre class="lang-java prettyprint-override"><code>@Override
  public void handleEvent(Event event) {
      Object data = event.getProperty(EVENT_DATA);
      switch (event.getTopic()) {
      case MyEventConstants.TOPIC_OBJECT_CHANGED:
          try {
              if (data instanceof ArrayList) {
                  List&lt;MyObject&gt; matches = null;
                  try {
                      matches = (List&lt;MyObject&gt;) data;
                  }
                  catch (ClassCastException e) {
                  }
                  Subthing sub = buildSubthing(matches);
                  getContentViewer().getContents()
                          .setAll(Collections.singletonList(sub));
              }
          }
          break;
      }
  }
  </code></pre>
  
  <p><code>buildSubthing</code> does stuff with the respective received data, and sets it to the contents of a GEF4 editor.</p>
  
  <p>In some cases this works just fine, in some it doesn't.</p>
  
  <p><code>handleEvent()</code> is triggered more than once, although the <code>event</code> hashCode is always the same, and I don't understand why. The topic is the same and the data is also the same. However, <code>buildSubthing</code> just stalls for no apprent reason with some data while it doesn't for other. The data is structurally the same in both cases.</p>
  
  <p>How can I control how often <code>handleEvent</code> is called, as I think the number of times it's called is the reason while the <code>Subthing</code> is sometimes not correctly constructed?</p>