From c0315ea1159fe11c1ef0ba21b03f3a3d38d78266 Mon Sep 17 00:00:00 2001 From: Ricardo JL Rufino Date: Sun, 17 May 2020 17:03:47 -0300 Subject: [PATCH] Avoid usueless double calls to rescanLibraries() Previously rescanLibraries() was automatically called internally in setLibrariesFolder(). This lead to double calls to rescanLibraries() when setLibrariesFolder() was used in combination with an explicit call to rescanLibraries(). This commit adds a new method setLibrariesFoldersAndRescan(..) and removes the internal call to rescanLibraries() from setLibrariesFolder(). The existing setLibrariesFolder()+rescanLibraries() combos have been replaced with setLibrariesFoldersAndRescan(). Fix #10228 --- .../cc/arduino/contributions/UpdatableLibraryTest.java | 10 ++++------ .../contributions/libraries/LibrariesIndexer.java | 6 +++++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/test/cc/arduino/contributions/UpdatableLibraryTest.java b/app/test/cc/arduino/contributions/UpdatableLibraryTest.java index e06c12710bf..0dab3531cd1 100644 --- a/app/test/cc/arduino/contributions/UpdatableLibraryTest.java +++ b/app/test/cc/arduino/contributions/UpdatableLibraryTest.java @@ -36,8 +36,7 @@ public void testUpdatableLibrary() throws Exception { LibrariesIndexer indexer = new LibrariesIndexer(index_SD_only); BaseNoGui.librariesIndexer = indexer; indexer.parseIndex(); - indexer.setLibrariesFolders(folders); - indexer.rescanLibraries(); + indexer.setLibrariesFoldersAndRescan(folders); ContributedLibrary sdLib = indexer.getIndex().getInstalled("SD").get(); assertTrue("SD lib is installed", sdLib.isLibraryInstalled()); @@ -46,7 +45,7 @@ public void testUpdatableLibrary() throws Exception { assertTrue(ContributionsSelfCheck.checkForUpdatableLibraries()); folders.add(new UserLibraryFolder(SD121, Location.SKETCHBOOK)); - indexer.setLibrariesFolders(folders); + indexer.setLibrariesFoldersAndRescan(folders); sdLib = indexer.getIndex().getInstalled("SD").get(); assertTrue("SD lib is installed", sdLib.isLibraryInstalled()); @@ -63,8 +62,7 @@ public void testUpdatableLibraryWithBundled() throws Exception { LibrariesIndexer indexer = new LibrariesIndexer(index_Bridge_only); BaseNoGui.librariesIndexer = indexer; indexer.parseIndex(); - indexer.setLibrariesFolders(folders); - indexer.rescanLibraries(); + indexer.setLibrariesFoldersAndRescan(folders); ContributedLibrary l = indexer.getIndex().getInstalled("Bridge").get(); assertTrue("Bridge lib is installed", l.isLibraryInstalled()); @@ -73,7 +71,7 @@ public void testUpdatableLibraryWithBundled() throws Exception { assertTrue(ContributionsSelfCheck.checkForUpdatableLibraries()); folders.add(new UserLibraryFolder(Bridge170, Location.SKETCHBOOK)); - indexer.setLibrariesFolders(folders); + indexer.setLibrariesFoldersAndRescan(folders); l = indexer.getIndex().getInstalled("Bridge").get(); assertTrue("Bridge lib is installed", l.isLibraryInstalled()); diff --git a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java index fb0b0c76abe..57460fc19e1 100644 --- a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java @@ -114,7 +114,11 @@ private void parseIndex(File file) throws IOException { } public void setLibrariesFolders(List folders) { - librariesFolders = folders; + this.librariesFolders = folders; + } + + public void setLibrariesFoldersAndRescan(List folders) { + setLibrariesFolders(folders); rescanLibraries(); }