/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ package detectors.thread_safety_class_violations; import com.amazonaws.annotation.ThreadSafe; import stubs.FileInfo; import java.util.HashMap; // {fact rule=thread-safety-class-violations@v1.0 defects=1} @ThreadSafe public class ThreadSafetyClassViolationsNoncompliant { private HashMap<String, FileInfo> fileInfoMap = new HashMap<String, FileInfo>(); public synchronized void reset() { fileInfoMap.clear(); } public synchronized void addFileInfo(String fileName, long fileSize) { FileInfo fileInfo = new FileInfo(fileName, fileSize); fileInfoMap.put(fileName, fileInfo); } // Noncompliant: the method doesn't protect the parallel use of map. public FileInfo getFileInfo(String fileName) { return fileInfoMap.get(fileName); } public synchronized FileInfo getFileInfoSync(String fileName) { return fileInfoMap.get(fileName); } } // {/fact}