[Geoserver-devel] [jira] (GEOS-5793) When zooming in close java.lang.IndexOutOfBoundsException: pos < flushedPos! is thrown.

Michael Fazio created BugGEOS-5793
When zooming in close java.lang.IndexOutOfBoundsException: pos < flushedPos! is thrown.

Issue Type:

BugBug

Affects Versions:

2.2.2

Assignee:

Andrea Aime

Created:

29/Apr/13 6:53 AM

Description:

We have a GeoServer instance serving map tiles to a Vaadin based application. We are using a Vaadin wrapper for OpenLayers.

We are serving a 97MB BlueMarble GeoTIFF through our web application. We have observed that when zoomed in, if we pan around we get an IndexOutOfBoundsException thrown. This does not seem to occur when we are panning around when zoomed out.

It would seem to me that this error may be occurring during some down sampling routine (though this is just a hunch).

There seems to be several other people that have reporting this problem in the past. I provide the following links:

http://comments.gmane.org/gmane.comp.gis.geoserver.user/24873
http://osgeo-org.1560.x6.nabble.com/IndexOutOfBoundsException-td5028320.html
https://jira.codehaus.org/browse/GEOS-5184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Although the issue does seem somewhat benign, it does pollute our server logs considerably and is alarming to system administrators.

The following is an export of the stacktrace in question:

jvm 1    | 29 Apr 19:38:22 ERROR [geoserver.ows] -
jvm 1    | java.lang.IndexOutOfBoundsException: pos &lt; flushedPos!
jvm 1    |      at javax.imageio.stream.ImageInputStreamImpl.seek(Unknown Source)
jvm 1    |      at com.sun.imageio.plugins.png.IDATOutputStream.finishChunk(Unknown Source)
jvm 1    |      at com.sun.imageio.plugins.png.IDATOutputStream.deflate(Unknown Source)
jvm 1    |      at com.sun.imageio.plugins.png.IDATOutputStream.finish(Unknown Source)
jvm 1    |      at com.sun.imageio.plugins.png.PNGImageWriter.write_IDAT(Unknown Source)
jvm 1    |      at com.sun.imageio.plugins.png.PNGImageWriter.write(Unknown Source)
jvm 1    |      at org.geotools.image.ImageWorker.writePNG(ImageWorker.java:2485)
jvm 1    |      at org.geoserver.wms.map.PNGMapResponse.formatImageOutputStream(PNGMapResponse.java:118)
jvm 1    |      at org.geoserver.wms.map.RenderedImageMapResponse.write(RenderedImageMapResponse.java:122)
jvm 1    |      at org.geoserver.ows.Dispatcher.response(Dispatcher.java:912)
jvm 1    |      at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:276)
jvm 1    |      at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
jvm 1    |      at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerA
dapter.java:48)
jvm 1    |      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
jvm 1    |      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
jvm 1    |      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
jvm 1    |      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
jvm 1    |      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
jvm 1    |      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
jvm 1    |      at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:23)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
jvm 1    |      at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74)
jvm 1    |      at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
jvm 1    |      at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
jvm 1    |      at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109
)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
jvm 1    |      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.jav
a:311)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerComposi
teFilter.java:68)
jvm 1    |      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityI
nterceptor.java:116)
jvm 1    |      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurit
yInterceptor.java:83)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerComposi
teFilter.java:72)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
jvm 1    |      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.jav
a:323)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerComposi
teFilter.java:68)
jvm 1    |      at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFi
lter.java:113)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerComposi
teFilter.java:72)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
jvm 1    |      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.jav
a:323)
jvm 1    |      at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAu
thenticationFilter.java:53)
jvm 1    |      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.jav
a:323)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerComposi
teFilter.java:68)
jvm 1    |      at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthen
ticationFilter.java:150)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerComposi
teFilter.java:72)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
jvm 1    |      at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthentica
tionFilter.java:82)
jvm 1    |      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.jav
a:323)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerComposi
teFilter.java:68)
jvm 1    |      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContext
PersistenceFilter.java:87)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerComposi
teFilter.java:72)
jvm 1    |      at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
jvm 1    |      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.jav
a:323)
jvm 1    |      at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
jvm 1    |      at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProx
y.java:97)
jvm 1    |      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346
)
jvm 1    |      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
jvm 1    |      at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:71)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
jvm 1    |      at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
jvm 1    |      at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
jvm 1    |      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
jvm 1    |      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
jvm 1    |      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
jvm 1    |      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
jvm 1    |      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
jvm 1    |      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
jvm 1    |      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
jvm 1    |      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
jvm 1    |      at org.mortbay.jetty.Server.handle(Server.java:326)
jvm 1    |      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
jvm 1    |      at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
jvm 1    |      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
jvm 1    |      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
jvm 1    |      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
jvm 1    |      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
jvm 1    |      at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Environment:

Windows (multiple versions)

Project:

GeoServer

Priority:

MajorMajor

Reporter:

Michael Fazio

This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: [http://www.atlassian.com/software/jira](http://www.atlassian.com/software/jira)