You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by Tom Beerbower <tb...@hortonworks.com> on 2014/09/08 19:53:55 UTC

Review Request 25445: Views: attempting to access views during extraction throws exception

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25445/
-----------------------------------------------------------

Review request for Ambari, Alejandro Fernandez and Nate Cole.


Bugs: AMBARI-7190
    https://issues.apache.org/jira/browse/AMBARI-7190


Repository: ambari


Description
-------

1) Put new views in /views directory
2) restart ambari-server
3) watch ambari-server.log
4) extraction begins and ambari server becomes accessible prior to completion (which is good)
5) go to manage ambari > views (while extraction is continuing)
6) no views are shown in UI table and an exception is printed to log (first error below)
7) even when extraction completes, I can't get views to show in the UI table and a different error is printed to log (second error below)
8) I have to ambari-server restart to get things back working and to get views to show

{code}
22:56:29,839  WARN [qtp422025187-29] ServletHandler:514 - /api/v1/views
java.lang.NullPointerException
	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.toResource(ViewPermissionResourceProvider.java:184)
	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:128)
	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:421)
	at org.apache.ambari.server.api.query.QueryImpl.queryForResources(QueryImpl.java:381)
	at org.apache.ambari.server.api.query.QueryImpl.execute(QueryImpl.java:196)
	at org.apache.ambari.server.api.handlers.ReadHandler.handleRequest(ReadHandler.java:68)
	at org.apache.ambari.server.api.services.BaseRequest.process(BaseRequest.java:135)
	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:103)
	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:72)
	at org.apache.ambari.server.api.services.ViewService.getViews(ViewService.java:75)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
	at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
	at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
	at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
	at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
	at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
	at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1329)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.apache.ambari.server.security.authorization.AmbariAuthorizationFilter.doFilter(AmbariAuthorizationFilter.java:113)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
	at org.apache.ambari.server.api.MethodOverrideFilter.doFilter(MethodOverrideFilter.java:72)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
	at org.apache.ambari.server.api.AmbariPersistFilter.doFilter(AmbariPersistFilter.java:48)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.apache.ambari.server.controller.FailsafeHandlerList.handle(FailsafeHandlerList.java:132)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:363)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)
	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:920)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:982)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Thread.java:744)
{code}


{code}
22:57:17,256  WARN [qtp422025187-73] ServletHandler:514 - /api/v1/views
java.lang.NullPointerException
	at org.apache.ambari.server.view.ViewRegistry.getDefinition(ViewRegistry.java:261)
	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:135)
	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImp
{code}


Diffs
-----

  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PrivilegeResourceProvider.java f0bcaf8 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProvider.java ce23e79 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java bcbc856 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProvider.java ea4acef 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java e2138be 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java 8fb5a33 
  ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProviderTest.java f409f07 
  ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProviderTest.java PRE-CREATION 
  ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProviderTest.java 80f7751 
  ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java 115c2bf 

Diff: https://reviews.apache.org/r/25445/diff/


Testing
-------

Results :

Tests run: 1971, Failures: 0, Errors: 0, Skipped: 16


…


[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 36:58.447s
[INFO] Finished at: Mon Sep 08 11:58:24 EDT 2014
[INFO] Final Memory: 45M/329M
[INFO] ------------------------------------------------------------------------


Thanks,

Tom Beerbower


Re: Review Request 25445: Views: attempting to access views during extraction throws exception

Posted by Nate Cole <nc...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25445/#review52622
-----------------------------------------------------------

Ship it!


Ship It!

- Nate Cole


On Sept. 8, 2014, 1:53 p.m., Tom Beerbower wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25445/
> -----------------------------------------------------------
> 
> (Updated Sept. 8, 2014, 1:53 p.m.)
> 
> 
> Review request for Ambari, Alejandro Fernandez and Nate Cole.
> 
> 
> Bugs: AMBARI-7190
>     https://issues.apache.org/jira/browse/AMBARI-7190
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> 1) Put new views in /views directory
> 2) restart ambari-server
> 3) watch ambari-server.log
> 4) extraction begins and ambari server becomes accessible prior to completion (which is good)
> 5) go to manage ambari > views (while extraction is continuing)
> 6) no views are shown in UI table and an exception is printed to log (first error below)
> 7) even when extraction completes, I can't get views to show in the UI table and a different error is printed to log (second error below)
> 8) I have to ambari-server restart to get things back working and to get views to show
> 
> {code}
> 22:56:29,839  WARN [qtp422025187-29] ServletHandler:514 - /api/v1/views
> java.lang.NullPointerException
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.toResource(ViewPermissionResourceProvider.java:184)
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:128)
> 	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
> 	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:421)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForResources(QueryImpl.java:381)
> 	at org.apache.ambari.server.api.query.QueryImpl.execute(QueryImpl.java:196)
> 	at org.apache.ambari.server.api.handlers.ReadHandler.handleRequest(ReadHandler.java:68)
> 	at org.apache.ambari.server.api.services.BaseRequest.process(BaseRequest.java:135)
> 	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:103)
> 	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:72)
> 	at org.apache.ambari.server.api.services.ViewService.getViews(ViewService.java:75)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
> 	at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
> 	at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> 	at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
> 	at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
> 	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> 	at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
> 	at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1329)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.apache.ambari.server.security.authorization.AmbariAuthorizationFilter.doFilter(AmbariAuthorizationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
> 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.apache.ambari.server.api.MethodOverrideFilter.doFilter(MethodOverrideFilter.java:72)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.apache.ambari.server.api.AmbariPersistFilter.doFilter(AmbariPersistFilter.java:48)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> 	at org.apache.ambari.server.controller.FailsafeHandlerList.handle(FailsafeHandlerList.java:132)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:363)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:920)
> 	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:982)
> 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
> 	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> 	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> 	at java.lang.Thread.run(Thread.java:744)
> {code}
> 
> 
> {code}
> 22:57:17,256  WARN [qtp422025187-73] ServletHandler:514 - /api/v1/views
> java.lang.NullPointerException
> 	at org.apache.ambari.server.view.ViewRegistry.getDefinition(ViewRegistry.java:261)
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:135)
> 	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
> 	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImp
> {code}
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PrivilegeResourceProvider.java f0bcaf8 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProvider.java ce23e79 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java bcbc856 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProvider.java ea4acef 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java e2138be 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java 8fb5a33 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProviderTest.java f409f07 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProviderTest.java PRE-CREATION 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProviderTest.java 80f7751 
>   ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java 115c2bf 
> 
> Diff: https://reviews.apache.org/r/25445/diff/
> 
> 
> Testing
> -------
> 
> Results :
> 
> Tests run: 1971, Failures: 0, Errors: 0, Skipped: 16
> 
> 
> …
> 
> 
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 36:58.447s
> [INFO] Finished at: Mon Sep 08 11:58:24 EDT 2014
> [INFO] Final Memory: 45M/329M
> [INFO] ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Tom Beerbower
> 
>


Re: Review Request 25445: Views: attempting to access views during extraction throws exception

Posted by Alejandro Fernandez <af...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25445/#review52621
-----------------------------------------------------------

Ship it!


- Alejandro Fernandez


On Sept. 8, 2014, 5:53 p.m., Tom Beerbower wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25445/
> -----------------------------------------------------------
> 
> (Updated Sept. 8, 2014, 5:53 p.m.)
> 
> 
> Review request for Ambari, Alejandro Fernandez and Nate Cole.
> 
> 
> Bugs: AMBARI-7190
>     https://issues.apache.org/jira/browse/AMBARI-7190
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> 1) Put new views in /views directory
> 2) restart ambari-server
> 3) watch ambari-server.log
> 4) extraction begins and ambari server becomes accessible prior to completion (which is good)
> 5) go to manage ambari > views (while extraction is continuing)
> 6) no views are shown in UI table and an exception is printed to log (first error below)
> 7) even when extraction completes, I can't get views to show in the UI table and a different error is printed to log (second error below)
> 8) I have to ambari-server restart to get things back working and to get views to show
> 
> {code}
> 22:56:29,839  WARN [qtp422025187-29] ServletHandler:514 - /api/v1/views
> java.lang.NullPointerException
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.toResource(ViewPermissionResourceProvider.java:184)
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:128)
> 	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
> 	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:421)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForResources(QueryImpl.java:381)
> 	at org.apache.ambari.server.api.query.QueryImpl.execute(QueryImpl.java:196)
> 	at org.apache.ambari.server.api.handlers.ReadHandler.handleRequest(ReadHandler.java:68)
> 	at org.apache.ambari.server.api.services.BaseRequest.process(BaseRequest.java:135)
> 	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:103)
> 	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:72)
> 	at org.apache.ambari.server.api.services.ViewService.getViews(ViewService.java:75)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
> 	at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
> 	at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> 	at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
> 	at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
> 	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> 	at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
> 	at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1329)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.apache.ambari.server.security.authorization.AmbariAuthorizationFilter.doFilter(AmbariAuthorizationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
> 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.apache.ambari.server.api.MethodOverrideFilter.doFilter(MethodOverrideFilter.java:72)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.apache.ambari.server.api.AmbariPersistFilter.doFilter(AmbariPersistFilter.java:48)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> 	at org.apache.ambari.server.controller.FailsafeHandlerList.handle(FailsafeHandlerList.java:132)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:363)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:920)
> 	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:982)
> 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
> 	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> 	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> 	at java.lang.Thread.run(Thread.java:744)
> {code}
> 
> 
> {code}
> 22:57:17,256  WARN [qtp422025187-73] ServletHandler:514 - /api/v1/views
> java.lang.NullPointerException
> 	at org.apache.ambari.server.view.ViewRegistry.getDefinition(ViewRegistry.java:261)
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:135)
> 	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
> 	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImp
> {code}
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PrivilegeResourceProvider.java f0bcaf8 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProvider.java ce23e79 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java bcbc856 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProvider.java ea4acef 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java e2138be 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java 8fb5a33 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProviderTest.java f409f07 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProviderTest.java PRE-CREATION 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProviderTest.java 80f7751 
>   ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java 115c2bf 
> 
> Diff: https://reviews.apache.org/r/25445/diff/
> 
> 
> Testing
> -------
> 
> Results :
> 
> Tests run: 1971, Failures: 0, Errors: 0, Skipped: 16
> 
> 
> …
> 
> 
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 36:58.447s
> [INFO] Finished at: Mon Sep 08 11:58:24 EDT 2014
> [INFO] Final Memory: 45M/329M
> [INFO] ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Tom Beerbower
> 
>


Re: Review Request 25445: Views: attempting to access views during extraction throws exception

Posted by Tom Beerbower <tb...@hortonworks.com>.

> On Sept. 8, 2014, 6:08 p.m., Nate Cole wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProvider.java, lines 149-154
> > <https://reviews.apache.org/r/25445/diff/1/?file=682736#file682736line149>
> >
> >     If none of them ever load (say, DB is down or whatever), this reads that a GET will never return anything.  Is this desired?  Or is there such a thing as a "canned" "Instance is loading/in error/pending" response?

You can always check the status and status detail of a view.  So in the case where it can't load for some reason, it will either be in LOADING or ERROR status.  In either case, we can't allow access to the instances until the view is completely loaded.  

>From the UI this will not be an issue since it will block access until the view is LOADED.  

>From the API, there is the case where the request asks for the instances of a specific view that is not yet loaded.  In that case we could possibly return an error instead of an empty set.  The problem is that we can't do that in general.  It may be that a response should include some instances from a loaded view and some from a loading view.  Since the instances really aren't loaded until the view is completely loaded, we can't know if they should be included in the response until the view is loaded.  I think that the best we can do is say that if the view isn't loaded then those resources (the view instances) are currently unknown to us.


- Tom


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25445/#review52615
-----------------------------------------------------------


On Sept. 8, 2014, 5:53 p.m., Tom Beerbower wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25445/
> -----------------------------------------------------------
> 
> (Updated Sept. 8, 2014, 5:53 p.m.)
> 
> 
> Review request for Ambari, Alejandro Fernandez and Nate Cole.
> 
> 
> Bugs: AMBARI-7190
>     https://issues.apache.org/jira/browse/AMBARI-7190
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> 1) Put new views in /views directory
> 2) restart ambari-server
> 3) watch ambari-server.log
> 4) extraction begins and ambari server becomes accessible prior to completion (which is good)
> 5) go to manage ambari > views (while extraction is continuing)
> 6) no views are shown in UI table and an exception is printed to log (first error below)
> 7) even when extraction completes, I can't get views to show in the UI table and a different error is printed to log (second error below)
> 8) I have to ambari-server restart to get things back working and to get views to show
> 
> {code}
> 22:56:29,839  WARN [qtp422025187-29] ServletHandler:514 - /api/v1/views
> java.lang.NullPointerException
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.toResource(ViewPermissionResourceProvider.java:184)
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:128)
> 	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
> 	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:421)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForResources(QueryImpl.java:381)
> 	at org.apache.ambari.server.api.query.QueryImpl.execute(QueryImpl.java:196)
> 	at org.apache.ambari.server.api.handlers.ReadHandler.handleRequest(ReadHandler.java:68)
> 	at org.apache.ambari.server.api.services.BaseRequest.process(BaseRequest.java:135)
> 	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:103)
> 	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:72)
> 	at org.apache.ambari.server.api.services.ViewService.getViews(ViewService.java:75)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
> 	at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
> 	at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> 	at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
> 	at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
> 	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> 	at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
> 	at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1329)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.apache.ambari.server.security.authorization.AmbariAuthorizationFilter.doFilter(AmbariAuthorizationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
> 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.apache.ambari.server.api.MethodOverrideFilter.doFilter(MethodOverrideFilter.java:72)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.apache.ambari.server.api.AmbariPersistFilter.doFilter(AmbariPersistFilter.java:48)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> 	at org.apache.ambari.server.controller.FailsafeHandlerList.handle(FailsafeHandlerList.java:132)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:363)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:920)
> 	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:982)
> 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
> 	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> 	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> 	at java.lang.Thread.run(Thread.java:744)
> {code}
> 
> 
> {code}
> 22:57:17,256  WARN [qtp422025187-73] ServletHandler:514 - /api/v1/views
> java.lang.NullPointerException
> 	at org.apache.ambari.server.view.ViewRegistry.getDefinition(ViewRegistry.java:261)
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:135)
> 	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
> 	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImp
> {code}
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PrivilegeResourceProvider.java f0bcaf8 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProvider.java ce23e79 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java bcbc856 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProvider.java ea4acef 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java e2138be 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java 8fb5a33 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProviderTest.java f409f07 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProviderTest.java PRE-CREATION 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProviderTest.java 80f7751 
>   ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java 115c2bf 
> 
> Diff: https://reviews.apache.org/r/25445/diff/
> 
> 
> Testing
> -------
> 
> Results :
> 
> Tests run: 1971, Failures: 0, Errors: 0, Skipped: 16
> 
> 
> …
> 
> 
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 36:58.447s
> [INFO] Finished at: Mon Sep 08 11:58:24 EDT 2014
> [INFO] Final Memory: 45M/329M
> [INFO] ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Tom Beerbower
> 
>


Re: Review Request 25445: Views: attempting to access views during extraction throws exception

Posted by Nate Cole <nc...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25445/#review52615
-----------------------------------------------------------



ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProvider.java
<https://reviews.apache.org/r/25445/#comment91466>

    If none of them ever load (say, DB is down or whatever), this reads that a GET will never return anything.  Is this desired?  Or is there such a thing as a "canned" "Instance is loading/in error/pending" response?


- Nate Cole


On Sept. 8, 2014, 1:53 p.m., Tom Beerbower wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25445/
> -----------------------------------------------------------
> 
> (Updated Sept. 8, 2014, 1:53 p.m.)
> 
> 
> Review request for Ambari, Alejandro Fernandez and Nate Cole.
> 
> 
> Bugs: AMBARI-7190
>     https://issues.apache.org/jira/browse/AMBARI-7190
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> 1) Put new views in /views directory
> 2) restart ambari-server
> 3) watch ambari-server.log
> 4) extraction begins and ambari server becomes accessible prior to completion (which is good)
> 5) go to manage ambari > views (while extraction is continuing)
> 6) no views are shown in UI table and an exception is printed to log (first error below)
> 7) even when extraction completes, I can't get views to show in the UI table and a different error is printed to log (second error below)
> 8) I have to ambari-server restart to get things back working and to get views to show
> 
> {code}
> 22:56:29,839  WARN [qtp422025187-29] ServletHandler:514 - /api/v1/views
> java.lang.NullPointerException
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.toResource(ViewPermissionResourceProvider.java:184)
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:128)
> 	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
> 	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:421)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForResources(QueryImpl.java:381)
> 	at org.apache.ambari.server.api.query.QueryImpl.execute(QueryImpl.java:196)
> 	at org.apache.ambari.server.api.handlers.ReadHandler.handleRequest(ReadHandler.java:68)
> 	at org.apache.ambari.server.api.services.BaseRequest.process(BaseRequest.java:135)
> 	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:103)
> 	at org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:72)
> 	at org.apache.ambari.server.api.services.ViewService.getViews(ViewService.java:75)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
> 	at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
> 	at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> 	at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
> 	at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
> 	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> 	at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
> 	at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1329)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.apache.ambari.server.security.authorization.AmbariAuthorizationFilter.doFilter(AmbariAuthorizationFilter.java:113)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
> 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.apache.ambari.server.api.MethodOverrideFilter.doFilter(MethodOverrideFilter.java:72)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.apache.ambari.server.api.AmbariPersistFilter.doFilter(AmbariPersistFilter.java:48)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> 	at org.apache.ambari.server.controller.FailsafeHandlerList.handle(FailsafeHandlerList.java:132)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:363)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:920)
> 	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:982)
> 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
> 	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> 	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> 	at java.lang.Thread.run(Thread.java:744)
> {code}
> 
> 
> {code}
> 22:57:17,256  WARN [qtp422025187-73] ServletHandler:514 - /api/v1/views
> java.lang.NullPointerException
> 	at org.apache.ambari.server.view.ViewRegistry.getDefinition(ViewRegistry.java:261)
> 	at org.apache.ambari.server.controller.internal.ViewPermissionResourceProvider.getResources(ViewPermissionResourceProvider.java:135)
> 	at org.apache.ambari.server.controller.internal.ClusterControllerImpl.getResources(ClusterControllerImpl.java:134)
> 	at org.apache.ambari.server.api.query.QueryImpl.doQuery(QueryImpl.java:438)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImpl.java:408)
> 	at org.apache.ambari.server.api.query.QueryImpl.queryForSubResources(QueryImp
> {code}
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PrivilegeResourceProvider.java f0bcaf8 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProvider.java ce23e79 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProvider.java bcbc856 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProvider.java ea4acef 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ViewVersionResourceProvider.java e2138be 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ViewEntity.java 8fb5a33 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewInstanceResourceProviderTest.java f409f07 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPermissionResourceProviderTest.java PRE-CREATION 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ViewPrivilegeResourceProviderTest.java 80f7751 
>   ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ViewEntityTest.java 115c2bf 
> 
> Diff: https://reviews.apache.org/r/25445/diff/
> 
> 
> Testing
> -------
> 
> Results :
> 
> Tests run: 1971, Failures: 0, Errors: 0, Skipped: 16
> 
> 
> …
> 
> 
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 36:58.447s
> [INFO] Finished at: Mon Sep 08 11:58:24 EDT 2014
> [INFO] Final Memory: 45M/329M
> [INFO] ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Tom Beerbower
> 
>