Hello,

I am using geoserver 2.12.1.
I successfully created a YSLD style that makes use of the interpolate
function:

feature-styles:
> - name: Yearly Cost
>   rules:
>   - title: fill-graphic
>     symbolizers:
>     - polygon:
>         stroke-width: 0.1
>         stroke-color: '#353535'
>         fill-color: ${interpolate(yearlycost, 40366, '#e0ecf4', 46500,
> '#9ebcda', 61299, '#8856a7', 'color')}


However, when I click "Preview legend", I get an error message at the top
of the screen: "Failed to build legend preview. Check to see if the style
is valid."

This seems to be the pertinent portion of the logs:

> 2018-01-18 15:36:41,349 WARN [web.data] - Failed to build legend preview
> java.lang.NullPointerException
> at
> org.geotools.filter.function.InterpolateFunction.evaluate(InterpolateFunction.java:247)
> at
> org.geotools.renderer.style.SLDStyleFactory.evalToColor(SLDStyleFactory.java:1781)
> at
> org.geotools.renderer.style.SLDStyleFactory.getPaint(SLDStyleFactory.java:1142)
> at
> org.geotools.renderer.style.SLDStyleFactory.setPolygonStyleFill(SLDStyleFactory.java:486)
> at
> org.geotools.renderer.style.SLDStyleFactory.createPolygonStyle(SLDStyleFactory.java:441)
> at
> org.geotools.renderer.style.SLDStyleFactory.createStyleInternal(SLDStyleFactory.java:380)
> at
> org.geotools.renderer.style.SLDStyleFactory.createStyle(SLDStyleFactory.java:333)
> at
> org.geoserver.wms.legendgraphic.BufferedImageLegendGraphicBuilder.buildLegendGraphic(BufferedImageLegendGraphicBuilder.java:415)
> at
> org.geoserver.wms.web.data.StyleAdminPanel$7.onClick(StyleAdminPanel.java:360)
> at
> org.geoserver.web.wicket.GeoServerAjaxFormLink.onSubmit(GeoServerAjaxFormLink.java:42)
> at
> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:111)
> at
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
> at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:787)
> at
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
> at
> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
> at
> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:601)
> at sun.reflect.GeneratedMethodAccessor450.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> at
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> at
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> at
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:895)
> at
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
> at
> org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:159)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> at
> org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:157)
> at
> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:174)
> at
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
> at
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
> at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
> at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
> at
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
> at
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
> org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:423)
> at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:169)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
> org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
> org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)
> at
> org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)
> at
> org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
> at org.geoserver.monitor.MonitorFilter.doFilter(MonitorFilter.java:85)
> at
> org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
> at
> org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
> org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
> at
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
> at
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
> at
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> at
> org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:54)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
> at
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
> at
> org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:116)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
> at
> org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:157)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:69)
> at
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
> at
> org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:53)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:73)
> at
> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> at
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
> at
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
> at
> org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:152)
> at
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
> at
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:88)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
> org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:89)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
> org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:48)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:44)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
> at
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
> at
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
> at
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:748)
> 2018-01-18 15:36:41,350 DEBUG [org.geoserver] - Thread 77 locking in mode
> READ
> 2018-01-18 15:36:41,350 DEBUG [org.geoserver] - Thread 77 releasing the
> lock in mode READ
> 2018-01-18 15:36:41,353 DEBUG [geoserver.filters] - Compressing output for
> mimetype: text/xml;charset=UTF-8
> 2018-01-18 15:36:41,353 DEBUG
> [filter.GeoServerSecurityContextPersistenceFilter$1] -
> SecurityContextHolder now cleared, as request processing completed
> 2018-01-18 15:37:33,557 DEBUG [geoserver.security] - AuthenticationCache
> Eviction task running
> 2018-01-18 15:37:33,557 DEBUG [geoserver.security] - Cache entries #: 0
> 2018-01-18 15:37:33,557 DEBUG [geoserver.security] - AuthenticationCache
> Eviction task completed
> 2018-01-18 15:37:33,557 DEBUG [geoserver.security] - Cache entries #: 0
> 2018-01-18 15:37:38,818 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of
> request : 'Path: /web/wicket/bookmarkable/org.geoserver.web.admin.logpage,
> QueryString: 29-1.IFormSubmitListener-form&lines=1000'; against '/web/**'
> 2018-01-18 15:37:38,818 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Matched Path:
> /web/wicket/bookmarkable/org.geoserver.web.admin.logpage, QueryString:
> 29-1.IFormSubmitListener-form&lines=1000 with /web/**
> 2018-01-18 15:37:38,819 DEBUG [geoserver.monitor] - Testing
> /web/wicket/bookmarkable/org.geoserver.web.admin.LogPage for monitor
> filtering
> 2018-01-18 15:37:38,819 DEBUG [geoserver.monitor] -
> /geoserver/web/wicket/bookmarkable/org.geoserver.web.admin.LogPage was
> filtered from monitoring
> 2018-01-18 15:37:38,832 DEBUG [geoserver.ows] - Could not a layer group
> named web
> 2018-01-18 15:37:38,832 TRACE [ows.OWSHandlerMapping] - No handler mapping
> found for [/web/wicket/bookmarkable/org.geoserver.web.admin.LogPage]
> 2018-01-18 15:37:38,832 DEBUG [geoserver.ows] - Could not a layer group
> named web
> 2018-01-18 15:37:38,832 TRACE [ows.OWSHandlerMapping] - No handler mapping
> found for [/web/wicket/bookmarkable/org.geoserver.web.admin.LogPage]
> 2018-01-18 15:37:38,832 DEBUG [geoserver.ows] - Could not a layer group
> named web
> 2018-01-18 15:37:38,832 TRACE [ows.OWSHandlerMapping] - No handler mapping
> found for [/web/wicket/bookmarkable/org.geoserver.web.admin.LogPage]
> 2018-01-18 15:37:38,839 DEBUG [org.geoserver] - Thread 75 locking in mode
> READ
> 2018-01-18 15:37:38,839 DEBUG [org.geoserver] - Thread 75 got the lock in
> mode READ
> 2018-01-18 15:37:38,840 DEBUG [org.geoserver] - Thread 75 locking in mode
> READ
> 2018-01-18 15:37:38,840 DEBUG [org.geoserver] - Thread 75 releasing the
> lock in mode READ
> 2018-01-18 15:37:38,841 DEBUG
> [filter.GeoServerSecurityContextPersistenceFilter$1] -
> SecurityContextHolder now cleared, as request processing completed
> 2018-01-18 15:37:38,856 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of
> request : 'Path: /web/wicket/bookmarkable/org.geoserver.web.admin.logpage,
> QueryString: lines=1000'; against '/web/**'
> 2018-01-18 15:37:38,856 DEBUG
> [security.IncludeQueryStringAntPathRequestMatcher] - Matched Path:
> /web/wicket/bookmarkable/org.geoserver.web.admin.logpage, QueryString:
> lines=1000 with /web/**
> 2018-01-18 15:37:38,856 DEBUG [geoserver.monitor] - Testing
> /web/wicket/bookmarkable/org.geoserver.web.admin.LogPage for monitor
> filtering
> 2018-01-18 15:37:38,856 DEBUG [geoserver.monitor] -
> /geoserver/web/wicket/bookmarkable/org.geoserver.web.admin.LogPage was
> filtered from monitoring
> 2018-01-18 15:37:38,870 DEBUG [geoserver.ows] - Could not a layer group
> named web
> 2018-01-18 15:37:38,870 TRACE [ows.OWSHandlerMapping] - No handler mapping
> found for [/web/wicket/bookmarkable/org.geoserver.web.admin.LogPage]
> 2018-01-18 15:37:38,870 DEBUG [geoserver.ows] - Could not a layer group
> named web
> 2018-01-18 15:37:38,870 TRACE [ows.OWSHandlerMapping] - No handler mapping
> found for [/web/wicket/bookmarkable/org.geoserver.web.admin.LogPage]
> 2018-01-18 15:37:38,870 DEBUG [geoserver.ows] - Could not a layer group
> named web
> 2018-01-18 15:37:38,870 TRACE [ows.OWSHandlerMapping] - No handler mapping
> found for [/web/wicket/bookmarkable/org.geoserver.web.admin.LogPage]
> 2018-01-18 15:37:38,870 DEBUG [org.geoserver] - Thread 73 locking in mode
> READ
> 2018-01-18 15:37:38,870 DEBUG [org.geoserver] - Thread 73 got the lock in
> mode READ


​Thank you for any help you can provide.​


-- 
Kris Johnson
Natural Resources Research Institute
5013 Miller Trunk Highway, Duluth, MN 55811
p: 218.788.2767
www.nrri.umn.edu
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to