245426 EAR Libraries classpath container missing entries
diff --git a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathContainer.java b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathContainer.java
index 5622dec..49d1f37 100644
--- a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathContainer.java
+++ b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathContainer.java
@@ -43,6 +43,7 @@
 import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
 import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
 import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 import org.eclipse.wst.common.componentcore.internal.builder.DependencyGraphManager;
 import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
@@ -72,6 +73,8 @@
 	private IClasspathEntry[] entries = new IClasspathEntry[0];
 	private static Map keys = new Hashtable();
 	private static Map previousSelves = new Hashtable();
+	private static int MAX_RETRIES = 10;
+	private static Map retries = new Hashtable();
 	
 	private class LastUpdate {
 		private long dotClasspathModificationStamp = -1;
@@ -153,6 +156,22 @@
 		J2EEComponentClasspathContainer firstPreviousSelf = (J2EEComponentClasspathContainer)previousSelves.get(key);
 		if (component == null) {
 			return;
+		} 
+		
+		if(!javaProject.getProject().getFile(StructureEdit.MODULE_META_FILE_NAME).exists()){
+			Integer retryCount = (Integer)retries.get(key);
+			if(retryCount == null){
+				retryCount = new Integer(1);
+			} else if(retryCount.intValue() > MAX_RETRIES){
+				return;
+			} else {
+				retryCount = new Integer(retryCount.intValue() + 1);
+			}
+			retries.put(key, retryCount);
+			J2EEComponentClasspathUpdater.getInstance().queueUpdate(javaProject.getProject());
+			return;
+		} else {
+			retries.remove(key);
 		}
 		
 		IFile dotClasspath = javaProject.getProject().getFile(ProjectUtilities.DOT_CLASSPATH);