You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2017/11/04 17:33:10 UTC

[incubator-netbeans-html4j] branch master updated: Try to preload ClassValue to check ClassValueTypes have a chance to be loaded at all

This is an automated email from the ASF dual-hosted git repository.

jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans-html4j.git


The following commit(s) were added to refs/heads/master by this push:
     new 0649c2b  Try to preload ClassValue to check ClassValueTypes have a chance to be loaded at all
0649c2b is described below

commit 0649c2b47b57472f6139d50cfad7d24d28d4b9ac
Author: Jaroslav Tulach <ja...@oracle.com>
AuthorDate: Sat Nov 4 18:32:54 2017 +0100

    Try to preload ClassValue to check ClassValueTypes have a chance to be loaded at all
---
 .../main/java/org/netbeans/html/json/impl/JSON.java   | 19 +++++++++++++++----
 .../java/org/netbeans/html/json/impl/ModelTypes.java  |  1 +
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/json/src/main/java/org/netbeans/html/json/impl/JSON.java b/json/src/main/java/org/netbeans/html/json/impl/JSON.java
index 0f148c6..99730a6 100644
--- a/json/src/main/java/org/netbeans/html/json/impl/JSON.java
+++ b/json/src/main/java/org/netbeans/html/json/impl/JSON.java
@@ -343,13 +343,24 @@ public final class JSON {
     }
 
 
-    static ModelTypes initModelTypes(String implName) {
+    static ModelTypes initModelTypes(String preload, String implName) {
+        ModelTypes types = null;
         try {
+            Class.forName(preload);
             Class<?> clazz = Class.forName(implName);
-            return (ModelTypes) clazz.newInstance();
-        } catch (Exception ex) {
-            return new LinkedListTypes();
+            types = (ModelTypes) clazz.newInstance();
+        } catch (ClassNotFoundException ex) {
+            // OK, not supported
+        } catch (NoClassDefFoundError ex) {
+            // OK, not supported
+        } catch (Throwable ex) {
+            ex.printStackTrace();
+        } finally {
+            if (types == null) {
+                types = new LinkedListTypes();
+            }
         }
+        return types;
     }
 
     public static void register(Class c, Proto.Type<?> type) {
diff --git a/json/src/main/java/org/netbeans/html/json/impl/ModelTypes.java b/json/src/main/java/org/netbeans/html/json/impl/ModelTypes.java
index a85b2d4..b823b4c 100644
--- a/json/src/main/java/org/netbeans/html/json/impl/ModelTypes.java
+++ b/json/src/main/java/org/netbeans/html/json/impl/ModelTypes.java
@@ -24,6 +24,7 @@ interface ModelTypes {
     Proto.Type[] find(Class<?> type);
 
     static final ModelTypes MODELS = JSON.initModelTypes(
+        "java.lang.ClassValue",
         "org.netbeans.html.json.impl.ClassValueTypes"
     );
 }

-- 
To stop receiving notification emails like this one, please contact
['"commits@netbeans.apache.org" <co...@netbeans.apache.org>'].