public void serviceActive(ReceivableService receivableService) {
		
		for(ReceivableEvent receivableEvent : receivableService.getReceivableEvents()) {
			Set<ServiceID> serviceIDs = eventID2serviceIDs.get(receivableEvent.getEventType());
			if(serviceIDs == null) {
				serviceIDs = new HashSet<ServiceID>();
				Set<ServiceID> anotherServiceIDs = eventID2serviceIDs.putIfAbsent(receivableEvent.getEventType(), serviceIDs);
				if(anotherServiceIDs != null) {
					serviceIDs = anotherServiceIDs;
				}
			}
			synchronized (serviceIDs) {
				serviceIDs.add(receivableService.getService());
			}
		}
		
		for(ReceivableEvent receivableEvent : receivableService.getReceivableEvents()) {
			if(receivableEvent.isInitialEvent()) {
				Set<ServiceID> serviceIDs = initialEvents.get(receivableEvent.getEventType());
				if(serviceIDs == null) {
					serviceIDs = new HashSet<ServiceID>();
					Set<ServiceID> anotherServiceIDs = initialEvents.putIfAbsent(receivableEvent.getEventType(), serviceIDs);
					if(anotherServiceIDs != null) {
						serviceIDs = anotherServiceIDs;
					}
				}
				synchronized (serviceIDs) {
					serviceIDs.add(receivableService.getService());
				}
			}
		}
	}