This is an automated email from the ASF dual-hosted git repository.

pvillard31 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 49628d70c03 NIFI-16339 Improved stability of 
PythonNarDeletionDuringInitIT (#11697)
49628d70c03 is described below

commit 49628d70c03dcc096d2f807e2791e363b674fb5e
Author: David Handermann <[email protected]>
AuthorDate: Sat Sep 19 02:03:12 2026 -0500

    NIFI-16339 Improved stability of PythonNarDeletionDuringInitIT (#11697)
---
 .../python/PythonNarDeletionDuringInitIT.java      | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/python/PythonNarDeletionDuringInitIT.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/python/PythonNarDeletionDuringInitIT.java
index 845844b3310..6e4050b2f0e 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/python/PythonNarDeletionDuringInitIT.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/python/PythonNarDeletionDuringInitIT.java
@@ -41,7 +41,6 @@ import static 
org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class PythonNarDeletionDuringInitIT extends NiFiSystemIT {
@@ -67,7 +66,7 @@ public class PythonNarDeletionDuringInitIT extends 
NiFiSystemIT {
         final NarSummaryDTO uploadedNarSummary = 
narUploadUtil.uploadNar(pythonTestExtensionsNar);
         
waitFor(narUploadUtil.getWaitForNarStateSupplier(uploadedNarSummary.getIdentifier(),
 NarState.INSTALLED));
 
-        final DocumentedTypeDTO processorTypeDTO = 
getDocumentedTypeDTO(PYTHON_WRITE_BECH_32_CHARSET);
+        final DocumentedTypeDTO processorTypeDTO = waitForProcessorType();
         assertNotNull(processorTypeDTO);
         final BundleDTO processorBundle = processorTypeDTO.getBundle();
 
@@ -98,7 +97,7 @@ public class PythonNarDeletionDuringInitIT extends 
NiFiSystemIT {
 
         narUploadUtil.verifyNarSummaries(0);
 
-        assertNull(getDocumentedTypeDTO(PYTHON_WRITE_BECH_32_CHARSET));
+        waitFor(() -> getProcessorType() == null);
 
         final String pythonProcessorId = pythonProcessor.getId();
         waitFor(() -> {
@@ -118,7 +117,7 @@ public class PythonNarDeletionDuringInitIT extends 
NiFiSystemIT {
         final NarSummaryDTO uploadedNarSummary = 
narUploadUtil.uploadNar(pythonTestExtensionsNar);
         
waitFor(narUploadUtil.getWaitForNarStateSupplier(uploadedNarSummary.getIdentifier(),
 NarState.INSTALLED));
 
-        final DocumentedTypeDTO processorTypeDTO = 
getDocumentedTypeDTO(PYTHON_WRITE_BECH_32_CHARSET);
+        final DocumentedTypeDTO processorTypeDTO = waitForProcessorType();
         final BundleDTO processorBundle = processorTypeDTO.getBundle();
 
         final ProcessorEntity firstProcessor = getClientUtil().createProcessor(
@@ -152,7 +151,7 @@ public class PythonNarDeletionDuringInitIT extends 
NiFiSystemIT {
         final NarSummaryDTO reuploadedNarSummary = 
narUploadUtil.uploadNar(pythonTestExtensionsNar);
         
waitFor(narUploadUtil.getWaitForNarStateSupplier(reuploadedNarSummary.getIdentifier(),
 NarState.INSTALLED));
 
-        final DocumentedTypeDTO reloadedProcessorType = 
getDocumentedTypeDTO(PYTHON_WRITE_BECH_32_CHARSET);
+        final DocumentedTypeDTO reloadedProcessorType = waitForProcessorType();
         assertNotNull(reloadedProcessorType);
 
         final ProcessorEntity secondProcessor = 
getClientUtil().createProcessor(
@@ -187,7 +186,7 @@ public class PythonNarDeletionDuringInitIT extends 
NiFiSystemIT {
             final NarSummaryDTO narSummary = 
narUploadUtil.uploadNar(pythonTestExtensionsNar);
             
waitFor(narUploadUtil.getWaitForNarStateSupplier(narSummary.getIdentifier(), 
NarState.INSTALLED));
 
-            final DocumentedTypeDTO processorType = 
getDocumentedTypeDTO(PYTHON_WRITE_BECH_32_CHARSET);
+            final DocumentedTypeDTO processorType = waitForProcessorType();
             assertNotNull(processorType);
 
             final ProcessorEntity processor = getClientUtil().createProcessor(
@@ -234,7 +233,7 @@ public class PythonNarDeletionDuringInitIT extends 
NiFiSystemIT {
         final NarSummaryDTO narSummary = 
narUploadUtil.uploadNar(pythonTestExtensionsNar);
         
waitFor(narUploadUtil.getWaitForNarStateSupplier(narSummary.getIdentifier(), 
NarState.INSTALLED));
 
-        final DocumentedTypeDTO processorType = 
getDocumentedTypeDTO(PYTHON_WRITE_BECH_32_CHARSET);
+        final DocumentedTypeDTO processorType = waitForProcessorType();
         final ProcessorEntity processor = getClientUtil().createProcessor(
                 PYTHON_WRITE_BECH_32_CHARSET,
                 processorType.getBundle().getGroup(),
@@ -282,14 +281,19 @@ public class PythonNarDeletionDuringInitIT extends 
NiFiSystemIT {
         return narFiles[0];
     }
 
-    private DocumentedTypeDTO getDocumentedTypeDTO(final String type) throws 
NiFiClientException, IOException {
+    private DocumentedTypeDTO waitForProcessorType() throws 
InterruptedException, NiFiClientException, IOException {
+        waitFor(() -> getProcessorType() != null);
+        return getProcessorType();
+    }
+
+    private DocumentedTypeDTO getProcessorType() throws NiFiClientException, 
IOException {
         final ProcessorTypesEntity allProcessorTypes = 
getNifiClient().getFlowClient().getProcessorTypes();
         if (allProcessorTypes == null || allProcessorTypes.getProcessorTypes() 
== null) {
             return null;
         }
 
         return allProcessorTypes.getProcessorTypes().stream()
-                .filter(processorType -> processorType.getType().equals(type))
+                .filter(processorType -> 
processorType.getType().equals(PYTHON_WRITE_BECH_32_CHARSET))
                 .findAny()
                 .orElse(null);
     }

Reply via email to