jira.codehaus.org

  • Log In Access more options
    • Online Help
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What?s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • GeoServer
  • GEOS-1687

KVP parsing can NPE depending on the container if an empty parameter is used

  • Log In
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Blocker Blocker
  • Resolution: Cannot Reproduce
  • Affects Version/s: 1.6.0-RC3
  • Fix Version/s: 1.6.1
  • Component/s: WMS
  • Labels:
    None

Description

Tim just managed to get an NPE on atlas.openplans.org by doing this request:

http://sigma.openplans.org/geoserver/wms?LAYERS=opengeo%3Arestricted&FORMAT=image%2Fpng&TRANSPARENT=true&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A900913&TRANSACTION_ID=2&BBOX=-11551086.120762503,5538091.8792375,-11531518.241525004,5557659.758475&WIDTH=256&HEIGHT=256

and the stack trace is:

org.geoserver.platform.ServiceException: java.lang.NullPointerException
	at org.geoserver.ows.Dispatcher.exception(Dispatcher.java:1163)
	at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:198)
	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:178)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
	at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:354)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
	at org.geotools.util.Converters.convert(Converters.java:123)
	at org.geotools.util.Converters.convert(Converters.java:90)
	at org.geoserver.ows.KvpRequestReader.read(KvpRequestReader.java:140)
	at org.geoserver.wms.kvp.GetMapKvpRequestReader.read(GetMapKvpRequestReader.java:149)
	at org.geoserver.ows.Dispatcher.parseRequestKVP(Dispatcher.java:1002)
	at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:371)
	at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:185)
	... 41 more

Now, I've looked into the code and this seems to be possible only if the HttpRequest kvp map contains null values inside... which is very odd, and I don't know how to reproduce...
apparently from the Map interface specification implementors are allows to have maps that do accept nulls both as keys and as values...

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
Hide
Permalink
Andrea Aime added a comment - 23/Jan/08 2:24 AM

David, can you double check if it's one of the logging/compression filters that's causing this and fix it?

Show
Andrea Aime added a comment - 23/Jan/08 2:24 AM David, can you double check if it's one of the logging/compression filters that's causing this and fix it?
Hide
Permalink
David Winslow added a comment - 23/Jan/08 8:53 AM

Looking at the tomcat logs on Atlas, I don't see any output from the logging or compression filter (they're both pretty noisy) so I don't think that's causing the problem.

Show
David Winslow added a comment - 23/Jan/08 8:53 AM Looking at the tomcat logs on Atlas, I don't see any output from the logging or compression filter (they're both pretty noisy) so I don't think that's causing the problem.
Hide
Permalink
David Winslow added a comment - 13/Feb/08 2:15 PM

This seems to have gone away; I'm not familiar with what configuration changes have been made on sigma, but the request works fine for me.

Show
David Winslow added a comment - 13/Feb/08 2:15 PM This seems to have gone away; I'm not familiar with what configuration changes have been made on sigma, but the request works fine for me.
Hide
Permalink
Andrea Aime added a comment - 03/Nov/08 1:51 AM

All these issues have been in "resolved" state for at least one month (many of them, much more than that). Since no one has reopened them, I'm mass-switching them to closed state. Reopen if you feel the issue has not been addressed properly.

Show
Andrea Aime added a comment - 03/Nov/08 1:51 AM All these issues have been in "resolved" state for at least one month (many of them, much more than that). Since no one has reopened them, I'm mass-switching them to closed state. Reopen if you feel the issue has not been addressed properly.

People

  • Assignee:
    David Winslow
    Reporter:
    Andrea Aime
Vote (0)
Watch (0)

Dates

  • Created:
    18/Jan/08 10:39 AM
    Updated:
    03/Nov/08 1:51 AM
    Resolved:
    13/Feb/08 2:15 PM
  • Atlassian JIRA (v5.0.4#731-sha1:3aa7374)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for Codehaus. Try JIRA - bug tracking software for your team.