Author: cziegeler
Date: Tue Jun  6 10:18:58 2017
New Revision: 1797766

URL: http://svn.apache.org/viewvc?rev=1797766&view=rev
Log:
Set TCCL for johnzon

Modified:
    felix/trunk/osgi-r7/configurator/pom.xml
    
felix/trunk/osgi-r7/configurator/src/main/java/org/apache/felix/configurator/impl/json/JSONUtil.java

Modified: felix/trunk/osgi-r7/configurator/pom.xml
URL: 
http://svn.apache.org/viewvc/felix/trunk/osgi-r7/configurator/pom.xml?rev=1797766&r1=1797765&r2=1797766&view=diff
==============================================================================
--- felix/trunk/osgi-r7/configurator/pom.xml (original)
+++ felix/trunk/osgi-r7/configurator/pom.xml Tue Jun  6 10:18:58 2017
@@ -69,7 +69,7 @@
                         <Provide-Capability>
                             
osgi.implementation;osgi.implementation="osgi.configurator";version:Version="1.0"
                         </Provide-Capability>
-                        
<Embed-Dependency>geronimo-json_1.0_spec,johnzon-core;inline=true,org.apache.felix.converter</Embed-Dependency>
+                        
<Embed-Dependency>geronimo-json_1.0_spec,johnzon-core,org.apache.felix.converter</Embed-Dependency>
                     </instructions>
                 </configuration>
             </plugin>

Modified: 
felix/trunk/osgi-r7/configurator/src/main/java/org/apache/felix/configurator/impl/json/JSONUtil.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/osgi-r7/configurator/src/main/java/org/apache/felix/configurator/impl/json/JSONUtil.java?rev=1797766&r1=1797765&r2=1797766&view=diff
==============================================================================
--- 
felix/trunk/osgi-r7/configurator/src/main/java/org/apache/felix/configurator/impl/json/JSONUtil.java
 (original)
+++ 
felix/trunk/osgi-r7/configurator/src/main/java/org/apache/felix/configurator/impl/json/JSONUtil.java
 Tue Jun  6 10:18:58 2017
@@ -298,12 +298,19 @@ public class JSONUtil {
             report.errors.add("Invalid JSON from " + name);
             return null;
         }
-        try (final JsonReader reader = Json.createReader(new 
StringReader(contents)) ) {
-            final JsonStructure obj = reader.read();
-            if ( obj != null && obj.getValueType() == ValueType.OBJECT ) {
-                return (JsonObject)obj;
+        // Jonhzon uses TCCL
+        final ClassLoader oldCL = 
Thread.currentThread().getContextClassLoader();
+        try {
+            
Thread.currentThread().setContextClassLoader(JSONUtil.class.getClassLoader());
+            try (final JsonReader reader = Json.createReader(new 
StringReader(contents)) ) {
+                final JsonStructure obj = reader.read();
+                if ( obj != null && obj.getValueType() == ValueType.OBJECT ) {
+                    return (JsonObject)obj;
+                }
+                report.errors.add("Invalid JSON from " + name);
             }
-            report.errors.add("Invalid JSON from " + name);
+        } finally {
+            Thread.currentThread().setContextClassLoader(oldCL);
         }
         return null;
     }


Reply via email to