code: protected List<EventSubscriptionEntity> filterSubscriptionsOfDifferentType(EventSubscriptionDeclaration eventSubscription,
        List<EventSubscriptionEntity> subscriptionsForSameMessageName) {
      ArrayList<EventSubscriptionEntity> filteredSubscriptions = new ArrayList<EventSubscriptionEntity>(subscriptionsForSameMessageName);
  
      for (EventSubscriptionEntity subscriptionEntity : new ArrayList<EventSubscriptionEntity>(subscriptionsForSameMessageName)) {
  
        if (isSubscriptionOfDifferentTypeAsDeclaration(subscriptionEntity, eventSubscription)) {
          filteredSubscriptions.remove(subscriptionEntity);
        }
      }
  
      return filteredSubscriptions;
    }
docs: It is possible to deploy a process containing a start and intermediate
  message event that wait for the same message or to have two processes, one
  with a message start event and the other one with a message intermediate
  event, that subscribe for the same message. Therefore we have to find out
  if there are subscriptions for the other type of event and remove those.
  
  @param eventSubscription
  @param subscriptionsForSameMessageName