From e33ef9c0ee7fca2d0762149686ddedd35ab48cfe Mon Sep 17 00:00:00 2001 From: John Pederzolli Date: Mon, 21 Sep 2015 13:26:05 -0700 Subject: [PATCH 1/2] JENKINS-30577 : performance enhancement when determining view permissions --- .../plugin/buildpipeline/BuildPipelineView.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/au/com/centrumsystems/hudson/plugin/buildpipeline/BuildPipelineView.java b/src/main/java/au/com/centrumsystems/hudson/plugin/buildpipeline/BuildPipelineView.java index 6704aad6..4bf11d43 100644 --- a/src/main/java/au/com/centrumsystems/hudson/plugin/buildpipeline/BuildPipelineView.java +++ b/src/main/java/au/com/centrumsystems/hudson/plugin/buildpipeline/BuildPipelineView.java @@ -870,8 +870,7 @@ public boolean hasPermission(final Permission p) { boolean display = true; //tester la liste vide seulement en lecture if (READ.name.equals(p.name)) { - final Collection items = this.getItems(); - if (items == null || items.isEmpty()) { + if (isEmpty()) { display = false; } } else { @@ -880,5 +879,16 @@ public boolean hasPermission(final Permission p) { } return display; - } + } + + /** + * determine if this view is empty + * @return true if this view contains zero items + */ + private boolean isEmpty() { + if (noOfDisplayedBuilds == null || gridBuilder == null) { + return false; + } + return gridBuilder.build(this).isEmpty(); + } } From e5c6ae4c387fa9c1b766bd1e50853bdb07c89919 Mon Sep 17 00:00:00 2001 From: John Pederzolli Date: Tue, 22 Sep 2015 11:38:52 -0700 Subject: [PATCH 2/2] fix null handling --- .../hudson/plugin/buildpipeline/BuildPipelineView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/au/com/centrumsystems/hudson/plugin/buildpipeline/BuildPipelineView.java b/src/main/java/au/com/centrumsystems/hudson/plugin/buildpipeline/BuildPipelineView.java index 4bf11d43..eaf65053 100644 --- a/src/main/java/au/com/centrumsystems/hudson/plugin/buildpipeline/BuildPipelineView.java +++ b/src/main/java/au/com/centrumsystems/hudson/plugin/buildpipeline/BuildPipelineView.java @@ -887,7 +887,7 @@ public boolean hasPermission(final Permission p) { */ private boolean isEmpty() { if (noOfDisplayedBuilds == null || gridBuilder == null) { - return false; + return true; } return gridBuilder.build(this).isEmpty(); }