Rob,

On 5/1/23 17:12, Rob Sargent 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?

Possibly (and it's really the only probable cause), but the documentation for getResources() and findResources() (both of which are used to assemble the CombinedEnumeration in the first place) say that if no resources are found, an empty Enumeration is returned, not null.

-chris

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

Reply via email to