From 47225a420ce36d00764e55d991a3a89e61a33b2b Mon Sep 17 00:00:00 2001 From: Jan Willem Janssen Date: Sun, 18 Jan 2015 19:54:17 +0000 Subject: [PATCH] Solved a small logical error in the stop command: - only if the stopUnaffectedBundles isn't set, we can omit stopping bundles. If it *is* set, we should *always* stop all bundles. git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1652840 13f79535-47bb-0310-9956-ffa450edef68 --- .../deploymentadmin/spi/StopBundleCommand.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/spi/StopBundleCommand.java b/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/spi/StopBundleCommand.java index 13bfeda417e..1991ce57863 100644 --- a/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/spi/StopBundleCommand.java +++ b/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/spi/StopBundleCommand.java @@ -88,17 +88,19 @@ protected void doExecute(DeploymentSessionImpl session) throws Exception { * deployment package. Returns false otherwise. */ private boolean omitBundleStop(DeploymentSessionImpl session, String symbolicName) { - boolean stopUnaffectedBundle = session.getConfiguration().isStopUnaffectedBundles(); + boolean stopUnaffectedBundles = session.getConfiguration().isStopUnaffectedBundles(); + if (stopUnaffectedBundles) { + // Default behavior: stop all bundles (see spec)... + return false; + } - boolean result = stopUnaffectedBundle; BundleInfoImpl sourceBundleInfo = session.getSourceAbstractDeploymentPackage().getBundleInfoByName(symbolicName); BundleInfoImpl targetBundleInfo = session.getTargetAbstractDeploymentPackage().getBundleInfoByName(symbolicName); + boolean fixPackageMissing = sourceBundleInfo != null && sourceBundleInfo.isMissing(); boolean sameVersion = (targetBundleInfo != null && sourceBundleInfo != null && targetBundleInfo.getVersion().equals(sourceBundleInfo.getVersion())); - if (fixPackageMissing || sameVersion) { - result = true; - } - return result; + + return (fixPackageMissing || sameVersion); } private static class StartBundleRunnable extends AbstractAction {