Skip to content

Commit 89cc19f

Browse files
authored
Merge pull request #5179 from hansva/5166
Only show valid transforms to block in blockingtransform, fixes #5166
2 parents 310803a + dcfb790 commit 89cc19f

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

assemblies/debug/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,12 @@
432432
<version>${project.version}</version>
433433
<scope>provided</scope>
434434
</dependency>
435+
<dependency>
436+
<groupId>org.apache.hop</groupId>
437+
<artifactId>hop-transform-blockuntiltransformsfinish</artifactId>
438+
<version>${project.version}</version>
439+
<scope>provided</scope>
440+
</dependency>
435441
<dependency>
436442
<groupId>org.apache.hop</groupId>
437443
<artifactId>hop-transform-calculator</artifactId>

plugins/transforms/blockuntiltransformsfinish/src/main/java/org/apache/hop/pipeline/transforms/blockuntiltransformsfinish/BlockUntilTransformsFinishDialog.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.apache.hop.core.variables.IVariables;
2525
import org.apache.hop.i18n.BaseMessages;
2626
import org.apache.hop.pipeline.PipelineMeta;
27+
import org.apache.hop.pipeline.transform.TransformMeta;
2728
import org.apache.hop.ui.core.PropsUi;
2829
import org.apache.hop.ui.core.dialog.BaseDialog;
2930
import org.apache.hop.ui.core.widget.ColumnInfo;
@@ -168,23 +169,34 @@ public String open() {
168169

169170
private void setTransformNames() {
170171
previousTransforms = pipelineMeta.getTransformNames();
171-
String[] nextTransforms = pipelineMeta.getNextTransformNames(transformMeta);
172+
List<String> nextTransforms = getNextTransforms(new ArrayList<>(), transformMeta);
172173

173174
List<String> entries = new ArrayList<>();
174175
for (String previousTransform : previousTransforms) {
175176
if (!previousTransform.equals(transformName)) {
176-
if (nextTransforms != null && nextTransforms.length > 0) {
177+
if (nextTransforms != null && !nextTransforms.isEmpty()) {
178+
boolean found = false;
177179
for (String nextTransform : nextTransforms) {
178-
if (!nextTransform.equals(previousTransform)) {
179-
entries.add(previousTransform);
180+
if (nextTransform.equals(previousTransform)) {
181+
found = true;
180182
}
181183
}
182-
} else {
183-
entries.add(previousTransform);
184+
if (!found) {
185+
entries.add(previousTransform);
186+
}
184187
}
185188
}
186189
}
187-
previousTransforms = entries.toArray(new String[entries.size()]);
190+
previousTransforms = entries.toArray(new String[0]);
191+
}
192+
193+
private List<String> getNextTransforms(List<String> transformNames, TransformMeta transformMeta) {
194+
List<TransformMeta> nextTransformMeta = pipelineMeta.findNextTransforms(transformMeta);
195+
for (TransformMeta nextTransform : nextTransformMeta) {
196+
transformNames.add(nextTransform.getName());
197+
getNextTransforms(transformNames, nextTransform);
198+
}
199+
return transformNames.stream().distinct().toList();
188200
}
189201

190202
private void get() {

0 commit comments

Comments
 (0)