Author: cziegeler
Date: Wed Jul 27 15:26:08 2011
New Revision: 1151498

URL: http://svn.apache.org/viewvc?rev=1151498&view=rev
Log:
Set thread context classloader when using jaxb

Modified:
    
sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletRegistryService.java

Modified: 
sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletRegistryService.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletRegistryService.java?rev=1151498&r1=1151497&r2=1151498&view=diff
==============================================================================
--- 
sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletRegistryService.java
 (original)
+++ 
sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletRegistryService.java
 Wed Jul 27 15:26:08 2011
@@ -26,6 +26,7 @@ import java.util.Map;
 import javax.portlet.Portlet;
 import javax.portlet.PortletException;
 import javax.servlet.ServletContext;
+import javax.xml.bind.JAXBContext;
 
 import org.apache.pluto.container.ContainerInfo;
 import org.apache.pluto.container.PortletAppDescriptorService;
@@ -289,7 +290,9 @@ public class DefaultPortletRegistryServi
     private PortletApplicationDefinition createDefinition(ServletContext 
servletContext, String name, String contextPath)
     throws PortletContainerException {
         PortletApplicationDefinition portletApp = null;
+        final ClassLoader oldTCCL = 
Thread.currentThread().getContextClassLoader();
         try {
+            
Thread.currentThread().setContextClassLoader(JAXBContext.class.getClassLoader());
             InputStream paIn = servletContext.getResourceAsStream(PORTLET_XML);
             InputStream webIn = servletContext.getResourceAsStream(WEB_XML);
             if (paIn == null) {
@@ -304,6 +307,8 @@ public class DefaultPortletRegistryServi
             portletDDService.mergeWebDescriptor(portletApp, webIn);
         } catch (Exception ex) {
             throw new PortletContainerException("Unable to load portlet 
descriptor for context " + contextPath, ex);
+        } finally {
+            Thread.currentThread().setContextClassLoader(oldTCCL);
         }
         return portletApp;
     }


Reply via email to