#fixed code
                             public void process(Object obj) {
		long processStart = System.nanoTime();
		if (obj instanceof Invocation) {
			Invocation inv = (Invocation) obj;
			MemberImpl memberFrom = getMember(inv.conn.getEndPoint());
			if (memberFrom != null) {
				memberFrom.didRead();
			}
			int operation = inv.operation;
			if (operation < 50) {
				ClusterManager.get().handle(inv);
			} else if (operation < 300) {
				ListenerManager.get().handle(inv);
			} else if (operation < 400) {
				ExecutorManager.get().handle(inv);
			} else if (operation < 500) {
				BlockingQueueManager.get().handle(inv);
			} else if (operation < 600) {
				ConcurrentMapManager.get().handle(inv);
			} else
				throw new RuntimeException("Unknown operation " + operation);
		} else if (obj instanceof Processable) {
			((Processable) obj).process();
		} else if (obj instanceof Runnable) {
			synchronized (obj) {
				((Runnable) obj).run();
				obj.notify();
			}
		} else
			throw new RuntimeException("Unkown obj " + obj);
		long processEnd = System.nanoTime();
		long elipsedTime = processEnd - processStart;
		totalProcessTime += elipsedTime;
		long duration = (processEnd - start);
		if (duration > UTILIZATION_CHECK_INTERVAL) {
			if (DEBUG) { 
				System.out.println("ServiceProcessUtilization: " + ((totalProcessTime * 100) / duration) + " %");				
			}
			start = processEnd;
			totalProcessTime = 0;
		}
	}
#vulnerable code 
                             public void process(Object obj) {
		long processStart = System.nanoTime();
		if (obj instanceof Invocation) {
			Invocation inv = (Invocation) obj;
			MemberImpl memberFrom = getMember(inv.conn.getEndPoint());
			if (memberFrom != null) {
				memberFrom.didRead();
			}
			int operation = inv.operation;
			if (operation < 50) {
				ClusterManager.get().handle(inv);
			} else if (operation < 300) {
				ListenerManager.get().handle(inv);
			} else if (operation < 400) {
				ExecutorManager.get().handle(inv);
			} else if (operation < 500) {
				BlockingQueueManager.get().handle(inv);
			} else if (operation < 600) {
				ConcurrentMapManager.get().handle(inv);
			} else
				throw new RuntimeException("Unknown operation " + operation);
		} else if (obj instanceof Processable) {
			((Processable) obj).process();
		} else if (obj instanceof Runnable) {
			synchronized (obj) {
				((Runnable) obj).run();
				obj.notify();
			}
		} else
			throw new RuntimeException("Unkown obj " + obj);
		long processEnd = System.nanoTime();
		long elipsedTime = processEnd - processStart;
		totalProcessTime += elipsedTime;
		long duration = (processEnd - start);
		if (duration > TimeUnit.SECONDS.toNanos(10)) {
			if (DEBUG) { 
				System.out.println("ServiceProcessUtilization: " + ((totalProcessTime * 100) / duration) + " %");				
			}
			start = processEnd;
			totalProcessTime = 0;
		}
	} 
                            #location 9 
                            #vulnerability type THREAD_SAFETY_VIOLATION