Sure Ill run it.

- Jeremy

> On May 3, 2023, at 7:05 AM, Christopher Schultz 
> <ch...@christopherschultz.net> wrote:
> 
> 
> Jeremy,
> 
>> On 5/2/23 22:27, Jeremy Nguyen wrote:
>> I was able to retrieve some logs that might shed some insight on the
>> parent classloader when running 8.5.87. I'll be frank that I don't quite
>> understand the mechanics of classloaders in Java.
>> LogFactory from
>>> org.eclipse.osgi.internal.loader.EquinoxClassLoader@1628551735] [LOOKUP]
>>> LogFactory implementation requested for the first time for context
>>> classloader org.apache.catalina.loader.ParallelWebappClassLoader@1204822967
>>> 
>>> [LogFactory from
>>> org.eclipse.osgi.internal.loader.EquinoxClassLoader@1628551735] [LOOKUP]
>>> org.apache.catalina.loader.ParallelWebappClassLoader@1204822967 ==
>>> 'ParallelWebappClassLoader
>>> 
>>> context: cg
>>> 
>>> delegate: false
>>> 
>>> ----------> Parent Classloader:
>>> 
>>> org.cg.dao.webcontainer.tomcat.WebAppClassLoader@b887730
> 
> I wonder if org.cg.dao.webcontainer.tomcat.WebAppClassLoader has a bug where 
> getResources() can return null.
> 
> That violates the contract of ClassLoader.getResources, but since it's 
> /possible/ maybe Tomcat can work around it by simply ignoring the empty 
> Enumeration. If I give you an unofficial build, can you try it?
> 
> -chris
> 
>>> [LogFactory from
>>> org.eclipse.osgi.internal.loader.EquinoxClassLoader@1628551735] [LOOKUP]
>>> ClassLoader
>>> tree:org.apache.catalina.loader.ParallelWebappClassLoader@1204822967 -->
>>> org.cg.dao.webcontainer.tomcat.WebAppClassLoader@193492784 -->
>>> jdk.internal.loader.ClassLoaders$AppClassLoader@2085857771 (SYSTEM) -->
>>> jdk.internal.loader.ClassLoaders$PlatformClassLoader@105966264 --> BOOT
>>> 
>>> May 02, 2023 7:23:21 PM org.apache.catalina.core.StandardContext
>>> listenerStart
>>> 
>>> SEVERE: Exception sending context initialized event to listener instance
>>> of class [org.springframework.web.context.ContextLoaderListener]
>>> 
>>> java.lang.NullPointerException
>>> 
>>> at
>>> org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.inc(
>>> WebappClassLoaderBase.java:2775)
>>> 
>>> at
>>> org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.hasMoreElements(
>>> WebappClassLoaderBase.java:2760)
>>> 
>>> at org.apache.commons.logging.LogFactory.getConfigurationFile(
>>> LogFactory.java:1366)
>>> 
>>> at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:453)
>>> 
>>> at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
>>> 
>>> at org.springframework.web.context.ContextLoader.initWebApplicationContext(
>>> ContextLoader.java:269)
>>> 
>>> at
>>> org.springframework.web.context.ContextLoaderListener.contextInitialized(
>>> ContextLoaderListener.java:103)
>>> 
>>> at org.apache.catalina.core.StandardContext.listenerStart(
>>> StandardContext.java:4492)
>>> 
>>> at org.apache.catalina.core.StandardContext.startInternal(
>>> StandardContext.java:4950)
>>> 
>>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>> 
>>> at org.apache.catalina.core.ContainerBase.addChildInternal(
>>> ContainerBase.java:711)
>>> 
>>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:688)
>>> 
>>> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:661)
>>> 
>>> at org.cg.dao.webcontainer.tomcat.TomcatWrapper.startWebApp(
>>> TomcatWrapper.java:185)
>>> 
>>> at org.cg.dao.webcontainer.tomcat.TomcatWrapper.prepareAllWebApps(
>>> TomcatWrapper.java:140)
>>> 
>>> at org.cg.dao.webcontainer.tomcat.TomcatWrapper.startServer(
>>> TomcatWrapper.java:206)
>>> 
>>> at org.cg.dao.webcontainer.tomcat.Application.start(Application.java:30)
>>> 
>>> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(
>>> EclipseAppHandle.java:203)
>>> 
>>> at
>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(
>>> EclipseAppLauncher.java:136)
>>> 
>>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(
>>> EclipseAppLauncher.java:104)
>>> 
>>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(
>>> EclipseStarter.java:402)
>>> 
>>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(
>>> EclipseStarter.java:255)
>>> 
>>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>>> Method)
>>> 
>>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(
>>> NativeMethodAccessorImpl.java:62)
>>> 
>>> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(
>>> DelegatingMethodAccessorImpl.java:43)
>>> 
>>> at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>>> 
>>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
>>> 
>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
>>> 
>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
>>> 
>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
>>> 
>>> On Tue, May 2, 2023 at 6:18 PM Jeremy Nguyen <jeremyn...@gmail.com> wrote:
>>>  I picked 8.5.34 because 8.5.35 has that code change while 34 doesn't.
>>> https://github.com/apache/tomcat/blob/8.5.35/java/org/apache/catalina/loader/WebappClassLoaderBase.java#L1050
>>> 
>>> I'll do some debugging for the classloader soon. I'm still trying to get
>>> my application running. I'm wrestling with the following error at runtime.
>>> 
>>> Caused by: org.apache.jasper.JasperException: Unable to compile class for
>>>> JSP
>>>> at
>>>> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:610)
>>>> ~[jasper.jar:8.5.34]
>>>> at
>>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:382)
>>>> ~[jasper.jar:8.5.34]
>>>> at
>>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
>>>> ~[jasper.jar:8.5.34]
>>>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
>>>> ~[jasper.jar:8.5.34]
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
>>>> ~[servlet-api.jar:?]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> com.centrify.platform.service.analytics.filter.GlobalAttributeFilter.doFilter(GlobalAttributeFilter.java:41)
>>>> ~[com.centrify.platform.service.analytics/:?]
>>>> at
>>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.cg.services.core.filter.ExecutionTimeFilter.doFilterInternal(ExecutionTimeFilter.java:29)
>>>> ~[org.cg.services.core/:?]
>>>> at
>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:112)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.pac4j.springframework.security.web.SecurityFilter.lambda$doFilter$1(SecurityFilter.java:52)
>>>> ~[spring-security-pac4j-2.0.0.jar:?]
>>>> at
>>>> org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:136)
>>>> ~[pac4j-core-1.9.1.jar:?]
>>>> ... 34 more
>>>> Caused by: java.lang.NullPointerException
>>>> at
>>>> org.apache.jasper.compiler.Validator$ValidateVisitor.<init>(Validator.java:516)
>>>> ~[jasper.jar:8.5.34]
>>>> at
>>>> org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1854)
>>>> ~[jasper.jar:8.5.34]
>>>> at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:220)
>>>> ~[jasper.jar:8.5.34]
>>>> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
>>>> ~[jasper.jar:8.5.34]
>>>> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:350)
>>>> ~[jasper.jar:8.5.34]
>>>> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
>>>> ~[jasper.jar:8.5.34]
>>>> at
>>>> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
>>>> ~[jasper.jar:8.5.34]
>>>> at
>>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:382)
>>>> ~[jasper.jar:8.5.34]
>>>> at
>>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
>>>> ~[jasper.jar:8.5.34]
>>>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
>>>> ~[jasper.jar:8.5.34]
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
>>>> ~[servlet-api.jar:?]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> com.centrify.platform.service.analytics.filter.GlobalAttributeFilter.doFilter(GlobalAttributeFilter.java:41)
>>>> ~[com.centrify.platform.service.analytics/:?]
>>>> at
>>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.cg.services.core.filter.ExecutionTimeFilter.doFilterInternal(ExecutionTimeFilter.java:29)
>>>> ~[org.cg.services.core/:?]
>>>> at
>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
>>>> ~[spring-web-5.1.20.RELEASE.jar:5.1.20.RELEASE]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>>> ~[catalina.jar:8.5.34]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:112)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
>>>> ~[spring-security-web-4.1.0.RELEASE.jar:4.1.0.RELEASE]
>>>> at
>>>> org.pac4j.springframework.security.web.SecurityFilter.lambda$doFilter$1(SecurityFilter.java:52)
>>>> ~[spring-security-pac4j-2.0.0.jar:?]
>>>> at
>>>> org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:136)
>>>> ~[pac4j-core-1.9.1.jar:?]
>>>> ... 34 more
>>> 
>>> 
>>> On Tue, May 2, 2023 at 5:23 AM Christopher Schultz <
>>> ch...@christopherschultz.net> wrote:
>>> 
>>>> Jeremy,
>>>> 
>>>> On 5/1/23 17:46, Jeremy Nguyen wrote:
>>>>> I noticed this change was introduced:
>>>>> https://bz.apache.org/bugzilla/show_bug.cgi?id=62868
>>>>> 
>>>> https://github.com/apache/tomcat/blame/8.5.x/java/org/apache/catalina/loader/WebappClassLoaderBase.java#L1122
>>>>> 
>>>>> I'll try running 8.5.34 and report back.
>>>> 
>>>> Wow that's ancient. What made you pick 8.5.34? That change should have
>>>> gone into 8.5.36. Can you try both 8.5.35 and 8.5.36 and let us know
>>>> which (if either) works?
>>>> 
>>>> I wonder if the parent ClassLoader is violating the contract for
>>>> getResources().
>>>> 
>>>> Jeremy, can you throw some code into your application that runs early
>>>> (like in org.cg.dao.webcontainer.tomcat.TomcatWrapper.startWebApp) that
>>>> reports the class name of thew parent ClassLoader for the
>>>> WebappClassLoader being used for the webapp?
>>>> 
>>>> If you aren't able to do that -- and since you are running from Eclipse
>>>> -- try putting a breakpoint in WebappClassLoaderBase.getResources
>>>>   and just inspecting the situation at that point -- you should be able
>>>> to see what the parent ClassLoader is, and even see what
>>>> getParent().getResources() returns.
>>>> 
>>>> -chris
>>>> 
>>>>> On Mon, May 1, 2023 at 2:12 PM Rob Sargent <rsarg...@xmission.com>
>>>> wrote:
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On 5/1/23 14:36, Christopher Schultz wrote:
>>>>>>> Jeremy,
>>>>>>> 
>>>>>>> On 5/1/23 14:22, Jeremy Nguyen wrote:
>>>>>>>> I'm trying to upgrade Tomcat 8 to 8.5 and I'm getting a
>>>>>>>> nullpointerexception within
>>>>>>>> WebappClassLoaderBase.CombinedEnumeration.inc.
>>>>>>>> It seems to occur when it's trying to initialize commons-logging
>>>>>>>> LogFactory
>>>>>>>> for any class specified in Web.xml, and it's calling
>>>>>>>> getResources("commons-logging.properties") which I never had. Is it
>>>>>>>> required in 8.5? Even if I put it in conf/, it's not being picked up.
>>>>>>>> 
>>>>>>>> We're running Tomcat using a wrapper and it's erroring out here:
>>>>>>>> 
>>>>>> 
>>>> https://github.com/CodeGerm/osgi-server/blob/master/plugins/org.cg.dao.webcontainer/src/org/cg/dao/webcontainer/tomcat/TomcatWrapper.java#L185
>>>>>>>> 
>>>>>>>> 
>>>>>>>> I posted my web.xml and error trace here as well:
>>>>>>>> 
>>>>>> 
>>>> https://stackoverflow.com/questions/76139108/web-xml-configuration-is-broken-when-upgrading-to-tomcat-8-5-and-spring-5-1
>>>>>>>> 
>>>>>>> 
>>>>>>> I have no idea how this is throwing an NPE. The only pointer being
>>>>>>> dereferenced by the inc() method is "sources":
>>>>>>> 
>>>>>>> 2773        private boolean inc() {
>>>>>>> 2774            while (index < sources.length) {
>>>>>>> 2775                if (sources[index].hasMoreElements()) {
>>>>>>> 2776                    return true;
>>>>>>> 2777                }
>>>>>>> 2778                index++;
>>>>>>> 2779            }
>>>>>>> 2780            return false;
>>>>>>> 2781        }
>>>>>>> 
>>>>>>> That member (sources) is instantiated in the one-and-only-one
>>>>>>> constructor:
>>>>>>> 
>>>>>>>          CombinedEnumeration(Enumeration<URL> enum1, Enumeration<URL>
>>>>>>> enum2) {
>>>>>>>              @SuppressWarnings("unchecked")
>>>>>>>              Enumeration<URL>[] sources = new Enumeration[] { enum1,
>>>>>>> enum2 };
>>>>>>>              this.sources = sources;
>>>>>>>          }
>>>>>>> 
>>>>>>> Also weird is that this throws NPE on line 2775 and not 2774. I can't
>>>>>>> explain how line 2775 could throw an NPE if line 2774 did not.
>>>>>>> 
>>>>>>>> :/
>>>>>> 
>>>>>> Is the null pointer in the index'th position of source, not source
>>>> itself?
>>>>>> 
>>>>>>> 
>>>>>>> I use Tomcat 8.5.x and I have never had a commons-logging.properties
>>>>>>> file, and I use some components which are surely causing
>>>>>>> commons-logging LogFactory to initialize, and I've never seen this
>>>>>>> problem before.
>>>>>>> 
>>>>>>> -chris
>>>>>>> 
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>> 
>>>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to