class IndexDocumentException extends IndexCheckException {
    private static final long serialVersionUID = -277429315137557112L;

    private final Map<Path, Integer> duplicatePathMap;
    private final Set<Path> missingPaths;

    public IndexDocumentException(String s, Path path) {
        super(s, path);
        this.duplicatePathMap = null;
        this.missingPaths = null;
    }

    public IndexDocumentException(String message, Path indexPath, Map<Path, Integer> duplicateFileMap, Set<Path> missingPaths) {
        super(message, indexPath);
        this.duplicatePathMap = duplicateFileMap;
        this.missingPaths = missingPaths;
    }

    @Override
    public String toString() {<FILL_FUNCTION_BODY>}
}

        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(getMessage());
        stringBuilder.append(":");
        if (!duplicatePathMap.isEmpty()) {
            stringBuilder.append(" duplicate paths = ");
            stringBuilder.append(duplicatePathMap);
        }
        if (!missingPaths.isEmpty()) {
            stringBuilder.append(" missing paths = ");
            stringBuilder.append(missingPaths);
        }
        return stringBuilder.toString();
    
<methods>public void <init>(java.lang.String, java.nio.file.Path) ,public void <init>(java.lang.String, Set<java.nio.file.Path>) ,public void <init>(java.lang.Exception) ,public Set<java.nio.file.Path> getFailedPaths() <variables>private final Set<java.nio.file.Path> failedPaths,private static final long serialVersionUID