[ 
https://issues.apache.org/jira/browse/SLING-2890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Munteanu updated SLING-2890:
-----------------------------------
    Labels: sling-IT  (was: )

> Intermittent NullPointerException in ClassLoaderWriterImpl when running 
> org.apache.sling.launchpad.webapp.integrationtest.servlets.resolver.errorhandler.ErrorHandlingTest
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SLING-2890
>                 URL: https://issues.apache.org/jira/browse/SLING-2890
>             Project: Sling
>          Issue Type: Bug
>          Components: JCR
>    Affects Versions: JCR Classloader 3.1.12
>            Reporter: Robert Munteanu
>              Labels: sling-IT
>
> I've seen this error about 50% of the times when running the launchpad tests. 
> The complete stack trace is
> org.apache.sling.api.SlingException: 
> org.apache.sling.scripting.jsp.jasper.JasperException: Unable to compile 
> class for JSP
>       at 
> org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.handleJspExceptionInternal(JspServletWrapper.java:691)
>       at 
> org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:608)
>       at 
> org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:525)
>       at 
> org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:449)
>       at 
> org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(JspScriptEngineFactory.java:265)
>       at 
> org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$100(JspScriptEngineFactory.java:87)
>       at 
> org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngineFactory.java:465)
>       at 
> org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:361)
>       at 
> org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:171)
>       at 
> org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:463)
>       at 
> org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:508)
>       at 
> org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:259)
>       at 
> org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49)
>       at 
> org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:64)
>       at 
> org.apache.sling.launchpad.testservices.filters.TestFilter.doFilter(TestFilter.java:47)
>       at 
> org.apache.sling.launchpad.testservices.filters.NoPropertyFilter.doFilter(NoPropertyFilter.java:25)
>       at 
> org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
>       at 
> org.apache.sling.launchpad.testservices.filters.TestFilter.doFilter(TestFilter.java:47)
>       at 
> org.apache.sling.launchpad.testservices.filters.SlingFilter.doFilter(SlingFilter.java:25)
>       at 
> org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
>       at 
> org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:64)
>       at 
> org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
>       at 
> org.apache.sling.engine.impl.SlingRequestProcessorImpl.processRequest(SlingRequestProcessorImpl.java:151)
>       at 
> org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:206)
>       at 
> org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
>       at 
> org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
>       at 
> org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
>       at 
> org.apache.sling.launchpad.testservices.filters.TestFilter.doFilter(TestFilter.java:47)
>       at 
> org.apache.sling.launchpad.testservices.filters.HttpServiceExtFilter.doFilter(HttpServiceExtFilter.java:27)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
>       at 
> org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)
>       at 
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)
>       at 
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
>       at 
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
>       at 
> org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
>       at 
> org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
>       at 
> org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>       at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
>       at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
>       at 
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>       at 
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>       at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>       at org.mortbay.jetty.Server.handle(Server.java:326)
>       at 
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>       at 
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)
>       at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
>       at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>       at 
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
>       at 
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> Caused by: java.lang.NullPointerException: Specified service reference cannot 
> be null.
>       at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:458)
>       at 
> org.apache.sling.jcr.classloader.internal.ClassLoaderWriterImpl.getOrCreateClassLoader(ClassLoaderWriterImpl.java:215)
>       at 
> org.apache.sling.jcr.classloader.internal.ClassLoaderWriterImpl.getClassLoader(ClassLoaderWriterImpl.java:523)
>       at 
> org.apache.sling.scripting.jsp.SlingIOProvider.getClassLoader(SlingIOProvider.java:163)
>       at 
> org.apache.sling.scripting.jsp.jasper.JspCompilationContext.getClassLoader(JspCompilationContext.java:134)
>       at 
> org.apache.sling.scripting.jsp.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:193)
>       at 
> org.apache.sling.scripting.jsp.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:178)
>       at 
> org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:123)
>       at 
> org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getType(PackageBinding.java:126)
>       at 
> org.eclipse.jdt.internal.compiler.lookup.Scope.findType(Scope.java:1327)
>       at 
> org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:2351)
>       at 
> org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2074)
>       at 
> org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:44)
>       at 
> org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:130)
>       at 
> org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:138)
>       at 
> org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:432)
>       at 
> org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:190)
>       at 
> org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:403)
>       at 
> org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1047)
>       at 
> org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1094)
>       at 
> org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:353)
>       at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:596)
>       at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:411)
>       at 
> org.apache.sling.scripting.jsp.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:412)
>       at 
> org.apache.sling.scripting.jsp.jasper.compiler.Compiler.compile(Compiler.java:312)
>       at 
> org.apache.sling.scripting.jsp.jasper.compiler.Compiler.compile(Compiler.java:290)
>       at 
> org.apache.sling.scripting.jsp.jasper.compiler.Compiler.compile(Compiler.java:277)
>       at 
> org.apache.sling.scripting.jsp.jasper.JspCompilationContext.compile(JspCompilationContext.java:501)
>       at 
> org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.prepareServlet(JspServletWrapper.java:427)
>       at 
> org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:486)
>       ... 54 more
> By looking at the code I noticed that access to the dynamicClassLoaderManager 
> field is synchronized some of the time, but not in the 
> bindDynamicClassLoaderManager and unbindDynamicClassLoaderManager methods. 
> However, making them synchronized does not solve the problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to