From d34a6b8b9904f130f7928cea61f7e500094a58b1 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 11 Dec 2008 16:24:01 +0000 Subject: [PATCH 1/1] Allow to refresh a comma separated list of bundles ASSIGNED - bug 73: Detached getRequest crash https://www.spartadn.com/bugzilla/show_bug.cgi?id=73 git-svn-id: https://svn.argeo.org/slc/trunk@2005 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../argeo/slc/detached/admin/OpenSession.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/admin/OpenSession.java b/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/admin/OpenSession.java index 11966a975..2b89a7223 100644 --- a/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/admin/OpenSession.java +++ b/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/admin/OpenSession.java @@ -1,6 +1,9 @@ package org.argeo.slc.detached.admin; +import java.util.ArrayList; +import java.util.List; import java.util.Properties; +import java.util.StringTokenizer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -28,15 +31,23 @@ public class OpenSession implements DetachedAdminCommand { String refreshedBundles = props .getProperty("slc.detached.refreshedBundles"); if (refreshedBundles != null) { + List refreshedBundleNames = new ArrayList(); + StringTokenizer st = new StringTokenizer(refreshedBundles, ","); + while (st.hasMoreTokens()) { + refreshedBundleNames.add(st.nextElement()); + } + Bundle[] bundles = bundleContext.getBundles(); - Bundle bundle = null; + + List bundlesToRefresh = new ArrayList(); for (int i = 0; i < bundles.length; i++) { - if (bundles[i].getSymbolicName().equals(refreshedBundles)) { - bundle = bundles[i]; + if (refreshedBundleNames.contains(bundles[i].getSymbolicName())) { + bundlesToRefresh.add(bundles[i]); } } - if (bundle != null) { + for (int i = 0; i < bundlesToRefresh.size(); i++) { + Bundle bundle = (Bundle) bundlesToRefresh.get(i); try { bundle.stop(); bundle.update(); @@ -46,10 +57,7 @@ public class OpenSession implements DetachedAdminCommand { throw new DetachedException("Could not refresh bundle " + bundle.getSymbolicName(), e); } - } else { - log.warn("Did not find bundle to refresh " + refreshedBundles); } - } return session; -- 2.39.2