From 6d4328e0746dc3e1e5b7d48c83b3c5bb20fce404 Mon Sep 17 00:00:00 2001 From: "jose.pereda" Date: Fri, 16 Aug 2024 13:43:30 +0200 Subject: [PATCH] Ignore private and package-private classes when importing custom components --- .../scenebuilder/kit/library/util/ExplorerBase.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kit/src/main/java/com/oracle/javafx/scenebuilder/kit/library/util/ExplorerBase.java b/kit/src/main/java/com/oracle/javafx/scenebuilder/kit/library/util/ExplorerBase.java index 6b711d4a4..1ddf56ebd 100644 --- a/kit/src/main/java/com/oracle/javafx/scenebuilder/kit/library/util/ExplorerBase.java +++ b/kit/src/main/java/com/oracle/javafx/scenebuilder/kit/library/util/ExplorerBase.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Gluon and/or its affiliates. + * Copyright (c) 2020, 2024, Gluon and/or its affiliates. * Copyright (c) 2012, 2014, Oracle and/or its affiliates. * All rights reserved. Use is subject to license terms. * @@ -102,8 +102,10 @@ JarReportEntry exploreEntry(String entryName, ClassLoader classLoader, String cl // http://stackoverflow.com/questions/8100376/class-forname-vs-classloader-loadclass-which-to-use-for-dynamic-loading entryClass = classLoader.loadClass(className); // Note: static intializers of entryClass are not run, this doesn't seem to be an issue - if (Modifier.isAbstract(entryClass.getModifiers()) - || !Node.class.isAssignableFrom(entryClass)) { + final int modifiers = entryClass.getModifiers(); + if (Modifier.isAbstract(modifiers) + || !Node.class.isAssignableFrom(entryClass) + || !(Modifier.isPublic(modifiers) || Modifier.isProtected(modifiers))) { status = JarReportEntry.Status.IGNORED; entryClass = null; entryException = null;