NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: [thredds] THREDDS 5.6 WMS Servlet Error: NullPointerException on newSettings Field

  • To: Sean Arms <sarms@xxxxxxxx>
  • Subject: Re: [thredds] THREDDS 5.6 WMS Servlet Error: NullPointerException on newSettings Field
  • From: Ernie Joynt - NOAA Affiliate <ernie.joynt@xxxxxxxx>
  • Date: Wed, 9 Apr 2025 10:41:52 -0600
From tomcat log

9-Apr-2025 15:12:20.094 SEVERE [ajp-nio-140.172.190.31-8009-exec-17] 
org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for 
servlet [wms] in context with path [/thredds##5.6] threw exception
        java.io.IOException: java.lang.NullPointerException: Cannot read field 
"allowFeatureInfo" because "newSettings" is null
                at uk.ac.rdg.resc.edal.wms.WmsServlet.doGet(WmsServlet.java:338)
                at 
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
                at 
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
                at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
                at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
                at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
                at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
                at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
                at 
org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
                at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
                at 
thredds.servlet.filter.RequestBracketingLogMessageFilter.doFilter(RequestBracketingLogMessageFilter.java:50)
                at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
                at 
thredds.servlet.filter.RequestQueryFilter.doFilter(RequestQueryFilter.java:90)
                at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
                at 
thredds.servlet.filter.HttpHeadFilter.doFilter(HttpHeadFilter.java:47)
                at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
                at 
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
                at 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
                at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
                at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
                at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
                at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
                at 
org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:70)
                at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
                at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
                at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
                at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
                at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
                at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
                at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
                at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
                at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
                at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
                at 
org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:431)
                at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
                at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905)
                at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
                at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
                at 
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
                at 
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
                at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
                at java.base/java.lang.Thread.run(Thread.java:840)
        Caused by: java.lang.NullPointerException: Cannot read field 
"allowFeatureInfo" because "newSettings" is null
                at 
thredds.server.wms.config.LayerSettings.replaceNullValues(LayerSettings.java:215)
                at 
thredds.server.wms.config.WmsDetailedConfig.getSettings(WmsDetailedConfig.java:200)
                at 
thredds.server.wms.TdsEnhancedVariableMetadata.<init>(TdsEnhancedVariableMetadata.java:45)
                at 
thredds.server.wms.ThreddsWmsCatalogue.getLayerMetadata(ThreddsWmsCatalogue.java:423)
                at 
uk.ac.rdg.resc.edal.wms.util.WmsUtils.getLayerMetadata(WmsUtils.java:285)
                at 
uk.ac.rdg.resc.edal.wms.GetMapStyleParams.<init>(GetMapStyleParams.java:182)
                at 
uk.ac.rdg.resc.edal.wms.GetMapParameters.<init>(GetMapParameters.java:97)
                at 
uk.ac.rdg.resc.edal.wms.WmsServlet.getMap(WmsServlet.java:410)
                at 
uk.ac.rdg.resc.edal.wms.WmsServlet.dispatchWmsRequest(WmsServlet.java:365)
                at 
thredds.server.wms.ThreddsWmsServlet.dispatchWmsRequest(ThreddsWmsServlet.java:127)
                at uk.ac.rdg.resc.edal.wms.WmsServlet.doGet(WmsServlet.java:300)
                ... 41 more



From threddsServlet.2025-04-09-15.log


2025-04-09T15:12:20.094 +0000 [  97647680][   35059] INFO  - threddsServlet - 
Remote host: 205.193.114.245 - Request: "GET 
/thredds/wms/regional/british_columbia_3_msl_2013.nc?LAYERS=Band1&ELEVATION=0&TIME=2022-08-05T13%3A22%3A27Z&TRANSPARENT=true&STYLES=boxfill%2Frainbow&COLORSCALERANGE=-500%2C0&NUMCOLORBANDS=20&LOGSCALE=false&SERVICE=WMS&VERSION=1.1&service=WMS&request=GetMap&layers=Band1&styles=&format=image%2Fpng&transparent=true&version=1.3.0&width=256&height=256&crs=EPSG%3A3857&bbox=-14010601.536559667,6261721.357121641,-13971465.778077658,6300857.115603653
 HTTP/1.1"
2025-04-09T15:12:20.094 +0000 [  97647680][   35059] ERROR - 
uk.ac.rdg.resc.edal.wms.WmsServlet - Problem with GET request
java.lang.NullPointerException: Cannot read field "allowFeatureInfo" because 
"newSettings" is null
        at 
thredds.server.wms.config.LayerSettings.replaceNullValues(LayerSettings.java:215)
 ~[classes/:5.6]
        at 
thredds.server.wms.config.WmsDetailedConfig.getSettings(WmsDetailedConfig.java:200)
 ~[classes/:5.6]
        at 
thredds.server.wms.TdsEnhancedVariableMetadata.<init>(TdsEnhancedVariableMetadata.java:45)
 ~[classes/:5.6]
        at 
thredds.server.wms.ThreddsWmsCatalogue.getLayerMetadata(ThreddsWmsCatalogue.java:423)
 ~[classes/:5.6]
        at 
uk.ac.rdg.resc.edal.wms.util.WmsUtils.getLayerMetadata(WmsUtils.java:285) 
~[edal-wms-1.5.3.0.jar:?]
        at 
uk.ac.rdg.resc.edal.wms.GetMapStyleParams.<init>(GetMapStyleParams.java:182) 
~[edal-wms-1.5.3.0.jar:?]
        at 
uk.ac.rdg.resc.edal.wms.GetMapParameters.<init>(GetMapParameters.java:97) 
~[edal-wms-1.5.3.0.jar:?]
        at uk.ac.rdg.resc.edal.wms.WmsServlet.getMap(WmsServlet.java:410) 
~[edal-wms-1.5.3.0.jar:?]
        at 
uk.ac.rdg.resc.edal.wms.WmsServlet.dispatchWmsRequest(WmsServlet.java:365) 
~[edal-wms-1.5.3.0.jar:?]
        at 
thredds.server.wms.ThreddsWmsServlet.dispatchWmsRequest(ThreddsWmsServlet.java:127)
 ~[classes/:5.6]
        at uk.ac.rdg.resc.edal.wms.WmsServlet.doGet(WmsServlet.java:300) 
~[edal-wms-1.5.3.0.jar:?]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) 
~[servlet-api.jar:6.0]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) 
~[servlet-api.jar:6.0]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
 ~[catalina.jar:10.1.34]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
 ~[catalina.jar:10.1.34]
        at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
~[tomcat-websocket.jar:10.1.34]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
 ~[catalina.jar:10.1.34]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
 ~[catalina.jar:10.1.34]
        at 
org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
 ~[spring-security-web-6.3.4.jar:6.3.4]
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
 [spring-security-web-6.3.4.jar:6.3.4]
        at 
thredds.servlet.filter.RequestBracketingLogMessageFilter.doFilter(RequestBracketingLogMessageFilter.java:50)
 [classes/:5.6]
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
 [spring-security-web-6.3.4.jar:6.3.4]
        at 
thredds.servlet.filter.RequestQueryFilter.doFilter(RequestQueryFilter.java:90) 
[classes/:5.6]
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
 [spring-security-web-6.3.4.jar:6.3.4]
        at 
thredds.servlet.filter.HttpHeadFilter.doFilter(HttpHeadFilter.java:47) 
[classes/:5.6]
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
 [spring-security-web-6.3.4.jar:6.3.4]
        at 
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
 [spring-security-web-6.3.4.jar:6.3.4]
        at 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
 [spring-security-web-6.3.4.jar:6.3.4]
        at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
 [spring-web-6.1.14.jar:6.1.14]
        at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
 [spring-web-6.1.14.jar:6.1.14]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
 [catalina.jar:10.1.34]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
 [catalina.jar:10.1.34]
        at 
org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:70)
 [log4j-jakarta-web-2.23.1.jar:2.23.1]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
 [catalina.jar:10.1.34]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
 [catalina.jar:10.1.34]
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
 [catalina.jar:10.1.34]
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
 [catalina.jar:10.1.34]
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
 [catalina.jar:10.1.34]
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) 
[catalina.jar:10.1.34]
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) 
[catalina.jar:10.1.34]
        at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
 [catalina.jar:10.1.34]
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
 [catalina.jar:10.1.34]
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) 
[catalina.jar:10.1.34]
        at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:431) 
[tomcat-coyote.jar:10.1.34]
        at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
 [tomcat-coyote.jar:10.1.34]
        at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905)
 [tomcat-coyote.jar:10.1.34]
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
 [tomcat-coyote.jar:10.1.34]
        at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) 
[tomcat-coyote.jar:10.1.34]
        at 
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
 [tomcat-util.jar:10.1.34]
        at 
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
 [tomcat-util.jar:10.1.34]
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
 [tomcat-util.jar:10.1.34]
        at java.lang.Thread.run(Thread.java:840) [?:?]


> On Apr 9, 2025, at 10:24 AM, Sean Arms <sarms@xxxxxxxx> wrote:
> 
> Greetings Evan!
> 
> This is the first time I've seen this particular error, but I see at least 
> one spot in the code that might end up with a null value for the newSettings 
> object. Do you see any errors in the TDS logs with more details 
> (threddsServlet logs), perhaps with a stacktrace? Could I also get a copy of 
> your wmsConfig.xml file (${tds.content.root.path}/thredds/wmsConfig.xml)?
> 
> Cheers!
> 
> Sean
> 
> 
> On Wed, Apr 9, 2025 at 9:33 AM Evan Magri - NOAA Affiliate 
> <evan.magri@xxxxxxxx <mailto:evan.magri@xxxxxxxx>> wrote:
>> Good morning,
>> 
>> I'm encountering a persistent error in our THREDDS 5.6 deployment. The 
>> servlet is throwing a NullPointerException, and the WMS functionality is not 
>> working as expected.
>> 
>> Here's the relevant error from the Tomcat logs:
>> 03-Apr-2025 16:34:19.346 SEVERE [ajp-nio-140.172.190.31-8009-exec-22] 
>> org.apache.catalina.core.StandardWrapperValve.invoke 
>> Servlet.service() for servlet [wms] in context with path [/thredds##5.6] 
>> threw exception
>>     java.io.IOException: java.lang.NullPointerException: Cannot read field 
>> "allowFeatureInfo" because "newSettings" is null
>> 
>> Could you please provide guidance on what might be causing the newSettings 
>> object to be null in this case?
>> 
>> Thank you for your help, and please let me know if you need additional 
>> configuration details or logs.
>> 
>> Regards,
>> 
>> Evan Magri, IT/Computer Specialist II, Systems Administrator
>> Contractor - Team Alpha Omega for NCEI Data Stewardship
>> NOAA's National Centers for Environmental Information (NCEI)
>> NCEI Data Stewardship Division/Data Access Branch
>> 151 Patton Avenue, Asheville, NC 28801 (E/NE54)
>> E-mail: evan.magri@xxxxxxxx <mailto:evan.magri@xxxxxxxx>
>> Google Voice: (828) 271-4019‬
>> _______________________________________________
>> NOTE: All exchanges posted to Unidata maintained email lists are
>> recorded in the Unidata inquiry tracking system and made publicly
>> available through the web.  Users who post to any of the lists we
>> maintain are reminded to remove any personal information that they
>> do not want to be made public.
>> 
>> 
>> thredds mailing list
>> thredds@xxxxxxxxxxxxxxxx <mailto:thredds@xxxxxxxxxxxxxxxx>
>> For list information or to unsubscribe,  visit: 
>> https://www.unidata.ucar.edu/mailing_lists/

----
Ernest H. Joynt, III
System Administrator
Contractor – Team Alpha Omega
NOAA's National Centers for Environmental Information (NCEI)
NCEI Mission Support Division / IT Operations Branch
325 Broadway E/NE71
Boulder, CO 80305

E: ernie.joynt@xxxxxxxx
V: 720.446.9152

  • 2025 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the thredds archives: