[jira] [Comment Edited] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-27 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose edited comment on NIFI-12918 at 3/27/24 2:05 PM:
---

Okay, so after some back and forth here is my final conclusion to this bug:

I've submitted two PRs 
[https://github.com/apache/nifi/pull/8572/checks] <-- for support/1.x branch
[https://github.com/apache/nifi/pull/8536/checks] <-- for main branch

Here is what's happening. If you run a versioned stateless flow that has 
sub-versioned progress group, there is a NullPointerException thrown on the 
build method of StandardVersionControlInformation where there is a non-null 
requirement on "registryId". 

Code has changed in main versus support/1.x, but the bug exists on both. What 
I've found is the JerseyClient calls that are made to map the response from the 
registry-api back to the higher level VersionedProcessGroup -> 
VersionedFlowCoordinates both return JSON where the VersionedFlowCoordinates > 
registryId is always null. Now in the main branch, stateless uses some of these 
new "synchronizer" classes, so the best place to insert a solution is to add an 
else on the null check where the code runs the "determineRegistryId" method and 
set the value to "1" for versioned flows that do not have a registryId 
associated to them. Doing this passes all of the integration tests and code 
checks and fixes the bug. Since this class does not exist in the 1.x support 
branch, my best solution is to just comment out the null check (this breaks 
integration tests in main, but not in 1.x). 

I continued to look further at this idea of a "registryId" within the registry 
api code. The GET method on buckets/flow/version returns the same class that 
the stateless code uses to map into on the JerseyClient call. I then looked at 
the api code to POST new versioned flows, and it also expect the json as a 
parameter to match the same class. Well, since there is no "non-null" 
requirement on the registryId, versioned flows are stored in the database (or 
whichever storage adapter used) with this property as null. I did not check to 
see if the latest NiFi Registry UI is now setting this property, but making it 
non-null would break any older version of registry and not be backwards 
compatible. Therefore, the only solution at this point to fix stateless NiFi in 
its current state is to just set registryId to "1" if it is null. I believe 
this code is still probably prototype being worked and evolving, so this will 
be a temporary fix until those mandates are in place on a concept of 
"registryId". 

 

[~markap14] 


was (Author: JIRAUSER299049):
Okay, so after some back and forth here is my final conclusion to this bug:

I've submitted two PRs 
[https://github.com/apache/nifi/pull/8572/checks] <-- for support/1.x branch
[https://github.com/apache/nifi/pull/8536/checks] <-- for main branch

Here is what's happening. If you run a versioned stateless flow that has 
sub-versioned progress group, there is a NullPointerException thrown on the 
build method of StandardVersionControlInformation where there is a non-null 
requirement on "registryId". 

Code has changed in main versus support/1.x, but the bug exists on both. What 
I've found is the JerseyClient calls that are made to map the response from the 
registry-api back to the higher level VersionedProcessGroup -> 
VersionedFlowCoordinates both return JSON where the VersionedFlowCoordinates > 
registryId is always null. Now in the main branch, stateless uses some of these 
new "synchronizer" classes, so the best place to insert a solution is to add an 
else on the null check where the code runs the "determineRegistryId" method and 
set the value to "1" for versioned flows that do not have a registryId 
associated to them. Doing this passes all of the integration tests and code 
checks and fixes the bug. Since this class does not exist in the 1.x support 
branch, my best solution is to just comment out the null check (this breaks 
integration tests in main, but not in 1.x). 

I continued to look further at this idea of a "registryId" within the registry 
api code. The GET method on buckets/flow/version returns the same class that 
the stateless code uses to map into on the JerseyClient call. I then looked at 
the api code to POST new versioned flows, and it also expect the json as a 
parameter to match the same class. Well, since there is no "non-null" 
requirement on the registryId, versioned flows are stored in the database (or 
whichever storage adapter used) with this property as null. I did not check to 
see if the latest NiFi Registry UI is now setting this property, but making it 
non-null would break any older version of registry and not be backwards 
compatible. Therefore, the only solution at this point to fix stateless NiFi in 
its current state is to just set registryId to 

[jira] [Commented] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-27 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose commented on NIFI-12918:
--

Okay, so after some back and forth here is my final conclusion to this bug:

I've submitted two PRs 
[https://github.com/apache/nifi/pull/8572/checks] <-- for support/1.x branch
[https://github.com/apache/nifi/pull/8536/checks] <-- for main branch

Here is what's happening. If you run a versioned stateless flow that has 
sub-versioned progress group, there is a NullPointerException thrown on the 
build method of StandardVersionControlInformation where there is a non-null 
requirement on "registryId". 

Code has changed in main versus support/1.x, but the bug exists on both. What 
I've found is the JerseyClient calls that are made to map the response from the 
registry-api back to the higher level VersionedProcessGroup -> 
VersionedFlowCoordinates both return JSON where the VersionedFlowCoordinates > 
registryId is always null. Now in the main branch, stateless uses some of these 
new "synchronizer" classes, so the best place to insert a solution is to add an 
else on the null check where the code runs the "determineRegistryId" method and 
set the value to "1" for versioned flows that do not have a registryId 
associated to them. Doing this passes all of the integration tests and code 
checks and fixes the bug. Since this class does not exist in the 1.x support 
branch, my best solution is to just comment out the null check (this breaks 
integration tests in main, but not in 1.x). 

I continued to look further at this idea of a "registryId" within the registry 
api code. The GET method on buckets/flow/version returns the same class that 
the stateless code uses to map into on the JerseyClient call. I then looked at 
the api code to POST new versioned flows, and it also expect the json as a 
parameter to match the same class. Well, since there is no "non-null" 
requirement on the registryId, versioned flows are stored in the database (or 
whichever storage adapter used) with this property as null. I did not check to 
see if the latest NiFi Registry UI is now setting this property, but making it 
non-null would break any older version of registry and not be backwards 
compatible. Therefore, the only solution at this point to fix stateless NiFi in 
its current state is to just set registryId to "1" if it is null. I believe 
this code is still probably prototype being worked and evolving, so this will 
be a temporary fix until those mandates are in place on a concept of 
"registryId". 

> Stateless NiFi NullPointerException on versioned PGs
> 
>
> Key: NIFI-12918
> URL: https://issues.apache.org/jira/browse/NIFI-12918
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> If you create a process group and commit that to version control, and then 
> add a sub-process group under that one and commit that to its own version 
> control, it will throw a NullPointerException:
> *NOTE: This error only occurs for stateless nifi processing.*
> {code:java}
> 2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
> o.a.nifi.groups.StandardProcessGroup 
> StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
> Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
> 2024-03-15T12:25:38.570693223Z Exception in thread "main" 
> java.lang.NullPointerException: Registry ID must be specified
>   at java.base/java.util.Objects.requireNonNull(Unknown Source)
> 2024-03-15T12:25:38.570722016Zat 
> org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
> 2024-03-15T12:25:38.570725111Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
> 2024-03-15T12:25:38.570729455Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
>   at 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
> 2024-03-15T12:25:38.573083029Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
> 2024-03-15T12:25:38.573086447Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
> 2024-03-15T12:25:38.573092747Zat 
> 

[jira] [Commented] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-22 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose commented on NIFI-12918:
--

[~dstiegli1] - I confirmed the problem exists on 2.0 as well as 1.x. I also 
confirmed that the PR submitted fixes the problem on both versions. Apparently, 
there is an integration test that is now failing, so I'm troubleshooting that 
now. 

> Stateless NiFi NullPointerException on versioned PGs
> 
>
> Key: NIFI-12918
> URL: https://issues.apache.org/jira/browse/NIFI-12918
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> If you create a process group and commit that to version control, and then 
> add a sub-process group under that one and commit that to its own version 
> control, it will throw a NullPointerException:
> *NOTE: This error only occurs for stateless nifi processing.*
> {code:java}
> 2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
> o.a.nifi.groups.StandardProcessGroup 
> StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
> Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
> 2024-03-15T12:25:38.570693223Z Exception in thread "main" 
> java.lang.NullPointerException: Registry ID must be specified
>   at java.base/java.util.Objects.requireNonNull(Unknown Source)
> 2024-03-15T12:25:38.570722016Zat 
> org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
> 2024-03-15T12:25:38.570725111Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
> 2024-03-15T12:25:38.570729455Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
>   at 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
> 2024-03-15T12:25:38.573083029Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
> 2024-03-15T12:25:38.573086447Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
> 2024-03-15T12:25:38.573092747Zat 
> org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)
> 2024-03-15T12:25:38.573095677Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:260)
> 2024-03-15T12:25:38.573098999Zat 
> org.apache.nifi.groups.StandardProcessGroup.synchronizeFlow(StandardProcessGroup.java:3977)
>   at 
> org.apache.nifi.groups.StandardProcessGroup.updateFlow(StandardProcessGroup.java:3957)
>   at 
> org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:180)
> 2024-03-15T12:25:38.573108177Zat 
> org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:243)
>   at 
> org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:73)
>  {code}
> When stepping through the debugger, it appears the "registryId" property is 
> null. The JerseyClient call is supposed to map the response from registry to 
> the proper class, but registryId is never set:
> {code:java}
> java.lang.Thread.State: RUNNABLE
> at 
> org.apache.nifi.flow.VersionedProcessGroup.setVersionedFlowCoordinates(VersionedProcessGroup.java:150)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Unknown 
> Source:-1)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at java.lang.reflect.Method.invoke(Unknown Source:-1)
> at 
> com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:141)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
> at 
> 

[jira] [Updated] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-20 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose updated NIFI-12918:
-
Description: 
If you create a process group and commit that to version control, and then add 
a sub-process group under that one and commit that to its own version control, 
it will throw a NullPointerException:

*NOTE: This error only occurs for stateless nifi processing.*
{code:java}
2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
o.a.nifi.groups.StandardProcessGroup 
StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
2024-03-15T12:25:38.570693223Z Exception in thread "main" 
java.lang.NullPointerException: Registry ID must be specified
at java.base/java.util.Objects.requireNonNull(Unknown Source)
2024-03-15T12:25:38.570722016Z  at 
org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
2024-03-15T12:25:38.570725111Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
2024-03-15T12:25:38.570729455Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
2024-03-15T12:25:38.573083029Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
2024-03-15T12:25:38.573086447Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
2024-03-15T12:25:38.573092747Z  at 
org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)
2024-03-15T12:25:38.573095677Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:260)
2024-03-15T12:25:38.573098999Z  at 
org.apache.nifi.groups.StandardProcessGroup.synchronizeFlow(StandardProcessGroup.java:3977)
at 
org.apache.nifi.groups.StandardProcessGroup.updateFlow(StandardProcessGroup.java:3957)
at 
org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:180)
2024-03-15T12:25:38.573108177Z  at 
org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:243)
at 
org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:73)
 {code}
When stepping through the debugger, it appears the "registryId" property is 
null. The JerseyClient call is supposed to map the response from registry to 
the proper class, but registryId is never set:
{code:java}
java.lang.Thread.State: RUNNABLE
  at 
org.apache.nifi.flow.VersionedProcessGroup.setVersionedFlowCoordinates(VersionedProcessGroup.java:150)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Unknown 
Source:-1)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown 
Source:-1)
  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
Source:-1)
  at java.lang.reflect.Method.invoke(Unknown Source:-1)
  at 
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:141)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
  at 
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
  at 
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
  at 
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
  at 
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
  at 
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
  

[jira] [Updated] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-20 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose updated NIFI-12918:
-
Fix Version/s: (was: 1.26.0)

> Stateless NiFi NullPointerException on versioned PGs
> 
>
> Key: NIFI-12918
> URL: https://issues.apache.org/jira/browse/NIFI-12918
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> If you create a process group and commit that to version control, and then 
> add a sub-process group under that one which is also under a separate version 
> control, it will throw a NullPointerException.
>  
> {code:java}
> 2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
> o.a.nifi.groups.StandardProcessGroup 
> StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
> Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
> 2024-03-15T12:25:38.570693223Z Exception in thread "main" 
> java.lang.NullPointerException: Registry ID must be specified
>   at java.base/java.util.Objects.requireNonNull(Unknown Source)
> 2024-03-15T12:25:38.570722016Zat 
> org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
> 2024-03-15T12:25:38.570725111Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
> 2024-03-15T12:25:38.570729455Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
>   at 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
> 2024-03-15T12:25:38.573083029Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
> 2024-03-15T12:25:38.573086447Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
> 2024-03-15T12:25:38.573092747Zat 
> org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)
> 2024-03-15T12:25:38.573095677Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:260)
> 2024-03-15T12:25:38.573098999Zat 
> org.apache.nifi.groups.StandardProcessGroup.synchronizeFlow(StandardProcessGroup.java:3977)
>   at 
> org.apache.nifi.groups.StandardProcessGroup.updateFlow(StandardProcessGroup.java:3957)
>   at 
> org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:180)
> 2024-03-15T12:25:38.573108177Zat 
> org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:243)
>   at 
> org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:73)
>  {code}
> When stepping through the debugger, it appears the "registryId" property is 
> null. The JerseyClient call is supposed to map the response from registry to 
> the proper class, but registryId is never set:
> {code:java}
> java.lang.Thread.State: RUNNABLE
> at 
> org.apache.nifi.flow.VersionedProcessGroup.setVersionedFlowCoordinates(VersionedProcessGroup.java:150)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Unknown 
> Source:-1)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at java.lang.reflect.Method.invoke(Unknown Source:-1)
> at 
> com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:141)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
> at 
> com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
>  

[jira] [Commented] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-19 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose commented on NIFI-12918:
--

[https://github.com/apache/nifi/pull/8533] <-- for support/1.x branch

[https://github.com/apache/nifi/pull/8536] <-- for main branch

(We are still dependent on the 1. versions and need the fix available in the 
next 1. release)

> Stateless NiFi NullPointerException on versioned PGs
> 
>
> Key: NIFI-12918
> URL: https://issues.apache.org/jira/browse/NIFI-12918
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Assignee: Stephanie Ambrose
>Priority: Major
> Fix For: 1.26.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> If you create a process group and commit that to version control, and then 
> add a sub-process group under that one which is also under a separate version 
> control, it will throw a NullPointerException.
>  
> {code:java}
> 2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
> o.a.nifi.groups.StandardProcessGroup 
> StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
> Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
> 2024-03-15T12:25:38.570693223Z Exception in thread "main" 
> java.lang.NullPointerException: Registry ID must be specified
>   at java.base/java.util.Objects.requireNonNull(Unknown Source)
> 2024-03-15T12:25:38.570722016Zat 
> org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
> 2024-03-15T12:25:38.570725111Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
> 2024-03-15T12:25:38.570729455Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
>   at 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
> 2024-03-15T12:25:38.573083029Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
> 2024-03-15T12:25:38.573086447Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
> 2024-03-15T12:25:38.573092747Zat 
> org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)
> 2024-03-15T12:25:38.573095677Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:260)
> 2024-03-15T12:25:38.573098999Zat 
> org.apache.nifi.groups.StandardProcessGroup.synchronizeFlow(StandardProcessGroup.java:3977)
>   at 
> org.apache.nifi.groups.StandardProcessGroup.updateFlow(StandardProcessGroup.java:3957)
>   at 
> org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:180)
> 2024-03-15T12:25:38.573108177Zat 
> org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:243)
>   at 
> org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:73)
>  {code}
> When stepping through the debugger, it appears the "registryId" property is 
> null. The JerseyClient call is supposed to map the response from registry to 
> the proper class, but registryId is never set:
> {code:java}
> java.lang.Thread.State: RUNNABLE
> at 
> org.apache.nifi.flow.VersionedProcessGroup.setVersionedFlowCoordinates(VersionedProcessGroup.java:150)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Unknown 
> Source:-1)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at java.lang.reflect.Method.invoke(Unknown Source:-1)
> at 
> com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:141)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
> at 
> 

[jira] [Comment Edited] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-19 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose edited comment on NIFI-12918 at 3/19/24 5:54 PM:
---

[~dstiegli1] - Yes, I believe so. I'm submitting separate patch to support the 
main branch now. (same change)


was (Author: JIRAUSER299049):
Submitting separate patch to support the main branch.

> Stateless NiFi NullPointerException on versioned PGs
> 
>
> Key: NIFI-12918
> URL: https://issues.apache.org/jira/browse/NIFI-12918
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Assignee: Stephanie Ambrose
>Priority: Major
> Fix For: 1.26.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> If you create a process group and commit that to version control, and then 
> add a sub-process group under that one which is also under a separate version 
> control, it will throw a NullPointerException.
>  
> {code:java}
> 2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
> o.a.nifi.groups.StandardProcessGroup 
> StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
> Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
> 2024-03-15T12:25:38.570693223Z Exception in thread "main" 
> java.lang.NullPointerException: Registry ID must be specified
>   at java.base/java.util.Objects.requireNonNull(Unknown Source)
> 2024-03-15T12:25:38.570722016Zat 
> org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
> 2024-03-15T12:25:38.570725111Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
> 2024-03-15T12:25:38.570729455Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
>   at 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
> 2024-03-15T12:25:38.573083029Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
> 2024-03-15T12:25:38.573086447Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
> 2024-03-15T12:25:38.573092747Zat 
> org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)
> 2024-03-15T12:25:38.573095677Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:260)
> 2024-03-15T12:25:38.573098999Zat 
> org.apache.nifi.groups.StandardProcessGroup.synchronizeFlow(StandardProcessGroup.java:3977)
>   at 
> org.apache.nifi.groups.StandardProcessGroup.updateFlow(StandardProcessGroup.java:3957)
>   at 
> org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:180)
> 2024-03-15T12:25:38.573108177Zat 
> org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:243)
>   at 
> org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:73)
>  {code}
> When stepping through the debugger, it appears the "registryId" property is 
> null. The JerseyClient call is supposed to map the response from registry to 
> the proper class, but registryId is never set:
> {code:java}
> java.lang.Thread.State: RUNNABLE
> at 
> org.apache.nifi.flow.VersionedProcessGroup.setVersionedFlowCoordinates(VersionedProcessGroup.java:150)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Unknown 
> Source:-1)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at java.lang.reflect.Method.invoke(Unknown Source:-1)
> at 
> com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:141)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
> at 
> 

[jira] [Commented] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-19 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose commented on NIFI-12918:
--

Submitting separate patch to support the main branch.

> Stateless NiFi NullPointerException on versioned PGs
> 
>
> Key: NIFI-12918
> URL: https://issues.apache.org/jira/browse/NIFI-12918
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Assignee: Stephanie Ambrose
>Priority: Major
> Fix For: 1.26.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> If you create a process group and commit that to version control, and then 
> add a sub-process group under that one which is also under a separate version 
> control, it will throw a NullPointerException.
>  
> {code:java}
> 2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
> o.a.nifi.groups.StandardProcessGroup 
> StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
> Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
> 2024-03-15T12:25:38.570693223Z Exception in thread "main" 
> java.lang.NullPointerException: Registry ID must be specified
>   at java.base/java.util.Objects.requireNonNull(Unknown Source)
> 2024-03-15T12:25:38.570722016Zat 
> org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
> 2024-03-15T12:25:38.570725111Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
> 2024-03-15T12:25:38.570729455Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
>   at 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
> 2024-03-15T12:25:38.573083029Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
> 2024-03-15T12:25:38.573086447Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
> 2024-03-15T12:25:38.573092747Zat 
> org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)
> 2024-03-15T12:25:38.573095677Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:260)
> 2024-03-15T12:25:38.573098999Zat 
> org.apache.nifi.groups.StandardProcessGroup.synchronizeFlow(StandardProcessGroup.java:3977)
>   at 
> org.apache.nifi.groups.StandardProcessGroup.updateFlow(StandardProcessGroup.java:3957)
>   at 
> org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:180)
> 2024-03-15T12:25:38.573108177Zat 
> org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:243)
>   at 
> org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:73)
>  {code}
> When stepping through the debugger, it appears the "registryId" property is 
> null. The JerseyClient call is supposed to map the response from registry to 
> the proper class, but registryId is never set:
> {code:java}
> java.lang.Thread.State: RUNNABLE
> at 
> org.apache.nifi.flow.VersionedProcessGroup.setVersionedFlowCoordinates(VersionedProcessGroup.java:150)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Unknown 
> Source:-1)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at java.lang.reflect.Method.invoke(Unknown Source:-1)
> at 
> com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:141)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
> at 
> 

[jira] [Updated] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-19 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose updated NIFI-12918:
-
Fix Version/s: 1.26.0
   Status: Patch Available  (was: In Progress)

Patch was submitted based off of the support/1.x branch.

> Stateless NiFi NullPointerException on versioned PGs
> 
>
> Key: NIFI-12918
> URL: https://issues.apache.org/jira/browse/NIFI-12918
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Assignee: Stephanie Ambrose
>Priority: Major
> Fix For: 1.26.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> If you create a process group and commit that to version control, and then 
> add a sub-process group under that one which is also under a separate version 
> control, it will throw a NullPointerException.
>  
> {code:java}
> 2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
> o.a.nifi.groups.StandardProcessGroup 
> StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
> Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
> 2024-03-15T12:25:38.570693223Z Exception in thread "main" 
> java.lang.NullPointerException: Registry ID must be specified
>   at java.base/java.util.Objects.requireNonNull(Unknown Source)
> 2024-03-15T12:25:38.570722016Zat 
> org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
> 2024-03-15T12:25:38.570725111Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
> 2024-03-15T12:25:38.570729455Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
>   at 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
> 2024-03-15T12:25:38.573083029Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
> 2024-03-15T12:25:38.573086447Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
> 2024-03-15T12:25:38.573092747Zat 
> org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)
> 2024-03-15T12:25:38.573095677Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:260)
> 2024-03-15T12:25:38.573098999Zat 
> org.apache.nifi.groups.StandardProcessGroup.synchronizeFlow(StandardProcessGroup.java:3977)
>   at 
> org.apache.nifi.groups.StandardProcessGroup.updateFlow(StandardProcessGroup.java:3957)
>   at 
> org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:180)
> 2024-03-15T12:25:38.573108177Zat 
> org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:243)
>   at 
> org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:73)
>  {code}
> When stepping through the debugger, it appears the "registryId" property is 
> null. The JerseyClient call is supposed to map the response from registry to 
> the proper class, but registryId is never set:
> {code:java}
> java.lang.Thread.State: RUNNABLE
> at 
> org.apache.nifi.flow.VersionedProcessGroup.setVersionedFlowCoordinates(VersionedProcessGroup.java:150)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Unknown 
> Source:-1)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at java.lang.reflect.Method.invoke(Unknown Source:-1)
> at 
> com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:141)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
> at 
> 

[jira] [Assigned] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-19 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose reassigned NIFI-12918:


Assignee: Stephanie Ambrose

> Stateless NiFi NullPointerException on versioned PGs
> 
>
> Key: NIFI-12918
> URL: https://issues.apache.org/jira/browse/NIFI-12918
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> If you create a process group and commit that to version control, and then 
> add a sub-process group under that one which is also under a separate version 
> control, it will throw a NullPointerException.
>  
> {code:java}
> 2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
> o.a.nifi.groups.StandardProcessGroup 
> StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
> Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
> 2024-03-15T12:25:38.570693223Z Exception in thread "main" 
> java.lang.NullPointerException: Registry ID must be specified
>   at java.base/java.util.Objects.requireNonNull(Unknown Source)
> 2024-03-15T12:25:38.570722016Zat 
> org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
> 2024-03-15T12:25:38.570725111Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
> 2024-03-15T12:25:38.570729455Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
>   at 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
> 2024-03-15T12:25:38.573083029Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
> 2024-03-15T12:25:38.573086447Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
> 2024-03-15T12:25:38.573092747Zat 
> org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)
> 2024-03-15T12:25:38.573095677Zat 
> org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:260)
> 2024-03-15T12:25:38.573098999Zat 
> org.apache.nifi.groups.StandardProcessGroup.synchronizeFlow(StandardProcessGroup.java:3977)
>   at 
> org.apache.nifi.groups.StandardProcessGroup.updateFlow(StandardProcessGroup.java:3957)
>   at 
> org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:180)
> 2024-03-15T12:25:38.573108177Zat 
> org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:243)
>   at 
> org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:73)
>  {code}
> When stepping through the debugger, it appears the "registryId" property is 
> null. The JerseyClient call is supposed to map the response from registry to 
> the proper class, but registryId is never set:
> {code:java}
> java.lang.Thread.State: RUNNABLE
> at 
> org.apache.nifi.flow.VersionedProcessGroup.setVersionedFlowCoordinates(VersionedProcessGroup.java:150)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Unknown 
> Source:-1)
> at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
> Source:-1)
> at java.lang.reflect.Method.invoke(Unknown Source:-1)
> at 
> com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:141)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
> at 
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
> at 
> com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
> at 
> com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
> 

[jira] [Created] (NIFI-12918) Stateless NiFi NullPointerException on versioned PGs

2024-03-18 Thread Stephanie Ambrose (Jira)
Stephanie Ambrose created NIFI-12918:


 Summary: Stateless NiFi NullPointerException on versioned PGs
 Key: NIFI-12918
 URL: https://issues.apache.org/jira/browse/NIFI-12918
 Project: Apache NiFi
  Issue Type: Bug
Reporter: Stephanie Ambrose


If you create a process group and commit that to version control, and then add 
a sub-process group under that one which is also under a separate version 
control, it will throw a NullPointerException.

 
{code:java}
2024-03-15T12:25:38.565156967Z 2024-03-15 12:25:38,564 INFO [main] 
o.a.nifi.groups.StandardProcessGroup 
StandardProcessGroup[identifier=9688e64b-3f4a-3668-81b9-e25d9ea61454,name=Sub 
Group] added to StandardProcessGroup[identifier=stateless-flow,name=Test Flow]
2024-03-15T12:25:38.570693223Z Exception in thread "main" 
java.lang.NullPointerException: Registry ID must be specified
at java.base/java.util.Objects.requireNonNull(Unknown Source)
2024-03-15T12:25:38.570722016Z  at 
org.apache.nifi.registry.flow.StandardVersionControlInformation$Builder.build(StandardVersionControlInformation.java:134)
2024-03-15T12:25:38.570725111Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:354)
2024-03-15T12:25:38.570729455Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.addProcessGroup(StandardVersionedComponentSynchronizer.java:1185)
at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronizeChildGroups(StandardVersionedComponentSynchronizer.java:528)
2024-03-15T12:25:38.573083029Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:426)
2024-03-15T12:25:38.573086447Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.lambda$synchronize$0(StandardVersionedComponentSynchronizer.java:265)
2024-03-15T12:25:38.573092747Z  at 
org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)
2024-03-15T12:25:38.573095677Z  at 
org.apache.nifi.flow.synchronization.StandardVersionedComponentSynchronizer.synchronize(StandardVersionedComponentSynchronizer.java:260)
2024-03-15T12:25:38.573098999Z  at 
org.apache.nifi.groups.StandardProcessGroup.synchronizeFlow(StandardProcessGroup.java:3977)
at 
org.apache.nifi.groups.StandardProcessGroup.updateFlow(StandardProcessGroup.java:3957)
at 
org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:180)
2024-03-15T12:25:38.573108177Z  at 
org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:243)
at 
org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:73)
 {code}
When stepping through the debugger, it appears the "registryId" property is 
null. The JerseyClient call is supposed to map the response from registry to 
the proper class, but registryId is never set:


{code:java}
java.lang.Thread.State: RUNNABLE
  at 
org.apache.nifi.flow.VersionedProcessGroup.setVersionedFlowCoordinates(VersionedProcessGroup.java:150)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Unknown 
Source:-1)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown 
Source:-1)
  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
Source:-1)
  at java.lang.reflect.Method.invoke(Unknown Source:-1)
  at 
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:141)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
  at 
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
  at 
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
  at 
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
  at 
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
  at 
com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
  at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314)
  at 

[jira] [Resolved] (NIFI-12780) Stateless NiFi properties missing in stateless.properties base config

2024-02-13 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose resolved NIFI-12780.
--
Resolution: Won't Fix

Ignore, we have a way to support camelCase.

> Stateless NiFi properties missing in stateless.properties base config
> -
>
> Key: NIFI-12780
> URL: https://issues.apache.org/jira/browse/NIFI-12780
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Priority: Major
>
> These new properties from NIFI-11471 need to be added to the base 
> stateless.properties file otherwise you won't be able to override them with 
> environment variables in the replace docker scripts:
>  
> nifi.stateless.component.enableTimeout
> nifi.stateless.processor.startTimeout
>  
> Alternatively, make the properties not case-sensitive.



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


[jira] [Updated] (NIFI-12780) Stateless NiFi properties missing in stateless.properties base config

2024-02-12 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose updated NIFI-12780:
-
Description: 
These new properties from NIFI-11471 need to be added to the base 
stateless.properties file otherwise you won't be able to override them with 
environment variables in the replace docker scripts:

 

nifi.stateless.component.enableTimeout

nifi.stateless.processor.startTimeout

 

Alternatively, make the properties not case-sensitive.

  was:
These new properties from NIFI-11471 need to be added to the base 
stateless.properties file otherwise you won't be able to override them with 
environment variables in the replace docker scripts:

 

nifi.stateless.component.enableTimeout

nifi.stateless.processor.startTimeout


> Stateless NiFi properties missing in stateless.properties base config
> -
>
> Key: NIFI-12780
> URL: https://issues.apache.org/jira/browse/NIFI-12780
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Priority: Major
>
> These new properties from NIFI-11471 need to be added to the base 
> stateless.properties file otherwise you won't be able to override them with 
> environment variables in the replace docker scripts:
>  
> nifi.stateless.component.enableTimeout
> nifi.stateless.processor.startTimeout
>  
> Alternatively, make the properties not case-sensitive.



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


[jira] [Created] (NIFI-12780) Stateless NiFi properties missing in stateless.properties base config

2024-02-12 Thread Stephanie Ambrose (Jira)
Stephanie Ambrose created NIFI-12780:


 Summary: Stateless NiFi properties missing in stateless.properties 
base config
 Key: NIFI-12780
 URL: https://issues.apache.org/jira/browse/NIFI-12780
 Project: Apache NiFi
  Issue Type: Bug
Reporter: Stephanie Ambrose


These new properties from NIFI-11471 need to be added to the base 
stateless.properties file otherwise you won't be able to override them with 
environment variables in the replace docker scripts:

 

nifi.stateless.component.enableTimeout

nifi.stateless.processor.startTimeout



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


[jira] [Created] (NIFI-11812) Stateless hardcodes "nexus" as the only extension option - Requesting NiFi Registry and/or S3 as additional ExtensionClient options

2023-07-14 Thread Stephanie Ambrose (Jira)
Stephanie Ambrose created NIFI-11812:


 Summary: Stateless hardcodes "nexus" as the only extension option 
- Requesting NiFi Registry and/or S3 as additional ExtensionClient options
 Key: NIFI-11812
 URL: https://issues.apache.org/jira/browse/NIFI-11812
 Project: Apache NiFi
  Issue Type: New Feature
Reporter: Stephanie Ambrose


Right now stateless NiFi has a hard-coded check on extension type of "nexus" on 
line 302 of StandardStatelessDataflowFactory. It would be nice to configure 
stateless to pull nars from additional extensions such as NiFi Registry and/or 
S3. "stateful" NiFi allows you to set the nar provider to NiFi Registry, which 
can be configured to store to S3. It'd be nice to have this feature for 
stateless as well versus being tied to only nexus.



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


[jira] (NIFI-11231) Stateless Nifi Supports Sensitive Parameter Context Variables

2023-06-26 Thread Stephanie Ambrose (Jira)


[ https://issues.apache.org/jira/browse/NIFI-11231 ]


Stephanie Ambrose deleted comment on NIFI-11231:
--

was (Author: JIRAUSER299049):
[~jgresock] Remember, this was for overriding values in the 
stateless.properties file, not for flow environment variables. For example, you 
can't override this property via command line: 
nifi.stateless.security.keystorePassword the same way your override some other 
values in the flow and engine property files. I'd want to run something like:
command: ["/bin/sh", "-c", "/opt/nifi/nifi-current/bin/nifi-stateless.sh -c -p 
\"nifi.stateless.security.keystorePasswd=${KEYSTORE_PASSWORD}\""]

> Stateless Nifi Supports Sensitive Parameter Context Variables
> -
>
> Key: NIFI-11231
> URL: https://issues.apache.org/jira/browse/NIFI-11231
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: NiFi Stateless
>Affects Versions: 1.20.0
>Reporter: Dye357
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> Currently Sensitive Parameter Context Variables are not supported in 
> Stateless Nifi - this is due to StatelessFlowManager being stubbed to throw a 
> "Not Implemented" exception when providing a process group configured with a 
> secure Parameter Context variable.
> Desired functionality: Sensitive Parameter Context Variables can be used with 
> stateless Nifi. If a process group contains a Sensitive Parameter Context 
> Variable the context is used to hydrate all parameters within the provided 
> flow including any marked sensitive.
> Acceptance Criteria: Process Groups using secure parameters can be used in 
> stateless Nifi. 



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


[jira] [Commented] (NIFI-11231) Stateless Nifi Supports Sensitive Parameter Context Variables

2023-06-26 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose commented on NIFI-11231:
--

[~jgresock] Remember, this was for overriding values in the 
stateless.properties file, not for flow environment variables. For example, you 
can't override this property via command line: 
nifi.stateless.security.keystorePassword the same way your override some other 
values in the flow and engine property files. I'd want to run something like:
command: ["/bin/sh", "-c", "/opt/nifi/nifi-current/bin/nifi-stateless.sh -c -p 
\"nifi.stateless.security.keystorePasswd=${KEYSTORE_PASSWORD}\""]

> Stateless Nifi Supports Sensitive Parameter Context Variables
> -
>
> Key: NIFI-11231
> URL: https://issues.apache.org/jira/browse/NIFI-11231
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: NiFi Stateless
>Affects Versions: 1.20.0
>Reporter: Dye357
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> Currently Sensitive Parameter Context Variables are not supported in 
> Stateless Nifi - this is due to StatelessFlowManager being stubbed to throw a 
> "Not Implemented" exception when providing a process group configured with a 
> secure Parameter Context variable.
> Desired functionality: Sensitive Parameter Context Variables can be used with 
> stateless Nifi. If a process group contains a Sensitive Parameter Context 
> Variable the context is used to hydrate all parameters within the provided 
> flow including any marked sensitive.
> Acceptance Criteria: Process Groups using secure parameters can be used in 
> stateless Nifi. 



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


[jira] [Updated] (NIFI-11650) Stateless NiFi does not support ssl properties passed in from environment variables

2023-06-07 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose updated NIFI-11650:
-
Description: 
When deploying stateless NiFi in an environment like k8s, we have the 
stateless.properties file as a configMap. We need to pass in the keystore 
password, retrieved by the k8s secret (or environment variable). According to 
the stateless documentation, this should be supported; however, it looks like 
the ssl properties specifically don't allow for override. For example, I'm 
trying to pass this in when running stateless from my deployment.yaml:
command: 
["/bin/sh", "-c", "/opt/nifi/nifi-current/bin/nifi-stateless.sh -c -p 
\"nifi.stateless.security.keystorePasswd=${KEYSTORE_PASSWORD}\""] 

Similarly to how the env-flow-config.properties file can reference environment 
variables with env\{VAR_NAME}, the stateless.properties file should be able to 
do the same.

The expected behavior would be that the nifi.stateless.security.keystorePasswd 
property in stateless.properties would be updated by environment variables. 
 
Documentation referenced here 
([https://github.com/apache/nifi/blob/main/nifi-stateless/nifi-stateless-assembly/README.md#passing-parameters)]
 
 
Chatted briefly w/ Joe Gresock to verify and requested a ticket be submitted.

  was:
When deploying stateless NiFi in an environment like k8s, we have the 
stateless.properties file as a configMap. We need to pass in the keystore 
password, retrieved by the k8s secret (or environment variable). According to 
the stateless documentation, this should be supported; however, it looks like 
the ssl properties specifically don't allow for override. For example, I'm 
trying to pass this in when running stateless from my deployment.yaml:
command: 
["/bin/sh", "-c", "/opt/nifi/nifi-current/bin/nifi-stateless.sh -c -p 
\"nifi.stateless.security.keystorePasswd=${KEYSTORE_PASSWORD}\""]

The expected behavior would be that the nifi.stateless.security.keystorePasswd 
property in stateless.properties would be updated. 
 
Documentation referenced here 
([https://github.com/apache/nifi/blob/main/nifi-stateless/nifi-stateless-assembly/README.md#passing-parameters)]
 
 
Chatted briefly w/ Joe Gresock to verify and requested a ticket be submitted.

Summary: Stateless NiFi does not support ssl properties passed in from 
environment variables  (was: Stateless NiFi does not support ssl properties 
passed in.)

> Stateless NiFi does not support ssl properties passed in from environment 
> variables
> ---
>
> Key: NIFI-11650
> URL: https://issues.apache.org/jira/browse/NIFI-11650
> Project: Apache NiFi
>  Issue Type: Bug
>Affects Versions: 1.20.0
>Reporter: Stephanie Ambrose
>Priority: Major
>
> When deploying stateless NiFi in an environment like k8s, we have the 
> stateless.properties file as a configMap. We need to pass in the keystore 
> password, retrieved by the k8s secret (or environment variable). According to 
> the stateless documentation, this should be supported; however, it looks like 
> the ssl properties specifically don't allow for override. For example, I'm 
> trying to pass this in when running stateless from my deployment.yaml:
> command: 
> ["/bin/sh", "-c", "/opt/nifi/nifi-current/bin/nifi-stateless.sh -c -p 
> \"nifi.stateless.security.keystorePasswd=${KEYSTORE_PASSWORD}\""] 
> Similarly to how the env-flow-config.properties file can reference 
> environment variables with env\{VAR_NAME}, the stateless.properties file 
> should be able to do the same.
> The expected behavior would be that the 
> nifi.stateless.security.keystorePasswd property in stateless.properties would 
> be updated by environment variables. 
>  
> Documentation referenced here 
> ([https://github.com/apache/nifi/blob/main/nifi-stateless/nifi-stateless-assembly/README.md#passing-parameters)]
>  
>  
> Chatted briefly w/ Joe Gresock to verify and requested a ticket be submitted.



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


[jira] [Created] (NIFI-11650) Stateless NiFi does not support ssl properties passed in.

2023-06-06 Thread Stephanie Ambrose (Jira)
Stephanie Ambrose created NIFI-11650:


 Summary: Stateless NiFi does not support ssl properties passed in.
 Key: NIFI-11650
 URL: https://issues.apache.org/jira/browse/NIFI-11650
 Project: Apache NiFi
  Issue Type: Bug
Affects Versions: 1.20.0
Reporter: Stephanie Ambrose


When deploying stateless NiFi in an environment like k8s, we have the 
stateless.properties file as a configMap. We need to pass in the keystore 
password, retrieved by the k8s secret (or environment variable). According to 
the stateless documentation, this should be supported; however, it looks like 
the ssl properties specifically don't allow for override. For example, I'm 
trying to pass this in when running stateless from my deployment.yaml:
command: 
["/bin/sh", "-c", "/opt/nifi/nifi-current/bin/nifi-stateless.sh -c -p 
\"nifi.stateless.security.keystorePasswd=${KEYSTORE_PASSWORD}\""]

The expected behavior would be that the nifi.stateless.security.keystorePasswd 
property in stateless.properties would be updated. 
 
Documentation referenced here 
([https://github.com/apache/nifi/blob/main/nifi-stateless/nifi-stateless-assembly/README.md#passing-parameters)]
 
 
Chatted briefly w/ Joe Gresock to verify and requested a ticket be submitted.



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


[jira] [Resolved] (NIFI-11297) Prometheus Reporting Task throws a NullPointerException for Stateless NiFi

2023-03-21 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose resolved NIFI-11297.
--
  Assignee: Stephanie Ambrose
Resolution: Not A Problem

[https://github.com/apache/nifi/tree/main/nifi-stateless/nifi-stateless-assembly#reporting-tasks]

^ This could use some verbiage on required properties for specific reporting 
tasks The 
nifi.stateless.reporting.task.prometheus.frequency=10 sec

...property sets the getSchedulingPeriod method on the ReportingTaskNode class, 
which throws a NullPointerException without it.

> Prometheus Reporting Task throws a NullPointerException for Stateless NiFi
> --
>
> Key: NIFI-11297
> URL: https://issues.apache.org/jira/browse/NIFI-11297
> Project: Apache NiFi
>  Issue Type: Bug
>Reporter: Stephanie Ambrose
>Assignee: Stephanie Ambrose
>Priority: Critical
>
> When configuring the Prometheus reporting task for Stateless NiFi, a 
> NullPointerException is thown and it does not work.
> Here are my config properties:
> nifi.stateless.reporting.task.prometheus.name=Prometheus
> nifi.stateless.reporting.task.prometheus.type=PrometheusReportingTask
> nifi.stateless.reporting.task.prometheus.bundle=org.apache.nifi:nifi-prometheus-nar:1.12.1
> nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-metrics-endpoint-port=9100
> nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-instance-id=statelessNiFi1
> nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-metrics-strategy=All
>  Components
> nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-metrics-send-jvm=false
> nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-client-auth=No
>  Authentication
> And here is the error that is thrown to my Prometheus server:
> HTTP ERROR 500 java.lang.NullPointerException
> URI:  /metrics/
> STATUS:   500
> MESSAGE:  java.lang.NullPointerException
> SERVLET:  
> org.apache.nifi.reporting.prometheus.PrometheusServer$MetricsServlet-6d1c2fd6
> CAUSED BY:java.lang.NullPointerException
> Caused by:
> java.lang.NullPointerException
>   at 
> org.apache.nifi.reporting.prometheus.PrometheusReportingTask.lambda$onScheduled$0(PrometheusReportingTask.java:133)
>   at 
> org.apache.nifi.reporting.prometheus.PrometheusServer$MetricsServlet.doGet(PrometheusServer.java:69)
>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>   at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
>   at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:554)
>   at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
>   at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
>   at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
>   at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
>   at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
>   at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
>   at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>   at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>   at org.eclipse.jetty.server.Server.handle(Server.java:516)
>   at 
> org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
>   at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
>   at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
>   at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
>   at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
>   at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
>   at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
>   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
>   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
>   at java.base/java.lang.Thread.run(Thread.java:829)
>  
> We intend to use the Prometheus reporting task in Stateless NiFi for HPA and 
> pod health, so for us this would be a critical bug fix.
>  
> Thanks!



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


[jira] [Created] (NIFI-11297) Prometheus Reporting Task throws a NullPointerException for Stateless NiFi

2023-03-17 Thread Stephanie Ambrose (Jira)
Stephanie Ambrose created NIFI-11297:


 Summary: Prometheus Reporting Task throws a NullPointerException 
for Stateless NiFi
 Key: NIFI-11297
 URL: https://issues.apache.org/jira/browse/NIFI-11297
 Project: Apache NiFi
  Issue Type: Bug
Reporter: Stephanie Ambrose


When configuring the Prometheus reporting task for Stateless NiFi, a 
NullPointerException is thown and it does not work.

Here are my config properties:
nifi.stateless.reporting.task.prometheus.name=Prometheus
nifi.stateless.reporting.task.prometheus.type=PrometheusReportingTask
nifi.stateless.reporting.task.prometheus.bundle=org.apache.nifi:nifi-prometheus-nar:1.12.1
nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-metrics-endpoint-port=9100
nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-instance-id=statelessNiFi1
nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-metrics-strategy=All
 Components
nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-metrics-send-jvm=false
nifi.stateless.reporting.task.prometheus.properties.prometheus-reporting-task-client-auth=No
 Authentication

And here is the error that is thrown to my Prometheus server:


HTTP ERROR 500 java.lang.NullPointerException
URI:/metrics/
STATUS: 500
MESSAGE:java.lang.NullPointerException
SERVLET:
org.apache.nifi.reporting.prometheus.PrometheusServer$MetricsServlet-6d1c2fd6
CAUSED BY:  java.lang.NullPointerException
Caused by:
java.lang.NullPointerException
at 
org.apache.nifi.reporting.prometheus.PrometheusReportingTask.lambda$onScheduled$0(PrometheusReportingTask.java:133)
at 
org.apache.nifi.reporting.prometheus.PrometheusServer$MetricsServlet.doGet(PrometheusServer.java:69)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:554)
at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at 
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
at java.base/java.lang.Thread.run(Thread.java:829)
 

We intend to use the Prometheus reporting task in Stateless NiFi for HPA and 
pod health, so for us this would be a critical bug fix.

 

Thanks!



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


[jira] [Updated] (NIFI-11239) Stateless-Nifi not logging performance counters

2023-03-09 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose updated NIFI-11239:
-
Status: Patch Available  (was: In Progress)

> Stateless-Nifi not logging performance counters
> ---
>
> Key: NIFI-11239
> URL: https://issues.apache.org/jira/browse/NIFI-11239
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: NiFi Stateless
>Affects Versions: 1.20.0
>Reporter: Dye357
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Description: It appears at some point work was done to log the performance 
> counters for flows running in stateless-nifi. I've tested on 1.19.1 and 
> 1.20.0 and found that the functionality is broken, the headers for the 
> logging print however no component counts displayed:
>  
> -
> 2023-03-02 10:14:03,503 INFO [Background Tasks] 
> o.a.n.c.reporting.LogComponentStatuses Counters:
> --
> | Counter Context                      | Counter Name                         
> |                Counter Value |                 Increase/sec |
> --
> --
>  
> Further investigating the code reveals that the LogComponentStatues class is 
> being passed a FlowCounterContext which is effectively empty. It looks like 
> StatelessRepositoryContext.java is not overriding the requisite abstract 
> method to inject the peromanceCounters into the FlowCounterContext.
>  
> Acceptance Criteria: The flow performance counters are correctly logged when 
> logCounters() is invokes in LogComponentStatuses.java.



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


[jira] [Updated] (NIFI-11231) Stateless Nifi Supports Sensitive Parameter Context Variables

2023-03-07 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose updated NIFI-11231:
-
Summary: Stateless Nifi Supports Sensitive Parameter Context Variables  
(was: Stateless Nifi Supports Secure Parameter Context Variables)

> Stateless Nifi Supports Sensitive Parameter Context Variables
> -
>
> Key: NIFI-11231
> URL: https://issues.apache.org/jira/browse/NIFI-11231
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: NiFi Stateless
>Affects Versions: 1.20.0
>Reporter: Dye357
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently Secure Parameter Context Variables are not supported in Stateless 
> Nifi - this is due to StatelessFlowManager being stubbed to throw a "Not 
> Implemented" exception when providing a process group configured with a 
> secure Parameter Context variable.
> Desired functionality: Secure Parameter Context Variables can be used with 
> stateless Nifi. If a process group contains a Secure Parameter Context 
> Variable the context is used to hydrate all parameters within the provided 
> flow including any marked sensitive.
> Acceptance Criteria: Process Groups using secure parameters can be used in 
> stateless Nifi. 



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


[jira] [Updated] (NIFI-11231) Stateless Nifi Supports Sensitive Parameter Context Variables

2023-03-07 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose updated NIFI-11231:
-
Description: 
Currently Sensitive Parameter Context Variables are not supported in Stateless 
Nifi - this is due to StatelessFlowManager being stubbed to throw a "Not 
Implemented" exception when providing a process group configured with a secure 
Parameter Context variable.

Desired functionality: Sensitive Parameter Context Variables can be used with 
stateless Nifi. If a process group contains a Sensitive Parameter Context 
Variable the context is used to hydrate all parameters within the provided flow 
including any marked sensitive.

Acceptance Criteria: Process Groups using secure parameters can be used in 
stateless Nifi. 

  was:
Currently Secure Parameter Context Variables are not supported in Stateless 
Nifi - this is due to StatelessFlowManager being stubbed to throw a "Not 
Implemented" exception when providing a process group configured with a secure 
Parameter Context variable.

Desired functionality: Secure Parameter Context Variables can be used with 
stateless Nifi. If a process group contains a Secure Parameter Context Variable 
the context is used to hydrate all parameters within the provided flow 
including any marked sensitive.

Acceptance Criteria: Process Groups using secure parameters can be used in 
stateless Nifi. 


> Stateless Nifi Supports Sensitive Parameter Context Variables
> -
>
> Key: NIFI-11231
> URL: https://issues.apache.org/jira/browse/NIFI-11231
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: NiFi Stateless
>Affects Versions: 1.20.0
>Reporter: Dye357
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently Sensitive Parameter Context Variables are not supported in 
> Stateless Nifi - this is due to StatelessFlowManager being stubbed to throw a 
> "Not Implemented" exception when providing a process group configured with a 
> secure Parameter Context variable.
> Desired functionality: Sensitive Parameter Context Variables can be used with 
> stateless Nifi. If a process group contains a Sensitive Parameter Context 
> Variable the context is used to hydrate all parameters within the provided 
> flow including any marked sensitive.
> Acceptance Criteria: Process Groups using secure parameters can be used in 
> stateless Nifi. 



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


[jira] [Updated] (NIFI-11231) Stateless Nifi Supports Secure Parameter Context Variables

2023-03-02 Thread Stephanie Ambrose (Jira)


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

Stephanie Ambrose updated NIFI-11231:
-
Status: Patch Available  (was: In Progress)

> Stateless Nifi Supports Secure Parameter Context Variables
> --
>
> Key: NIFI-11231
> URL: https://issues.apache.org/jira/browse/NIFI-11231
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: NiFi Stateless
>Affects Versions: 1.20.0
>Reporter: Dye357
>Assignee: Stephanie Ambrose
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently Secure Parameter Context Variables are not supported in Stateless 
> Nifi - this is due to StatelessFlowManager being stubbed to throw a "Not 
> Implemented" exception when providing a process group configured with a 
> secure Parameter Context variable.
> Desired functionality: Secure Parameter Context Variables can be used with 
> stateless Nifi. If a process group contains a Secure Parameter Context 
> Variable the context is used to hydrate all parameters within the provided 
> flow including any marked sensitive.
> Acceptance Criteria: Process Groups using secure parameters can be used in 
> stateless Nifi. 



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