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.
Greeting Evan, I see what is happening now. I exposed some new default WMS config options that were available in edal-java but not yet used by the TDS. As a result, the wmsConfig.xml file needs to be modified to include the new options in the default section. The new default section that ships with the TDS looks like this: <defaults> <!-- The global defaults. All elements are mandatory --> <allowFeatureInfo>true</allowFeatureInfo> <defaultColorScaleRange>-50 50</defaultColorScaleRange> <defaultAboveMaxColor>#000000</defaultAboveMaxColor> <defaultBelowMinColor>#000000</defaultBelowMinColor> <defaultNoDataColor>extend</defaultNoDataColor> <defaultOpacity>100</defaultOpacity> <defaultPaletteName>psu-viridis</defaultPaletteName> <defaultNumColorBands>20</defaultNumColorBands> <logScaling>false</logScaling> <!--Deprecated: intervalTime (does not work, to be removed in v6)--> <intervalTime>false</intervalTime> </defaults> If you have not modified anything in your current wmsConfig.xml, you may delete it and restart the TDS, which will cause a new, updated version of the default config to be created. I will modify the release notes on github and the docs to call this important update step for those using wms - my apologies. Note that you also may need to remove the projection database files as part of the upgrade to 5.6 (${tds.content.root.path}/thredds/cache/edal-java/epsg/.h2), which is related to an incompatible upstream change. Cheers, Sean On Wed, Apr 9, 2025 at 10:56 AM Evan Magri - NOAA Affiliate < evan.magri@xxxxxxxx> wrote: > Hey Sean, > > I've attached the wmsConfig.xml > > 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 > Google Voice: (828) 271-4019 > > > On Wed, Apr 9, 2025 at 12:42 PM Ernie Joynt - NOAA Affiliate < > ernie.joynt@xxxxxxxx> wrote: > >> 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> 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 >>> 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 >>> 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 >> >>
thredds
archives: