#vulnerable code 
                             public void sendAttributeChangedEvent(String eltId, ElementType eltType, String attribute,
			AttributeChangeEvent event, Object oldValue, Object newValue) {
		//
		// Attributes with name beginnig with a dot are hidden.
		//
		if (passYourWay || attribute.charAt(0) == '.')
			return;
		
		attributeLock.lock(); // Fix issue #293
		
		try {
			sendAttributeChangedEvent(sourceId, newEvent(), eltId, eltType, attribute, event, oldValue, newValue);
		} finally {
			attributeLock.unlock();
		}
	} 
                            #location 6 
                            #vulnerability type THREAD_SAFETY_VIOLATION
#fixed code
                             public void sendAttributeChangedEvent(String eltId, ElementType eltType, String attribute,
			AttributeChangeEvent event, Object oldValue, Object newValue) {
		//
		// Attributes with name beginnig with a dot are hidden.
		//
		if (passYourWay || attribute.charAt(0) == '.')
			return;

		sendAttributeChangedEvent(sourceId, newEvent(), eltId, eltType, attribute, event, oldValue, newValue);
	}