added disposal to SchemaLibrary
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java
index 537ff73..92e72ce 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java
@@ -1198,6 +1198,7 @@
 		this.contextModelSynchronizer.stop();
 		this.updateSynchronizer.stop();
 		this.updateSynchronizer.removeListener(this.updateSynchronizerListener);
+		this.schemaLibrary.dispose();
 		// the XML resources are held indefinitely by the WTP translator framework,
 		// so we better remove our listener or the JAXB project will not be GCed
 		for (JaxbFile jaxbFile : this.getJaxbFiles()) {
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SchemaLibraryImpl.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SchemaLibraryImpl.java
index 7fb233e..66c88c7 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SchemaLibraryImpl.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/SchemaLibraryImpl.java
@@ -114,6 +114,18 @@
 		}
 	}
 	
+	void dispose() {
+		for (SchemaEntryImpl entry : this.schemaEntries) {
+			entry.dispose();
+		}
+		for (SchemaEntryImpl entry : this.impliedEntries.values()) {
+			entry.dispose();
+		}
+		
+		this.schemaEntries.clear();
+		this.impliedEntries.clear();
+	}
+	
 	public void validate(List<IMessage> messages) {
 		Bag<String> namespaces = new HashBag<String>();