private IStatus loadBundleData()

in plugins/org.apache.karaf.eik.workbench/src/main/java/org/apache/karaf/eik/workbench/internal/KarafRuntimeDataProvider.java [206:249]


    private IStatus loadBundleData(final IProgressMonitor monitor) {
        monitor.subTask("OSGi Bundles");

        if (monitor.isCanceled()) {
            return Status.OK_STATUS;
        }

        if (!mbeanProvider.isOpen()) {
            return new Status(IStatus.WARNING, KarafWorkbenchActivator.PLUGIN_ID, "Connection to MBean server has been closed");
        }

        try {
            final TabularData rawBundleData = mbeanProvider.getMBean(BUNDLE_STATE, BundleStateMBean.class).listBundles();

            synchronized (bundleSet) {
                bundleSet.clear();
                idToBundleMap.clear();
            }

            for (final Object o : rawBundleData.values()) {
                final CompositeData composite = (CompositeData) o;
                final BundleItem bundle = new BundleItem(composite);

                synchronized (bundleSet) {
                    bundleSet.add(bundle);
                    idToBundleMap.put(bundle.getIdentifier(), bundle);
                }

                monitor.worked(1);

                if (monitor.isCanceled()) {
                    break;
                }

            }

        } catch (final IOException e) {
            return new Status(IStatus.ERROR, KarafWorkbenchActivator.PLUGIN_ID, "Unable to connect to MBeanServer", e);
        } catch (final Exception e) {
            KarafWorkbenchActivator.getLogger().warn("Unable to update OSGi Bundles", e);
        }

        return Status.OK_STATUS;
    }