From 8ff53b3001b729f8e5ecd756e929022642c23172 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Thu, 15 Jan 2026 07:35:06 +0100 Subject: [PATCH] Added `rebuildToolList()` to fix nullpointer in contributions check --- app/src/processing/app/Base.java | 1 + .../app/contrib/ContributionListing.java | 20 +++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index a083d139a0..f9872a362d 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -485,6 +485,7 @@ public Base(String[] args) throws Exception { buildCoreModes(); rebuildContribModes(); rebuildContribExamples(); + rebuildToolList(); // Needs to happen after the sketchbook folder has been located. // Also relies on the modes to be loaded, so it knows what can be diff --git a/app/src/processing/app/contrib/ContributionListing.java b/app/src/processing/app/contrib/ContributionListing.java index 08b8d307c7..b5937993c0 100644 --- a/app/src/processing/app/contrib/ContributionListing.java +++ b/app/src/processing/app/contrib/ContributionListing.java @@ -21,14 +21,6 @@ */ package processing.app.contrib; -import java.awt.EventQueue; -import java.io.File; -import java.lang.reflect.InvocationTargetException; -import java.net.*; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.locks.ReentrantLock; - import processing.app.Base; import processing.app.Messages; import processing.app.UpdateCheck; @@ -37,6 +29,16 @@ import processing.data.StringDict; import processing.data.StringList; +import java.awt.*; +import java.io.File; +import java.lang.reflect.InvocationTargetException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.*; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.locks.ReentrantLock; + public class ContributionListing { static volatile ContributionListing singleInstance; @@ -275,6 +277,8 @@ public void downloadAvailableList(final Base base, } catch (MalformedURLException e) { progress.setException(e); progress.finished(); + } catch (Exception e) { + Messages.log(e.getMessage()); } finally { downloadingLock.unlock(); }