public synchronized List<EventSet> findCorrelatingEventSets(String variableName, Object data, String inboundCorrelationToken) {
		
		List<EventSet> eventSetSearchedIn = eventSets;
		
		if (inboundCorrelationToken != null && inboundCorrelationToken.length() > 0) {
			eventSetSearchedIn = correlationTokens.get(inboundCorrelationToken);
			if (eventSetSearchedIn == null) {
				return new Vector<EventSet>();
			}
		}
		
		List<EventSet> eventSetsFound = new Vector<EventSet>();
		
		for (EventSet eventSet : eventSetSearchedIn) {
			
			EventSetVariableValue value = eventSet.getVariableValue(variableName);
			if (value == null) {
				continue;
			}

			if (data.toString().equals(value.toString())) {
				eventSetsFound.add(eventSet);
			}

		}

		return eventSetsFound;

	}