You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@atlas.apache.org by "Apoorv Naik (JIRA)" <ji...@apache.org> on 2018/05/01 22:47:00 UTC

[jira] [Resolved] (ATLAS-2616) NPE for GET call of /glossary//categories, when there are no categories associated to glossary

     [ https://issues.apache.org/jira/browse/ATLAS-2616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Apoorv Naik resolved ATLAS-2616.
--------------------------------
    Resolution: Fixed
      Assignee: Apoorv Naik

https://git-wip-us.apache.org/repos/asf?p=atlas.git;a=commit;h=d8d9b127042c67e89b04656574badcf9f7800672

> NPE for GET call of /glossary/<guid>/categories, when there are no categories associated to glossary
> ----------------------------------------------------------------------------------------------------
>
>                 Key: ATLAS-2616
>                 URL: https://issues.apache.org/jira/browse/ATLAS-2616
>             Project: Atlas
>          Issue Type: Improvement
>          Components:  atlas-core
>    Affects Versions: 1.0.0
>            Reporter: Ayub Pathan
>            Assignee: Apoorv Naik
>            Priority: Major
>             Fix For: 1.0.0
>
>
> * Two glossaries configured with one glossary having categories
> {noformat}
> apathan@Ayub-sys-101:~ > curl -k -u admin:admin https://ctr-e138-1518143905142-256977-01-000004.hwx.site:21443/api/atlas/v2/glossary/ | python -m json.tool
>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                  Dload  Upload   Total   Spent    Left  Speed
> 100   633    0   633    0     0    386      0 --:--:--  0:00:01 --:--:--   386
> [
>     {
>         "guid": "bf43f063-f499-472c-b526-0f81de685e02",
>         "displayName": "true",
>         "shortDescription": "asd",
>         "longDescription": "Glossary of bank - long description",
>         "qualifiedName": "HortoniaBank-11"
>     },
>     {
>         "guid": "c445e6c3-1113-4d55-acbd-d421c8c98db1",
>         "displayName": "Banking-11",
>         "shortDescription": "sdfds",
>         "longDescription": "sdfdsf",
>         "qualifiedName": "HortoniaBank-11",
>         "categories": [
>             {
>                 "categoryGuid": "59295311-2ef8-400c-9188-ea2adfdca65b",
>                 "relationGuid": "39113069-211b-44e1-b924-b0402c997a20",
>                 "displayText": "Bank accounts"
>             },
>             {
>                 "categoryGuid": "625e13a6-e7ef-49d2-bfe3-bb31e8b63ef0",
>                 "relationGuid": "4366623b-2f7e-43df-83f2-2d438f3fd120",
>                 "displayText": "sub"
>             }
>         ]
>     }
> ]
> {noformat}
> * GET request on categories is fine when there are categories associated.
> {noformat}
> apathan@Ayub-sys-101:~ >
> apathan@Ayub-sys-101:~ > curl -k -u admin:admin https://ctr-e138-1518143905142-256977-01-000004.hwx.site:21443/api/atlas/v2/glossary/c445e6c3-1113-4d55-acbd-d421c8c98db1/categories | python -m json.tool
>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                  Dload  Upload   Total   Spent    Left  Speed
> 100   271    0   271    0     0     97      0 --:--:--  0:00:02 --:--:--    97
> [
>     {
>         "categoryGuid": "59295311-2ef8-400c-9188-ea2adfdca65b",
>         "relationGuid": "39113069-211b-44e1-b924-b0402c997a20",
>         "displayText": "Bank accounts"
>     },
>     {
>         "categoryGuid": "625e13a6-e7ef-49d2-bfe3-bb31e8b63ef0",
>         "relationGuid": "4366623b-2f7e-43df-83f2-2d438f3fd120",
>         "displayText": "sub"
>     }
> ]
> {noformat}
> * GET request on categories returns 500 with NPE when there are no categories associated to glossary.
> {noformat}
> apathan@Ayub-sys-101:~ > curl -k -u admin:admin https://ctr-e138-1518143905142-256977-01-000004.hwx.site:21443/api/atlas/v2/glossary/bf43f063-f499-472c-b526-0f81de685e02/categories | pj
>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                  Dload  Upload   Total   Spent    Left  Speed
> 100    85    0    85    0     0     33      0 --:--:--  0:00:02 --:--:--    33
> Expecting value: line 1 column 1 (char 0)
> apathan@Ayub-sys-101:~ >
> {noformat}
> {noformat}
> 2018-04-26 11:59:39,528 ERROR - [pool-2-thread-4 - 29e30189-d093-4245-a623-1c50c5aad766:] ~ Error handling a request: 935035fa3fbef294 (ExceptionMapperUtil:32)
> java.lang.NullPointerException
> 	at java.util.ArrayList.<init>(ArrayList.java:178)
> 	at org.apache.atlas.glossary.GlossaryService.getGlossaryCategories(GlossaryService.java:618)
> 	at org.apache.atlas.web.rest.GlossaryREST.getGlossaryCategories(GlossaryREST.java:645)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
> 	at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
> 	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:302)
> 	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> 	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:1542)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
> 	at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1712)
> 	at org.apache.atlas.web.filters.AuditFilter.doFilter(AuditFilter.java:80)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1699)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
> 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.apache.atlas.web.filters.AtlasCSRFPreventionFilter$ServletFilterHttpInteraction.proceed(AtlasCSRFPreventionFilter.java:235)
> 	at org.apache.atlas.web.filters.AtlasCSRFPreventionFilter.handleHttpInteraction(AtlasCSRFPreventionFilter.java:177)
> 	at org.apache.atlas.web.filters.AtlasCSRFPreventionFilter.doFilter(AtlasCSRFPreventionFilter.java:190)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.apache.atlas.web.filters.AtlasAuthenticationFilter.doFilter(AtlasAuthenticationFilter.java:370)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.apache.atlas.web.filters.StaleTransactionCleanupFilter.doFilter(StaleTransactionCleanupFilter.java:55)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.apache.atlas.web.filters.ActiveServerFilter.doFilter(ActiveServerFilter.java:85)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:215)
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.apache.atlas.web.filters.AtlasKnoxSSOAuthenticationFilter.doFilter(AtlasKnoxSSOAuthenticationFilter.java:146)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
> 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
> 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
> 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:534)
> 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
> 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
> 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
> 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
> 	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:202)
> 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
> 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
> 	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
> 	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
> 	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
> 	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)