[ https://issues.apache.org/jira/browse/CLOUDSTACK-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13577473#comment-13577473 ]
Rohit Yadav commented on CLOUDSTACK-1070: ----------------------------------------- Kelven, I fixed CLOUDSTACK-1237 and found that adding the component in xml is not the right fix. It was already having the @Component annotation. The problem was no adapter was returned as getName() was not implemented by the implementing adapter which should return one of the static class's attributes. I found that it was sort of a regression due to the baremetal merge. > javelin: NPE on executing registerIso API > ----------------------------------------- > > Key: CLOUDSTACK-1070 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-1070 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Affects Versions: 4.1.0 > Reporter: Prasanna Santhanam > Assignee: Kelven Yang > Fix For: 4.1.0 > > > Following NPE was noticed when registering an damn-small linux ISO on javelin > running with devcloud > 2013-01-26 13:11:24,889 DEBUG [cloud.api.ApiServlet] > (1572716377@qtp-588170311-2:null) ===START=== 127.0.0.1 -- GET > account=test-GNFNS4&apiKey=yJ-FacgjPkYyQxwt28hAkf9aNjIOEiAAUiG0CAa8NP24A4Bdn2f9DvxoFLE4fnY16FBIJnakC4itJDEmBwKaQg&command=registerIso&displaytext=Test+ISO+2&domainid=ceef2d20-678a-11e2-a987-691e5966f392&isextractable=True&isfeatured=True&ispublic=True&name=ISO+2&ostypeid=ce611ba2-678a-11e2-a987-691e5966f392&response=json&url=http%3A%2F%2Fiso.linuxquestions.org%2Fdownload%2F504%2F1819%2Fhttp%2Fgd4.tuwien.ac.at%2Fdsl-4.4.10.iso&zoneid=588cd04f-a451-484b-adbf-7ebc686d32ef&signature=4iLl5oM%2FAq0wLX8kFOG9xd0n8%2Bg%3D > 2013-01-26 13:11:24,936 ERROR [cloud.api.ApiServer] > (1572716377@qtp-588170311-2:null) unhandled exception executing api command: > registerIso > java.lang.NullPointerException > at > com.cloud.utils.component.AdapterBase.getAdapterByName(AdapterBase.java:57) > at > com.cloud.template.TemplateManagerImpl.getAdapter(TemplateManagerImpl.java:222) > at > com.cloud.template.TemplateManagerImpl.registerIso(TemplateManagerImpl.java:235) > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > at > org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > at > org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80) > at > com.cloud.event.ActionEventInterceptor.AroundAnyMethod(ActionEventInterceptor.java:41) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) > at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610) > at > org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161) > at > org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80) > at > com.cloud.utils.db.TransactionContextBuilder.AroundAnyMethod(TransactionContextBuilder.java:43) > at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) > at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610) > at > org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) > at > org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd.execute(RegisterIsoCmd.java:165) > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > at > org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > at > com.cloud.utils.db.TransactionContextBuilder.invoke(TransactionContextBuilder.java:60) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) > at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:159) > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > at > org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > at > org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80) > at > com.cloud.utils.db.TransactionContextBuilder.AroundAnyMethod(TransactionContextBuilder.java:43) > at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) > at > org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610) > at > org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) > at com.cloud.api.ApiServer.queueCommand(ApiServer.java:513) > at com.cloud.api.ApiServer.handleRequest(ApiServer.java:362) > at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:302) > at com.cloud.api.ApiServlet.doGet(ApiServlet.java:66) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) > at > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) > at > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) > at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) > at > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > 2013-01-26 13:11:24,940 DEBUG [cloud.api.ApiServlet] > (1572716377@qtp-588170311-2:null) ===END=== 127.0.0.1 -- GET > account=test-GNFNS4&apiKey=yJ-FacgjPkYyQxwt28hAkf9aNjIOEiAAUiG0CAa8NP24A4Bdn2f9DvxoFLE4fnY16FBIJnakC4itJDEmBwKaQg&command=registerIso&displaytext=Test+ISO+2&domainid=ceef2d20-678a-11e2-a987-691e5966f392&isextractable=True&isfeatured=True&ispublic=True&name=ISO+2&ostypeid=ce611ba2-678a-11e2-a987-691e5966f392&response=json&url=http%3A%2F%2Fiso.linuxquestions.org%2Fdownload%2F504%2F1819%2Fhttp%2Fgd4.tuwien.ac.at%2Fdsl-4.4.10.iso&zoneid=588cd04f-a451-484b-adbf-7ebc686d32ef&signature=4iLl5oM%2FAq0wLX8kFOG9xd0n8%2Bg%3D > 2013-01-26 13:11:24,946 DEBUG [cloud.api.ApiServlet] > (1572716377@qtp-588170311-2:null) ===START=== 127.0.0.1 -- GET apiKey=yJ- -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira