output: #fixed code
                               @Override
  	public boolean equals(Object o) {
  		if (this == o) return true;
  		if (o == null || getClass() != o.getClass()) return false;
  
  		ScanParams that = (ScanParams) o;
  
  		if (!Arrays.equals(packages, that.packages)) return false;
  		if (matching != null ? !matching.equals(that.matching) : that.matching != null) return false;
  		if (!Arrays.equals(annotated, that.annotated)) return false;
  		if (classLoader != null ? !classLoader.equals(that.classLoader) : that.classLoader != null) return false;
  		if (!Arrays.equals(classpath, that.classpath)) return false;
  		return bytecodeFilter != null ? bytecodeFilter.equals(that.bytecodeFilter) : that.bytecodeFilter == null;
  	}
input: #vulnerable code 
                               @Override
  	public boolean equals(Object o) {
  		if (this == o) return true;
  		if (o == null || getClass() != o.getClass()) return false;
  
  		ScanParams that = (ScanParams) o;
  
  		if (!Arrays.equals(packages, that.packages)) return false;
  		if (matching != null ? !matching.equals(that.matching) : that.matching != null) return false;
  		if (!Arrays.equals(annotated, that.annotated)) return false;
  		return classLoader != null ? classLoader.equals(that.classLoader) : that.classLoader == null;
  	} 
                              #location 10 
                              #vulnerability type THREAD_SAFETY_VIOLATION