commit | 6c178c339df4c827ccb6b790a988e7408be795d7 | [log] [tgz] |
---|---|---|
author | John Ross <jwross@us.ibm.com> | Fri Aug 24 07:31:14 2012 -0500 |
committer | Thomas Watson <tjwatson@us.ibm.com> | Fri Aug 24 07:31:14 2012 -0500 |
tree | 881fa6599ed4c9eec3009f23eee0749d6ce1aa26 | |
parent | f7ee0e498eaa3e20e8a5079dd32a5ad89c77c6ee [diff] |
Bug 377174 - IllegalStateException when using BundleLoader's addDynamicImportPackage method
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java index 73ca260..d8d607f 100644 --- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java +++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java
@@ -682,7 +682,6 @@ newImports[newImports.length - 1] = result; lazyData.resolvedImports = newImports; } - setLazyLoaded(false); } void addDynamicImportPackages(ImportPackageSpecification[] dynamicImport) { @@ -703,7 +702,6 @@ currentData.addedDynamicImports.add(addImport); } } - setLazyLoaded(false); } private boolean equalImports(ImportPackageSpecification addImport, ImportPackageSpecification currentImport) {
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateImpl.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateImpl.java index 7613216..75d62d8 100644 --- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateImpl.java +++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateImpl.java
@@ -1053,7 +1053,10 @@ } public void addDynamicImportPackages(BundleDescription importingBundle, ImportPackageSpecification[] dynamicImports) { - ((BundleDescriptionImpl) importingBundle).addDynamicImportPackages(dynamicImports); + synchronized (this.monitor) { + ((BundleDescriptionImpl) importingBundle).addDynamicImportPackages(dynamicImports); + setDynamicCacheChanged(true); + } } void setReader(StateReader reader) {