From 578d6bc97df94b2dbadd400a4c28c0a5be1e146e Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 30 Jan 2011 15:06:58 +0100 Subject: [PATCH] fix some potential bugs --- .../java/sonia/scm/plugin/PluginVersion.java | 91 +++++++++++++++++++ .../AbstractSimpleRepositoryHandler.java | 13 --- .../sonia/scm/repository/PermissionUtil.java | 12 +-- .../resources/ResourceHandlerComparator.java | 10 +- .../src/main/java/sonia/scm/util/IOUtil.java | 12 ++- .../java/sonia/scm/web/cgi/CGIRunner.java | 2 - .../sonia/scm/BindingExtensionProcessor.java | 6 +- .../api/rest/resources/PluginResource.java | 1 - .../sonia/scm/group/xml/XmlGroupManager.java | 1 - .../sonia/scm/plugin/AetherPluginHandler.java | 11 +-- .../scm/plugin/OverviewPluginFilter.java | 3 +- 11 files changed, 124 insertions(+), 38 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/plugin/PluginVersion.java b/scm-core/src/main/java/sonia/scm/plugin/PluginVersion.java index 4100aa5f90..78d81e24c7 100644 --- a/scm-core/src/main/java/sonia/scm/plugin/PluginVersion.java +++ b/scm-core/src/main/java/sonia/scm/plugin/PluginVersion.java @@ -176,6 +176,97 @@ public class PluginVersion implements Comparable return result; } + /** + * Method description + * + * + * @param obj + * + * @return + */ + @Override + public boolean equals(Object obj) + { + if (obj == null) + { + return false; + } + + if (getClass() != obj.getClass()) + { + return false; + } + + final PluginVersion other = (PluginVersion) obj; + + if (this.maintenance != other.maintenance) + { + return false; + } + + if (this.major != other.major) + { + return false; + } + + if (this.minor != other.minor) + { + return false; + } + + if ((this.parsedVersion == null) + ? (other.parsedVersion != null) + : !this.parsedVersion.equals(other.parsedVersion)) + { + return false; + } + + if (this.snapshot != other.snapshot) + { + return false; + } + + if (this.type != other.type) + { + return false; + } + + if (this.typeVersion != other.typeVersion) + { + return false; + } + + return true; + } + + /** + * Method description + * + * + * @return + */ + @Override + public int hashCode() + { + int hash = 5; + + hash = 61 * hash + this.maintenance; + hash = 61 * hash + this.major; + hash = 61 * hash + this.minor; + hash = 61 * hash + ((this.parsedVersion != null) + ? this.parsedVersion.hashCode() + : 0); + hash = 61 * hash + (this.snapshot + ? 1 + : 0); + hash = 61 * hash + ((this.type != null) + ? this.type.hashCode() + : 0); + hash = 61 * hash + this.typeVersion; + + return hash; + } + /** * Method description * diff --git a/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java b/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java index 80b2bdf4af..9feabcbc84 100644 --- a/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java @@ -39,7 +39,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sonia.scm.ConfigurationException; -import sonia.scm.SCMContextProvider; import sonia.scm.io.CommandResult; import sonia.scm.io.ExtendedCommand; import sonia.scm.io.FileSystem; @@ -155,18 +154,6 @@ public abstract class AbstractSimpleRepositoryHandler= pt.getValue())) + if (((name != null) && (p.getType().getValue() >= pt.getValue())) + && (name.equals(username) + || (p.isGroupPermission() && groups.contains(p.getName())))) { - if (name.equals(username) - || (p.isGroupPermission() && groups.contains(p.getName()))) - { - result = true; + result = true; - break; - } + break; } } diff --git a/scm-core/src/main/java/sonia/scm/resources/ResourceHandlerComparator.java b/scm-core/src/main/java/sonia/scm/resources/ResourceHandlerComparator.java index d1e30f0780..c818eb6c73 100644 --- a/scm-core/src/main/java/sonia/scm/resources/ResourceHandlerComparator.java +++ b/scm-core/src/main/java/sonia/scm/resources/ResourceHandlerComparator.java @@ -39,15 +39,23 @@ import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ +import java.io.Serializable; + import java.util.Comparator; /** * * @author Sebastian Sdorra */ -public class ResourceHandlerComparator implements Comparator +public class ResourceHandlerComparator + implements Comparator, Serializable { + /** Field description */ + private static final long serialVersionUID = -1760229246326556762L; + + //~--- methods -------------------------------------------------------------- + /** * Method description * diff --git a/scm-core/src/main/java/sonia/scm/util/IOUtil.java b/scm-core/src/main/java/sonia/scm/util/IOUtil.java index 5805d8c9e4..9c9afa55bb 100644 --- a/scm-core/src/main/java/sonia/scm/util/IOUtil.java +++ b/scm-core/src/main/java/sonia/scm/util/IOUtil.java @@ -66,10 +66,10 @@ public class IOUtil { /** Field description */ - public static final String DEFAULT_CHECKPARAMETER = "--version"; + private static final String DEFAULT_CHECKPARAMETER = "--version"; /** Field description */ - public static final String[] DEFAULT_PATH = new String[] + private static final String[] DEFAULT_PATH = new String[] { // default path @@ -336,7 +336,13 @@ public class IOUtil cmdPath = cmd; } } - catch (IOException ex) {} + catch (IOException ex) + { + if (logger.isTraceEnabled()) + { + logger.trace("could not execute command", ex); + } + } if (cmdPath == null) { diff --git a/scm-core/src/main/java/sonia/scm/web/cgi/CGIRunner.java b/scm-core/src/main/java/sonia/scm/web/cgi/CGIRunner.java index 9aabdf7a85..3a113fda7e 100644 --- a/scm-core/src/main/java/sonia/scm/web/cgi/CGIRunner.java +++ b/scm-core/src/main/java/sonia/scm/web/cgi/CGIRunner.java @@ -47,9 +47,7 @@ import sonia.scm.util.Util; import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; import java.io.OutputStream; -import java.io.OutputStreamWriter; import java.util.Enumeration; diff --git a/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java b/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java index 570cdb74d5..e702940776 100644 --- a/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java +++ b/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java @@ -208,7 +208,11 @@ public class BindingExtensionProcessor implements ExtensionProcessor binder.bind(extensionClass); } } - catch (Exception ex) + catch (IllegalAccessException ex) + { + logger.error(ex.getMessage(), ex); + } + catch (InstantiationException ex) { logger.error(ex.getMessage(), ex); } diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/PluginResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/PluginResource.java index 9e9badb373..f021f1b057 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/PluginResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/PluginResource.java @@ -41,7 +41,6 @@ import com.google.inject.Singleton; import sonia.scm.plugin.DefaultPluginManager; import sonia.scm.plugin.OverviewPluginFilter; import sonia.scm.plugin.PluginInformation; -import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ diff --git a/scm-webapp/src/main/java/sonia/scm/group/xml/XmlGroupManager.java b/scm-webapp/src/main/java/sonia/scm/group/xml/XmlGroupManager.java index 9a6a747e12..f83b69a03c 100644 --- a/scm-webapp/src/main/java/sonia/scm/group/xml/XmlGroupManager.java +++ b/scm-webapp/src/main/java/sonia/scm/group/xml/XmlGroupManager.java @@ -60,7 +60,6 @@ import java.io.IOException; import java.util.Collection; import java.util.LinkedList; -import java.util.Set; /** * diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/AetherPluginHandler.java b/scm-webapp/src/main/java/sonia/scm/plugin/AetherPluginHandler.java index fb54acdc3b..a30e5f64ec 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/AetherPluginHandler.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/AetherPluginHandler.java @@ -167,8 +167,6 @@ public class AetherPluginHandler List dependencies = getInstalledDependencies(null); collectDependencies(dependency, dependencies); - - } /** @@ -364,13 +362,10 @@ public class AetherPluginHandler { String id = plugin.getId(); - if ((skipId == null) ||!id.equals(skipId)) + if (Util.isNotEmpty(id) && ((skipId == null) ||!id.equals(skipId))) { - if (Util.isNotEmpty(id)) - { - dependencies.add(new Dependency(new DefaultArtifact(id), - PLUGIN_SCOPE)); - } + dependencies.add(new Dependency(new DefaultArtifact(id), + PLUGIN_SCOPE)); } } } diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginFilter.java b/scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginFilter.java index 7b3aded4c3..bd9c8d9732 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginFilter.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginFilter.java @@ -41,7 +41,8 @@ public class OverviewPluginFilter implements PluginFilter { /** Field description */ - public static OverviewPluginFilter INSTANCE = new OverviewPluginFilter(); + public static final OverviewPluginFilter INSTANCE = + new OverviewPluginFilter(); //~--- methods --------------------------------------------------------------