Opened jira here:
https://jira.codehaus.org/browse/GEOS-6357
2014-02-18 17:09 GMT+01:00 Justin Deoliveira <[email protected]>:
> Right, makes sense. I don't see any issue with making the cache clearing a
> bit more robust to account for that case.
>
>
> On Tue, Feb 18, 2014 at 5:00 AM, carlo cancellieri <
> [email protected]> wrote:
>
>> Hi I'm encountering some trouble running geoserver-manager integration
>> tests over geoserver-2.5 (master).
>>
>> I'm getting many null pointer exception on 'info' into:
>> org.geoserver.catalog.ResourcePool.FeatureTypeCache.dispose(String,
>> FeatureType)
>>
>> Seems that the problem is originated here:
>> org.geoserver.catalog.impl.CatalogImpl.remove(ResourceInfo)
>> where the object is actually removed from the catalog before the
>> execution of the above method (dispose).
>>
>> What do you think?
>>
>> Here is the stack trace of the suspended thread:
>>
>> ------------------ StackTrace -----------------------
>>
>> Thread [btpool0-57] (Suspended (breakpoint at line 1790 in
>> ResourcePool$FeatureTypeCache))
>> ResourcePool$FeatureTypeCache.dispose(String, FeatureType) line: 1790
>> ResourcePool$FeatureTypeCache.dispose(Object, Object) line: 1
>>
>> ResourcePool$FeatureTypeCache(ResourcePool$CatalogResourceCache<K,V>).remove(Object)
>> line: 1760
>> ResourcePool.clear(FeatureTypeInfo) line: 1072
>> ResourcePool$CacheClearingListener.visit(FeatureTypeInfo) line: 1959
>> FeatureTypeInfoImpl.accept(CatalogVisitor) line: 96
>> ResourcePool$CacheClearingListener.handleRemoveEvent(CatalogRemoveEvent)
>> line: 1941
>> CatalogImpl.event(CatalogEvent) line: 1445
>> CatalogImpl.fireRemoved(CatalogInfo) line: 1433
>> CatalogImpl.removed(CatalogInfo) line: 1400
>> CatalogImpl.remove(ResourceInfo) line: 420
>> SecureCatalogImpl.remove(ResourceInfo) line: 1274
>> AdvertisedCatalog(AbstractFilteredCatalog).remove(ResourceInfo) line:
>> 718
>> LocalWorkspaceCatalog(AbstractCatalogDecorator).remove(ResourceInfo)
>> line: 206
>> CascadeDeleteVisitor.visit(LayerInfo) line: 128
>> LayerInfoImpl.accept(CatalogVisitor) line: 239
>> GeneratedMethodAccessor77.invoke(Object, Object[]) line: not available
>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
>> Method.invoke(Object, Object...) line: 616
>> ModificationProxy.invoke(Object, Method, Object[]) line: 145
>> $Proxy63.accept(CatalogVisitor) line: not available
>> CascadeDeleteVisitor.visitStore(StoreInfo) line: 69
>> CascadeDeleteVisitor.visit(DataStoreInfo) line: 82
>> DataStoreInfoImpl.accept(CatalogVisitor) line: 41
>> GeneratedMethodAccessor77.invoke(Object, Object[]) line: not available
>> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
>> Method.invoke(Object, Object...) line: 616
>> ModificationProxy.invoke(Object, Method, Object[]) line: 145
>> $Proxy3.accept(CatalogVisitor) line: not available
>> CascadeDeleteVisitor.visit(WorkspaceInfo) line: 46
>> WorkspaceResource.handleObjectDelete() line: 166
>> WorkspaceResource(ReflectiveResource).handleDelete() line: 224
>> WorkspaceFinder(Finder).handle(Request, Response) line: 300
>> BeanDelegatingRestlet.handle(Request, Response) line: 37
>> Route(Filter).doHandle(Request, Response) line: 105
>> Route(Filter).handle(Request, Response) line: 134
>> RESTDispatcher$1(Router).handle(Request, Response) line: 444
>> RESTDispatcher$1.handle(Request, Response) line: 204
>> GeoServerServletConverter(ServletConverter).service(HttpServletRequest,
>> HttpServletResponse) line: 129
>> RESTDispatcher.handleRequestInternal(HttpServletRequest,
>> HttpServletResponse) line: 86
>> RESTDispatcher(AbstractController).handleRequest(HttpServletRequest,
>> HttpServletResponse) line: 153
>> SimpleControllerHandlerAdapter.handle(HttpServletRequest,
>> HttpServletResponse, Object) line: 48
>> DispatcherServlet.doDispatch(HttpServletRequest, HttpServletResponse)
>> line: 923
>> DispatcherServlet.doService(HttpServletRequest, HttpServletResponse)
>> line: 852
>> DispatcherServlet(FrameworkServlet).processRequest(HttpServletRequest,
>> HttpServletResponse) line: 882
>> DispatcherServlet(FrameworkServlet).doDelete(HttpServletRequest,
>> HttpServletResponse) line: 811
>> DispatcherServlet(HttpServlet).service(HttpServletRequest,
>> HttpServletResponse) line: 733
>> DispatcherServlet(HttpServlet).service(ServletRequest, ServletResponse)
>> line: 820
>> ServletHolder.handle(ServletRequest, ServletResponse) line: 487
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1093
>> ThreadLocalsCleanupFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 27
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1084
>> SpringDelegatingFilter$Chain.doFilter(ServletRequest, ServletResponse)
>> line: 74
>> AnimatorFilter.doFilter(ServletRequest, ServletResponse, FilterChain)
>> line: 70
>> SpringDelegatingFilter$Chain.doFilter(ServletRequest, ServletResponse)
>> line: 70
>> SpringDelegatingFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 45
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1084
>> AdvancedDispatchFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 49
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1084
>> FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 311
>> GeoServerCompositeFilter$NestedFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 68
>> FilterSecurityInterceptor.invoke(FilterInvocation) line: 116
>> FilterSecurityInterceptor.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 83
>> GeoServerCompositeFilter$NestedFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 72
>>
>> GeoServerSecurityInterceptorFilter(GeoServerCompositeFilter).doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 91
>> FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 323
>> GeoServerCompositeFilter$NestedFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 68
>> ExceptionTranslationFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 113
>> GeoServerCompositeFilter$NestedFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 72
>>
>> GeoServerExceptionTranslationFilter(GeoServerCompositeFilter).doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 91
>> FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 323
>> GeoServerAnonymousAuthenticationFilter.doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 53
>> FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 323
>> GeoServerCompositeFilter$NestedFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 68
>> BasicAuthenticationFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 201
>> GeoServerCompositeFilter$NestedFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 72
>>
>> GeoServerBasicAuthenticationFilter(GeoServerCompositeFilter).doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 91
>> GeoServerBasicAuthenticationFilter.doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 82
>> FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 323
>> GeoServerCompositeFilter$NestedFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 68
>> GeoServerSecurityContextPersistenceFilter$1(SecurityContextPersistenceFilter).doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 87
>> GeoServerSecurityContextPersistenceFilter$1.doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 52
>> GeoServerCompositeFilter$NestedFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 72
>>
>> GeoServerSecurityContextPersistenceFilter(GeoServerCompositeFilter).doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 91
>> FilterChainProxy$VirtualFilterChain.doFilter(ServletRequest,
>> ServletResponse) line: 323
>> GeoServerSecurityFilterChainProxy(FilterChainProxy).doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 173
>> GeoServerSecurityFilterChainProxy.doFilter(ServletRequest,
>> ServletResponse, FilterChain) line: 134
>> DelegatingFilterProxy.invokeDelegate(Filter, ServletRequest,
>> ServletResponse, FilterChain) line: 346
>> DelegatingFilterProxy.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 259
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1084
>> LoggingFilter.doFilter(ServletRequest, ServletResponse, FilterChain)
>> line: 75
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1084
>> GZIPFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line:
>> 48
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1084
>> SessionDebugFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 47
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1084
>> FlushSafeFilter.doFilter(ServletRequest, ServletResponse, FilterChain)
>> line: 43
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1084
>> SetCharacterEncodingFilter.doFilter(ServletRequest, ServletResponse,
>> FilterChain) line: 109
>> ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse)
>> line: 1084
>> ServletHandler.handle(String, HttpServletRequest, HttpServletResponse,
>> int) line: 360
>> SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse,
>> int) line: 216
>> SessionHandler.handle(String, HttpServletRequest, HttpServletResponse,
>> int) line: 181
>> WebAppContext(ContextHandler).handle(String, HttpServletRequest,
>> HttpServletResponse, int) line: 726
>> WebAppContext.handle(String, HttpServletRequest, HttpServletResponse,
>> int) line: 405
>> Server(HandlerWrapper).handle(String, HttpServletRequest,
>> HttpServletResponse, int) line: 152
>> Server.handle(HttpConnection) line: 324
>> HttpConnection.handleRequest() line: 505
>> HttpConnection$RequestHandler.headerComplete() line: 828
>> HttpParser.parseNext() line: 514
>> HttpParser.parseAvailable() line: 211
>> HttpConnection.handle() line: 380
>> SocketConnector$Connection.run() line: 228
>> BoundedThreadPool$PoolThread.run() line: 450
>>
>>
>> --
>> ==
>> Our support, Your Success! Visit http://opensdi.geo-solutions.it for
>> more information.
>> ==
>>
>> Dott. Carlo Cancellieri
>> @cancellieric
>> Software Engineer
>>
>> GeoSolutions S.A.S.
>> Via Poggio alle Viti 1187
>> 55054 Massarosa (LU)
>> Italy
>> phone: +39 0584 962313
>> fax: +39 0584 1660272
>>
>> http://www.geo-solutions.it
>> http://twitter.com/geosolutions_it
>>
>> -------------------------------------------------------
>>
>>
>> ------------------------------------------------------------------------------
>> Managing the Performance of Cloud-Based Applications
>> Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
>> Read the Whitepaper.
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
>> _______________________________________________
>> Geoserver-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>
>>
>
>
> --
> *Justin Deoliveira*
> Vice President, Engineering | Boundless
> [email protected]
> @j_deolive <https://twitter.com/j_deolive>
>
--
==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more
information.
==
Dott. Carlo Cancellieri
@cancellieric
Software Engineer
GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
-------------------------------------------------------
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel