Hello Yuri, >From the stack trace (line numbers) I assume you are using NiFi 1.2.0. If so, I think NullPointer can be thrown if your custom processor returns null from its getRelationships() method. A list of possible relationships from a processor should be returned, if the processor doesn't have outgoing relationship, then return Collections.emptySet().
Otherwise, please let us know which version you are using. Thanks, Koji On Sat, May 20, 2017 at 12:41 AM, Yuri Krysko <yuri.kry...@mcdean.com> wrote: > Hello Devs, > > I am working on a custom processor for NiFi and I am getting the below > exception in the nifi-user.log when I try to add the processor to the flow > canvas. Could you please advise what could I be doing wrong. No errors in the > nifi-app.log though. Thanks! > > > 2017-05-19 11:31:07,983 ERROR [NiFi Web Server-22] > o.a.nifi.web.api.config.ThrowableMapper An unexpected error has occurred: > java.lang.NullPointerException. Returning Internal Server Error response. > > java.lang.NullPointerException: null > > at > org.apache.nifi.web.api.dto.DtoFactory.createProcessorDto(DtoFactory.java:2226) > > at org.apache.nifi.web.api.dto.DtoFactory.createFlowDto(DtoFactory.java:1884) > > at > org.apache.nifi.web.api.dto.DtoFactory.createProcessGroupFlowDto(DtoFactory.java:1726) > > at > org.apache.nifi.web.StandardNiFiServiceFacade.getProcessGroupFlow(StandardNiFiServiceFacade.java:3055) > > at > org.apache.nifi.web.StandardNiFiServiceFacade$$FastClassBySpringCGLIB$$358780e0.invoke(<generated>) > > at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > > at > org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) > > at > org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85) > > at > org.apache.nifi.web.NiFiServiceFacadeLock.proceedWithReadLock(NiFiServiceFacadeLock.java:137) > > at > org.apache.nifi.web.NiFiServiceFacadeLock.getLock(NiFiServiceFacadeLock.java:108) > > at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:498) > > 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:68) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) > > at > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) > > at > org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) > > at > org.apache.nifi.web.StandardNiFiServiceFacade$$EnhancerBySpringCGLIB$$c6bbb5bc.getProcessGroupFlow(<generated>) > > at org.apache.nifi.web.api.FlowResource.getFlow(FlowResource.java:375) > > 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$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: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:841) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) > > at org.apache.nifi.web.filter.RequestLogger.doFilter(RequestLogger.java:66) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) > > at > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) > > at > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) > > at > org.apache.nifi.web.security.NiFiAuthenticationFilter.authenticate(NiFiAuthenticationFilter.java:83) > > at > org.apache.nifi.web.security.NiFiAuthenticationFilter.doFilter(NiFiAuthenticationFilter.java:57) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) > > at > org.apache.nifi.web.security.NiFiAuthenticationFilter.authenticate(NiFiAuthenticationFilter.java:83) > > at > org.apache.nifi.web.security.NiFiAuthenticationFilter.doFilter(NiFiAuthenticationFilter.java:57) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) > > at > org.apache.nifi.web.security.NiFiAuthenticationFilter.authenticate(NiFiAuthenticationFilter.java:83) > > at > org.apache.nifi.web.security.NiFiAuthenticationFilter.doFilter(NiFiAuthenticationFilter.java:57) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) > > at > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213) > > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176) > > 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:1621) > > at org.apache.nifi.web.filter.TimerFilter.doFilter(TimerFilter.java:51) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1613) > > at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541) > > 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.handler.HandlerWrapper.handle(HandlerWrapper.java:132) > > at > org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) > > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1593) > > at > org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) > > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239) > > at > org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) > > at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481) > > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562) > > at > org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) > > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141) > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:118) > > at > org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:561) > > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) > > at org.eclipse.jetty.server.Server.handle(Server.java:564) > > 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:279) > > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) > > at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590) > > at java.lang.Thread.run(Thread.java:745) > > ________________________________ > > LEGAL DISCLAIMER: M.C. Dean, Inc. and its subsidiaries considers this e-mail > and any files transmitted with it to be protected, proprietary or privileged > information intended solely for the use of the named recipient(s). Any > disclosure of this material or the information contained herein, in whole or > in part, to anyone outside of the intended recipient or affiliates is > strictly prohibited. M. C. Dean, Inc. accepts no liability for the content of > this e-mail or for the consequences of any actions taken on the basis of the > information contained in it, unless that information is subsequently > confirmed in writing. Employees of M.C. Dean, Inc. are instructed not to > infringe on any rights of the recipient; any such communication violates > company policy. If you are not the intended recipient, any disclosure, > copying, distribution, or action taken or omitted in reliance on this > information is strictly prohibited by M.C. Dean, Inc.; please notify the > sender immediately by return e-mail, delete this communication and destroy > all copies.