From 4fddb75e9b8143e9de4fdca163ff4d88be361036 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Fri, 9 Mar 2012 22:35:55 +0000 Subject: [PATCH] ensure we remove scannerInstance from the queue in a finally block, minor javascript cleanup git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1299081 13f79535-47bb-0310-9956-ffa450edef68 --- .../scanner/DefaultRepositoryScanner.java | 24 ++++++++++++------- .../src/main/webapp/js/archiva/utils.js | 13 ++++++---- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java index b20786947..469321de5 100644 --- a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java +++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java @@ -21,11 +21,11 @@ package org.apache.archiva.repository.scanner; import org.apache.archiva.admin.model.RepositoryAdminException; import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.commons.collections.CollectionUtils; import org.apache.archiva.configuration.FileTypes; import org.apache.archiva.consumers.InvalidRepositoryContentConsumer; import org.apache.archiva.consumers.KnownRepositoryContentConsumer; import org.apache.archiva.consumers.RepositoryContentConsumer; +import org.apache.commons.collections.CollectionUtils; import org.codehaus.plexus.util.DirectoryWalker; import org.springframework.stereotype.Service; @@ -130,17 +130,23 @@ public class DefaultRepositoryScanner inProgressScans.add( scannerInstance ); - dirWalker.addDirectoryWalkListener( scannerInstance ); - - // Execute scan. - dirWalker.scan(); + RepositoryScanStatistics stats; + try + { + dirWalker.addDirectoryWalkListener( scannerInstance ); - RepositoryScanStatistics stats = scannerInstance.getStatistics(); + // Execute scan. + dirWalker.scan(); - stats.setKnownConsumers( gatherIds( knownContentConsumers ) ); - stats.setInvalidConsumers( gatherIds( invalidContentConsumers ) ); + stats = scannerInstance.getStatistics(); - inProgressScans.remove( scannerInstance ); + stats.setKnownConsumers( gatherIds( knownContentConsumers ) ); + stats.setInvalidConsumers( gatherIds( invalidContentConsumers ) ); + } + finally + { + inProgressScans.remove( scannerInstance ); + } return stats; } diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js index 815605f92..5ae75e730 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js @@ -289,7 +289,7 @@ customShowError=function(selector, validator, errorMap, errorList) { $(selector).find("span.help-inline").remove(); for ( var i = 0; errorList[i]; i++ ) { var error = errorList[i]; - var field = $(selector).find("#"+error.element.id);// $.isFunction(selector)? selector.find(fieldSelector ).get(0):$(selector).find(selector); + var field = $(selector).find("#"+error.element.id); field.parents( "div.control-group" ).addClass( "error" ); field.parent().append( "" + error.message + "" ); } @@ -314,10 +314,9 @@ appendTemplateUrl=function(){ Entry=function(key,value){ var self=this; this.key=ko.observable(key); - //this.key.subscribe(function(newValue){self.modified(true)}); this.value=ko.observable(value); - //this.value.subscribe(function(newValue){self.modified(true)}); } + /** * map {"strings":["snapshots","internal"]} to an array * @param data @@ -345,7 +344,10 @@ unifyArray=function(strArray,sorted){ return sorted?res.sort():res; } -// utils +//------------------------------------ +// utils javascript string extensions +//------------------------------------ + String.prototype.endsWith = function(str) { return (this.match(str+"$")==str) } @@ -358,7 +360,10 @@ String.prototype.substringBeforeLast = function(str) { return this.substring(0,this.lastIndexOf(str)); } +//----------------------------------------- // extends jquery tmpl to support var def +//----------------------------------------- + $.extend($.tmpl.tag, { "var": { open: "var $1;" -- 2.39.5