diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java index 64d0a41ed..50e67fb38 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java @@ -75,7 +75,7 @@ public class ContributionsIndexer { } index = parseIndex(defaultIndexFile); - File[] indexFiles = preferencesFolder.listFiles(new PackageIndexFilenameFilter(Constants.DEFAULT_INDEX_FILE_NAME)); + File[] indexFiles = preferencesFolder.listFiles(new TestPackageIndexFilenameFilter(new PackageIndexFilenameFilter(Constants.DEFAULT_INDEX_FILE_NAME))); for (File indexFile : indexFiles) { ContributionsIndex contributionsIndex = parseIndex(indexFile); diff --git a/arduino-core/src/cc/arduino/contributions/packages/PackageIndexFilenameFilter.java b/arduino-core/src/cc/arduino/contributions/packages/PackageIndexFilenameFilter.java index 22c777305..61e7c2663 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/PackageIndexFilenameFilter.java +++ b/arduino-core/src/cc/arduino/contributions/packages/PackageIndexFilenameFilter.java @@ -13,6 +13,6 @@ public class PackageIndexFilenameFilter implements FilenameFilter { @Override public boolean accept(File file, String name) { - return !defaultPackageIndexFileName.equals(name) && name.startsWith("package_") && name.endsWith("_index.json"); + return new File(file, name).isFile() && !defaultPackageIndexFileName.equals(name) && name.startsWith("package_") && name.endsWith("_index.json"); } } diff --git a/arduino-core/src/cc/arduino/contributions/packages/TestPackageIndexFilenameFilter.java b/arduino-core/src/cc/arduino/contributions/packages/TestPackageIndexFilenameFilter.java new file mode 100644 index 000000000..6d134eb77 --- /dev/null +++ b/arduino-core/src/cc/arduino/contributions/packages/TestPackageIndexFilenameFilter.java @@ -0,0 +1,27 @@ +package cc.arduino.contributions.packages; + +import java.io.File; +import java.io.FilenameFilter; + +public class TestPackageIndexFilenameFilter implements FilenameFilter { + + private final FilenameFilter parent; + + public TestPackageIndexFilenameFilter(FilenameFilter parent) { + this.parent = parent; + } + + public TestPackageIndexFilenameFilter() { + this(null); + } + + @Override + public boolean accept(File file, String name) { + boolean result = false; + if (parent != null) { + result = parent.accept(file, name); + } + result = result || (new File(file, name).isFile() && name.startsWith("test_package_") && name.endsWith("_index.json")); + return result; + } +}