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

Reply via email to