Frequent NullPointerExceptions from WMS requests

View: New views
5 Messages — Rating Filter:   Alert me  

Frequent NullPointerExceptions from WMS requests

by Luke Douglas :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

Hi all,

 

I’m running Geoserver 2.0 on Glassfish 2.1.1, and I’m seeing the NullPointerException below with alarming frequency in my server logs. (I’m using the instance exclusively to generate overlays for a Google Maps application against a PostGIS data store.) I’m seeing sporadic white error tiles (reading 'code="Internal Error " java.lang.NullPointerException', but which render correctly when requested individually) and mismatched results (where a WMS request receives a tile requested by a different, simultaneous request) in my application, and I suspect they’re somehow related to this exception.

 

Does anyone have any suggestions as to how I might go about troubleshooting this exception?

 

Thanks,

-Luke

 

ERROR [geoserver.ows] -org.vfny.geoserver.wms.WmsException: java.lang.NullPointerException

        at org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:442)

        at org.geoserver.ows.adapters.ResponseAdapter.getMimeType(ResponseAdapter.java:48)

        at org.geoserver.ows.Dispatcher.response(Dispatcher.java:692)

        at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:213)

        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)

        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)

        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)

        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:333)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

        at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)

        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:275)

        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)

        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)

        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

        at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)

        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)

        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)

        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

        at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

        at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:313)

        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)

        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)

        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)

        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)

        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)

        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)

        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)

        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)

        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)

        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)

        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)

        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)

        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)

        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)

        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)

        at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

Caused by: java.lang.NullPointerException

        at com.sun.enterprise.web.connector.coyote.PwcCoyoteRequest.getFormHintFieldEncoding(PwcCoyoteRequest.java:238)

        at com.sun.enterprise.web.connector.coyote.PwcCoyoteRequest.setRequestEncodingFromSunWebXml(PwcCoyoteRequest.java:204)

        at com.sun.enterprise.web.connector.coyote.PwcCoyoteRequest.getCharacterEncoding(PwcCoyoteRequest.java:124)

        at org.apache.coyote.tomcat5.CoyoteRequest.parseRequestParameters(CoyoteRequest.java:3045)

        at org.apache.coyote.tomcat5.CoyoteRequest.getParameterNames(CoyoteRequest.java:1374)

        at org.apache.coyote.tomcat5.CoyoteRequestFacade.getParameterNames(CoyoteRequestFacade.java:449)

        at org.vfny.geoserver.wms.responses.map.metatile.QuickTileCache.buildMapDefinition(QuickTileCache.java:178)

        at org.vfny.geoserver.wms.responses.map.metatile.QuickTileCache.getMetaTileKey(QuickTileCache.java:89)

        at org.vfny.geoserver.wms.responses.map.metatile.MetatileMapProducer.produceMap(MetatileMapProducer.java:88)

        at org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:421)

        ... 68 more

 


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Geoserver-users mailing list
Geoserver-users@...
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Re: Frequent NullPointerExceptions from WMS requests

by Andrea Aime-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Luke Douglas ha scritto:

> Hi all,
>
>  
>
> I’m running Geoserver 2.0 on Glassfish 2.1.1, and I’m seeing the
> NullPointerException below with alarming frequency in my server logs.
> (I’m using the instance exclusively to generate overlays for a Google
> Maps application against a PostGIS data store.) I’m seeing sporadic
> white error tiles (reading 'code="Internal Error "
> java.lang.NullPointerException', but which render correctly when
> requested individually) and mismatched results (where a WMS request
> receives a tile requested by a different, simultaneous request) in my
> application, and I suspect they’re somehow related to this exception.
>
>  
>
> Does anyone have any suggestions as to how I might go about
> troubleshooting this exception?

Sounds very much like a but in Glassfish. The method called by GeoServer
is HTTPServletRequest.getParameterNames that is a standard Servlet API
method.

> Caused by: java.lang.NullPointerException
>
>         at
> com.sun.enterprise.web.connector.coyote.PwcCoyoteRequest.getFormHintFieldEncoding(PwcCoyoteRequest.java:238)
>
>         at
> com.sun.enterprise.web.connector.coyote.PwcCoyoteRequest.setRequestEncodingFromSunWebXml(PwcCoyoteRequest.java:204)
>
>         at
> com.sun.enterprise.web.connector.coyote.PwcCoyoteRequest.getCharacterEncoding(PwcCoyoteRequest.java:124)
>
>         at
> org.apache.coyote.tomcat5.CoyoteRequest.parseRequestParameters(CoyoteRequest.java:3045)
>
>         at
> org.apache.coyote.tomcat5.CoyoteRequest.getParameterNames(CoyoteRequest.java:1374)
>
>         at
> org.apache.coyote.tomcat5.CoyoteRequestFacade.getParameterNames(CoyoteRequestFacade.java:449)
>
>         at
> org.vfny.geoserver.wms.responses.map.metatile.QuickTileCache.buildMapDefinition(QuickTileCache.java:178)
>
>         at
> org.vfny.geoserver.wms.responses.map.metatile.QuickTileCache.getMetaTileKey(QuickTileCache.java:89)
>
>         at
> org.vfny.geoserver.wms.responses.map.metatile.MetatileMapProducer.produceMap(MetatileMapProducer.java:88)
>
>         at
> org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:421)
>
>         ... 68 more


I never tested out Glassfish 2, but Glassfish 3 Preview worked fine in
the few load tests I've run some time ago

Cheers
Andrea


--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Geoserver-users mailing list
Geoserver-users@...
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Re: Frequent NullPointerExceptions from WMS requests

by Andrea Aime-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andrea Aime ha scritto:

> Luke Douglas ha scritto:
>> Hi all,
>>
>>  
>>
>> I’m running Geoserver 2.0 on Glassfish 2.1.1, and I’m seeing the
>> NullPointerException below with alarming frequency in my server logs.
>> (I’m using the instance exclusively to generate overlays for a Google
>> Maps application against a PostGIS data store.) I’m seeing sporadic
>> white error tiles (reading 'code="Internal Error "
>> java.lang.NullPointerException', but which render correctly when
>> requested individually) and mismatched results (where a WMS request
>> receives a tile requested by a different, simultaneous request) in my
>> application, and I suspect they’re somehow related to this exception.
>>
>>  
>>
>> Does anyone have any suggestions as to how I might go about
>> troubleshooting this exception?
>
> Sounds very much like a but in Glassfish.

A bug, that is...

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Geoserver-users mailing list
Geoserver-users@...
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Re: Frequent NullPointerExceptions from WMS requests

by Luke Douglas :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Andrea,

Thanks for the suggestion. To try it out, I stopped Glassfish and ran your Jetty-based distribution instead, pointing to the same data directory as before. I'm now seeing a different exception, roughly as frequently as before (included below), and arguably more "mismatched" results. I can't determine if there's a one-to-one relationship between exceptions and incorrect results, but it's possible.

Is it possible that the WMS code has a threading bug, possibly in conjunction with virtual hosts? (I'm round-robining three virtual hosts in OpenLayers to improve performance. I'm generating roughly 810 concurrent WMS requests when opening a map.)

Thanks,
-Luke

03 Nov 11:38:57 ERROR [geoserver.ows] -
org.geoserver.platform.ServiceException: Could not determine geoserver request from http request GET /geoserver/wms?LAYERS=v2%3Acustomer&STYLES=customer_4&SRS=EPSG%3A900913&FORMAT=image%2Fpng&TILED=true&TILESORIGIN=143.60260815000004%2C-43.851764249999995&TRANSPARENT=true&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&BBOX=-9382798.095181251,4070118.8806000017,-9373014.155562501,4079902.8202187517&WIDTH=256&HEIGHT=256 HTTP/1.1
Host: <virtual host 1>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 (.NET CLR 3.5.30729)
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: <referer>
Cookie: JSESSIONID=<cookie>


        at org.geoserver.ows.Dispatcher.dispatch(Dispatcher.java:389)
        at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:206)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        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:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

-----Original Message-----
From: Andrea Aime [mailto:aaime@...]
Sent: Tuesday, November 03, 2009 9:55 AM
To: Luke Douglas
Cc: geoserver-users@...
Subject: Re: [Geoserver-users] Frequent NullPointerExceptions from WMS requests

Luke Douglas ha scritto:

> Hi all,
>
>  
>
> I'm running Geoserver 2.0 on Glassfish 2.1.1, and I'm seeing the
> NullPointerException below with alarming frequency in my server logs.
> (I'm using the instance exclusively to generate overlays for a Google
> Maps application against a PostGIS data store.) I'm seeing sporadic
> white error tiles (reading 'code="Internal Error "
> java.lang.NullPointerException', but which render correctly when
> requested individually) and mismatched results (where a WMS request
> receives a tile requested by a different, simultaneous request) in my
> application, and I suspect they're somehow related to this exception.
>
>  
>
> Does anyone have any suggestions as to how I might go about
> troubleshooting this exception?

Sounds very much like a but in Glassfish. The method called by GeoServer
is HTTPServletRequest.getParameterNames that is a standard Servlet API
method.

> Caused by: java.lang.NullPointerException
>
>         at
> com.sun.enterprise.web.connector.coyote.PwcCoyoteRequest.getFormHintFieldEncoding(PwcCoyoteRequest.java:238)
>
>         at
> com.sun.enterprise.web.connector.coyote.PwcCoyoteRequest.setRequestEncodingFromSunWebXml(PwcCoyoteRequest.java:204)
>
>         at
> com.sun.enterprise.web.connector.coyote.PwcCoyoteRequest.getCharacterEncoding(PwcCoyoteRequest.java:124)
>
>         at
> org.apache.coyote.tomcat5.CoyoteRequest.parseRequestParameters(CoyoteRequest.java:3045)
>
>         at
> org.apache.coyote.tomcat5.CoyoteRequest.getParameterNames(CoyoteRequest.java:1374)
>
>         at
> org.apache.coyote.tomcat5.CoyoteRequestFacade.getParameterNames(CoyoteRequestFacade.java:449)
>
>         at
> org.vfny.geoserver.wms.responses.map.metatile.QuickTileCache.buildMapDefinition(QuickTileCache.java:178)
>
>         at
> org.vfny.geoserver.wms.responses.map.metatile.QuickTileCache.getMetaTileKey(QuickTileCache.java:89)
>
>         at
> org.vfny.geoserver.wms.responses.map.metatile.MetatileMapProducer.produceMap(MetatileMapProducer.java:88)
>
>         at
> org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:421)
>
>         ... 68 more


I never tested out Glassfish 2, but Glassfish 3 Preview worked fine in
the few load tests I've run some time ago

Cheers
Andrea


--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Geoserver-users mailing list
Geoserver-users@...
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Re: Frequent NullPointerExceptions from WMS requests

by Andrea Aime-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Luke Douglas ha scritto:
> Hi Andrea,
>
> Thanks for the suggestion. To try it out, I stopped Glassfish and ran
> your Jetty-based distribution instead, pointing to the same data
> directory as before. I'm now seeing a different exception, roughly as
> frequently as before (included below), and arguably more "mismatched"
> results. I can't determine if there's a one-to-one relationship
> between exceptions and incorrect results, but it's possible.

I looked a bit into the Dispatcher code but could not find any
obvious piece of thread unsafe code, all I see seems to be local
variables and per thread objects.

I also cannot reproduce these errors, but then again I don't have
a machine powerful enough to get even close to 810 concurrent request,
just going to 80 brings my development machine to its knees.

However for this kind of workload a WMS is definitely a bad fit,
you most definitely want to use a tile cache, at least for the
layers that do not change often

Cheers
Andrea


--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Geoserver-users mailing list
Geoserver-users@...
https://lists.sourceforge.net/lists/listinfo/geoserver-users