Skip to content

Commit f624cdb

Browse files
authored
Bug Fix: Pipeline not found always showing in pipeline root (#3879)
1 parent 45b68b1 commit f624cdb

File tree

4 files changed

+37
-11
lines changed

4 files changed

+37
-11
lines changed

streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/pipeline/ExtensionsLogProvider.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,13 @@ public Map<String, SpMetricsEntry> getAllMetricsInfos(){
127127
}
128128

129129
private List<String> collectPipelineElementIds(Pipeline pipeline) {
130+
if (pipeline != null){
130131
return Stream.concat(
131132
pipeline.getSepas().stream().map(NamedStreamPipesEntity::getElementId),
132133
pipeline.getActions().stream().map(NamedStreamPipesEntity::getElementId)
133134
).collect(Collectors.toList());
134135
}
136+
return List.of();
137+
}
135138

136139
}

streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PipelineCanvasMetadataStorageImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,6 @@ public PipelineCanvasMetadata getPipelineCanvasMetadataForPipeline(String pipeli
5252
.stream()
5353
.filter(p -> p.getPipelineId().equals(pipelineId))
5454
.findFirst()
55-
.orElseThrow(IllegalArgumentException::new);
55+
.orElse(null);
5656
}
5757
}

ui/src/app/editor/editor.component.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import { SpBreadcrumbService } from '@streampipes/shared-ui';
3232
import { ActivatedRoute } from '@angular/router';
3333
import { forkJoin, of, zip } from 'rxjs';
3434
import { SpPipelineRoutes } from '../pipelines/pipelines.routes';
35-
import { catchError } from 'rxjs/operators';
35+
import { catchError, map } from 'rxjs/operators';
3636
import { EditorService } from './services/editor.service';
3737
import { JsplumbService } from './services/jsplumb.service';
3838

@@ -108,9 +108,17 @@ export class EditorComponent implements OnInit {
108108

109109
loadPipelineToModify(pipelineId: string) {
110110
const pipelineReq = this.pipelineService.getPipelineById(pipelineId);
111+
111112
const canvasMetadataReq = this.pipelineCanvasMetadataService
112113
.getPipelineCanvasMetadata(pipelineId)
113114
.pipe(
115+
map(response => {
116+
if (response === null) {
117+
this.handleCanvasMetadataResponse(undefined);
118+
return undefined;
119+
}
120+
return response;
121+
}),
114122
catchError(() => {
115123
this.handleCanvasMetadataResponse(undefined);
116124
return of(undefined);

ui/src/app/pipeline-details/pipeline-details.component.ts

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import {
3838
import { SpPipelineRoutes } from '../pipelines/pipelines.routes';
3939
import { UserPrivilege } from '../_enums/user-privilege.enum';
4040
import { forkJoin, interval, Observable, of, Subscription } from 'rxjs';
41-
import { catchError, filter, switchMap } from 'rxjs/operators';
41+
import { catchError, filter, map, switchMap } from 'rxjs/operators';
4242
import { PipelinePreviewComponent } from './components/preview/pipeline-preview.component';
4343
import { HttpContext } from '@angular/common/http';
4444
import { NGX_LOADING_BAR_IGNORED } from '@ngx-loading-bar/http-client';
@@ -98,22 +98,37 @@ export class SpPipelineDetailsComponent implements OnInit, OnDestroy {
9898

9999
loadPipeline(): void {
100100
forkJoin([
101-
this.pipelineService.getPipelineById(this.currentPipelineId),
101+
this.pipelineService.getPipelineById(this.currentPipelineId).pipe(
102+
catchError(error => {
103+
if (error.status === 404) {
104+
this.pipelineNotFound = true;
105+
}
106+
return of(null);
107+
}),
108+
),
102109
this.pipelineCanvasService
103110
.getPipelineCanvasMetadata(this.currentPipelineId)
104111
.pipe(
112+
map(response => {
113+
if (response === null) {
114+
this.pipelineAvailable = false;
115+
return new PipelineCanvasMetadata();
116+
}
117+
return response;
118+
}),
105119
catchError(error => {
106120
this.pipelineAvailable = false;
107-
this.pipelineNotFound = true;
108-
109121
return of(new PipelineCanvasMetadata());
110122
}),
111123
),
112-
]).subscribe(res => {
113-
this.pipeline = res[0];
114-
this.pipelineCanvasMetadata = res[1];
115-
this.pipelineAvailable = true;
116-
this.onPipelineAvailable();
124+
]).subscribe(([pipeline, metadata]) => {
125+
this.pipeline = pipeline;
126+
this.pipelineCanvasMetadata = metadata;
127+
128+
if (pipeline && !this.pipelineNotFound) {
129+
this.pipelineAvailable = true;
130+
this.onPipelineAvailable();
131+
}
117132
});
118133
}
119134

0 commit comments

Comments
 (0)