[ 
https://issues.apache.org/jira/browse/NIFI-10951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17644074#comment-17644074
 ] 

Paul Grey commented on NIFI-10951:
----------------------------------

It looks like we narrowed things down to an environment difference between 
stateful and stateless NiFi in this case.

When running the ExecuteStateless processor, it is necessary to explicitly 
define the flow parameters that ExecuteStateless should propagate from its flow 
to its stateless invocation.

I'd like to scope this ticket to providing a sensible error message when 
properties are unresolved from the environment configuration, for whatever 
reason.  It would've been helpful in this situation for the error message to 
state explicitly something along the lines of: "property value for 
'SENSITIVE.Password' is undefined", rather than "NullPointerException".  This 
would have helped resolve things more quickly.


> Null exception error with DBCP Controller service and AWS parameter provider
> ----------------------------------------------------------------------------
>
>                 Key: NIFI-10951
>                 URL: https://issues.apache.org/jira/browse/NIFI-10951
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: NiFi Stateless
>    Affects Versions: 1.18.0, 1.19.0
>            Reporter: Lucas Read
>            Priority: Major
>
> I have a AWS Secrets Manager parameter provider configured and assigned to a 
> process group. I am trying to execute the process group as a stateless flow 
> but getting a null exception returned. It works when I do not run it as a 
> nonstateless flow but not when it is stateless. 
>  
> {code:java}
> 2022-12-02 23:34:35,762 ERROR [Component Lifecycle for dataflow 
> stateless_test Thread-1] o.a.n.c.s.StandardControllerServiceNode 
> StandardControllerServiceNode[service=DBCPConnectionPool[id=4e17ba60-aba6-3443-83ff-5f6da6de96ac],
>  name=stateless_DBCPConnectionPool, active=true] Failed to invoke @OnEnabled 
> method
> java.lang.NullPointerException: null
>         at 
> java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
>         at 
> java.base/java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
>         at java.base/java.util.Properties.put(Properties.java:1340)
>         at 
> org.apache.commons.dbcp2.BasicDataSource.addConnectionProperty(BasicDataSource.java:384)
>         at 
> org.apache.nifi.dbcp.DBCPConnectionPool.lambda$configureDataSource$0(DBCPConnectionPool.java:554)
>         at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
>         at 
> org.apache.nifi.dbcp.DBCPConnectionPool.configureDataSource(DBCPConnectionPool.java:550)
>         at 
> org.apache.nifi.dbcp.DBCPConnectionPool.onConfigured(DBCPConnectionPool.java:497)
>         at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>         at 
> org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:145)
>         at 
> org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:133)
>         at 
> org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:78)
>         at 
> org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotation(ReflectionUtils.java:55)
>         at 
> org.apache.nifi.controller.service.StandardControllerServiceNode$2.run(StandardControllerServiceNode.java:598)
>         at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>         at 
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>         at 
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>         at java.base/java.lang.Thread.run(Thread.java:829)
> 2022-12-02 23:34:35,763 ERROR [Timer-Driven Process Thread-2] 
> o.a.n.p.stateless.ExecuteStateless 
> ExecuteStateless[id=294238ae-8268-1987-ffff-fffffd45d0f8] Could not create 
> dataflow from snapshot
> java.lang.IllegalStateException: Controller Service 
> StandardControllerServiceNode[service=DBCPConnectionPool[id=4e17ba60-aba6-3443-83ff-5f6da6de96ac],
>  name=stateless_DBCPConnectionPool, active=true] has not fully enabled. 
> Current Validation Status is VALID with validation Errors: []
>         at 
> org.apache.nifi.stateless.flow.StandardStatelessFlow.enableControllerServices(StandardStatelessFlow.java:391)
>         at 
> org.apache.nifi.stateless.flow.StandardStatelessFlow.initialize(StandardStatelessFlow.java:228)
>         at 
> org.apache.nifi.processors.stateless.ExecuteStateless.createDataflow(ExecuteStateless.java:471)
>         at 
> org.apache.nifi.processors.stateless.ExecuteStateless.getDataflow(ExecuteStateless.java:478)
>         at 
> org.apache.nifi.processors.stateless.ExecuteStateless.onTrigger(ExecuteStateless.java:498)
>         at 
> org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
>         at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1354)
>         at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:246)
>         at 
> org.apache.nifi.controller.scheduling.AbstractTimeBasedSchedulingAgent.lambda$doScheduleOnce$0(AbstractTimeBasedSchedulingAgent.java:59)
>         at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>         at 
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>         at 
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>         at java.base/java.lang.Thread.run(Thread.java:829)
> Caused by: java.util.concurrent.ExecutionException: 
> java.lang.reflect.InvocationTargetException
>         at 
> java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
>         at 
> java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2022)
>         at 
> org.apache.nifi.stateless.flow.StandardStatelessFlow.enableControllerServices(StandardStatelessFlow.java:388)
>         ... 15 common frames omitted
> Caused by: java.lang.reflect.InvocationTargetException: null
>         at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>         at 
> org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:145)
>         at 
> org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:133)
>         at 
> org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:78)
>         at 
> org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotation(ReflectionUtils.java:55)
>         at 
> org.apache.nifi.controller.service.StandardControllerServiceNode$2.run(StandardControllerServiceNode.java:598)
>         ... 7 common frames omitted
> Caused by: java.lang.NullPointerException: null
>         at 
> java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
>         at 
> java.base/java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
>         at java.base/java.util.Properties.put(Properties.java:1340)
>         at 
> org.apache.commons.dbcp2.BasicDataSource.addConnectionProperty(BasicDataSource.java:384)
>         at 
> org.apache.nifi.dbcp.DBCPConnectionPool.lambda$configureDataSource$0(DBCPConnectionPool.java:554)
>         at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
>         at 
> org.apache.nifi.dbcp.DBCPConnectionPool.configureDataSource(DBCPConnectionPool.java:550)
>         at 
> org.apache.nifi.dbcp.DBCPConnectionPool.onConfigured(DBCPConnectionPool.java:497)
>         ... 16 common frames omitted
> 2022-12-02 23:34:35,764 INFO [Timer-Driven Process Thread-2] 
> o.a.n.c.s.StandardProcessScheduler Stopping 
> ExecuteStateless[id=294238ae-8268-1987-ffff-fffffd45d0f8]
> 2022-12-02 23:34:35,764 INFO [Timer-Driven Process Thread-2] 
> o.a.n.controller.StandardProcessorNode Stopping processor: 
> ExecuteStateless[id=294238ae-8268-1987-ffff-fffffd45d0f8]
> 2022-12-02 23:34:35,764 INFO [Timer-Driven Process Thread-2] 
> o.a.n.c.s.TimerDrivenSchedulingAgent Stopped scheduling 
> ExecuteStateless[id=294238ae-8268-1987-ffff-fffffd45d0f8] to run
> 2022-12-02 23:34:35,767 ERROR [Component Lifecycle for dataflow 
> stateless_test Thread-1] org.apache.nifi.engine.FlowEngine Uncaught Exception 
> in Runnable task
> java.util.concurrent.RejectedExecutionException: Task 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@16031961[Not
>  completed, task = 
> java.util.concurrent.Executors$RunnableAdapter@928538f[Wrapped task = 
> org.apache.nifi.engine.FlowEngine$2@6f6116bf]] rejected from 
> org.apache.nifi.engine.FlowEngine@1519ec12[Shutting down, pool size = 1, 
> active threads = 1, queued tasks = 0, completed tasks = 0]
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2055)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:825)
>         at 
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:340)
>         at 
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:562)
>         at org.apache.nifi.engine.FlowEngine.schedule(FlowEngine.java:87)
>         at 
> org.apache.nifi.controller.service.StandardControllerServiceNode$2.run(StandardControllerServiceNode.java:625)
>         at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>         at 
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>         at 
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>         at java.base/java.lang.Thread.run(Thread.java:829) {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to