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) {