From 1b7574a8b9ac5cbbac4809bdd0a6a27014d7ea26 Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Fri, 29 May 2015 14:16:26 +0200 Subject: [PATCH] Boards Manager: contributions MAY miss tools, but we missed to consider this case. Fixes #3248 --- .../contributions/packages/ContributedPlatform.java | 2 +- .../contributions/packages/ContributedToolReference.java | 3 ++- .../contributions/packages/ContributionsIndexer.java | 9 ++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java index 5c70ba212..0cf37bd30 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java @@ -93,6 +93,6 @@ public abstract class ContributedPlatform extends DownloadableContribution { @Override public String toString() { - return getParsedVersion(); + return getName() + " " + getParsedVersion(); } } diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedToolReference.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedToolReference.java index ef4c808a8..ad29445a8 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedToolReference.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedToolReference.java @@ -40,6 +40,7 @@ public abstract class ContributedToolReference { public ContributedTool resolve(Collection packages) { for (ContributedPackage pack : packages) { + assert pack.getTools() != null; for (ContributedTool tool : pack.getTools()) if (tool.getName().equals(getName()) && tool.getVersion().equals(getVersion()) && @@ -54,4 +55,4 @@ public abstract class ContributedToolReference { return "name=" + getName() + " version=" + getVersion() + " packager=" + getPackager(); } -} \ No newline at end of file +} diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java index a38c8dd9a..f26289533 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java @@ -91,13 +91,20 @@ public class ContributionsIndexer { } List packages = index.getPackages(); + Collection packagesWithTools = Collections2.filter(packages, new Predicate() { + @Override + public boolean apply(ContributedPackage input) { + return input.getTools() != null; + } + }); + for (ContributedPackage pack : packages) { for (ContributedPlatform platform : pack.getPlatforms()) { // Set a reference to parent packages platform.setParentPackage(pack); // Resolve tools dependencies (works also as a check for file integrity) - platform.resolveToolsDependencies(packages); + platform.resolveToolsDependencies(packagesWithTools); } }