[264251] ClasspathDependencyValidator incorrectly flagging warnings on RARs
diff --git a/plugins/org.eclipse.jst.j2ee/classpathdep/org/eclipse/jst/j2ee/classpathdep/ClasspathDependencyUtil.java b/plugins/org.eclipse.jst.j2ee/classpathdep/org/eclipse/jst/j2ee/classpathdep/ClasspathDependencyUtil.java
index d03fc26..8f93f64 100644
--- a/plugins/org.eclipse.jst.j2ee/classpathdep/org/eclipse/jst/j2ee/classpathdep/ClasspathDependencyUtil.java
+++ b/plugins/org.eclipse.jst.j2ee/classpathdep/org/eclipse/jst/j2ee/classpathdep/ClasspathDependencyUtil.java
@@ -110,6 +110,7 @@
 		}
 		final IProject project = javaProject.getProject();
 		final boolean isWebApp = JavaEEProjectUtilities.isDynamicWebProject(project);
+		final boolean isRAR = JavaEEProjectUtilities.isJCAProject(project);
 		final ClasspathDependencyValidatorData data = new ClasspathDependencyValidatorData(project);
 		final IClasspathEntry[] entries = javaProject.getRawClasspath();
         for (int i = 0; i < entries.length; i++) {
@@ -147,10 +148,19 @@
 									break;
 								}
 							}
-							if (foundEntry) {
-								continue;
+						} else if(isRAR){
+							IContainer [] rootFolders = component.getRootFolder().getUnderlyingFolders();
+							for(IContainer root: rootFolders){
+								IPath rootPath = root.getFullPath();
+								if(rootPath.isPrefixOf(entry.getPath())){
+									foundEntry = true;
+									break;
+								}
 							}
 						}
+						if (foundEntry) {
+							continue;
+						}
 						// checks for manifest references
 						List manifestRefs = J2EEModuleVirtualComponent.getManifestReferences(component, null);
 						if(manifestRefs != null){
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/ClassPathSelection.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/ClassPathSelection.java
index 01b8604..031fa87 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/ClassPathSelection.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/ClassPathSelection.java
@@ -42,6 +42,7 @@
 import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jst.j2ee.classpathdep.ClasspathDependencyUtil;
 import org.eclipse.jst.j2ee.classpathdep.IClasspathDependencyConstants;
+import org.eclipse.jst.j2ee.classpathdep.IClasspathDependencyConstants.DependencyAttributeType;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonArchiveResourceHandler;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.Container;
@@ -308,7 +309,7 @@
 			if (project.hasNature(JavaCore.NATURE_ID)) {
 				final IJavaProject javaProject = JavaCore.create(project);
 				final boolean isWebApp = J2EEProjectUtilities.isDynamicWebProject(project);
-				final Map taggedEntries = ClasspathDependencyUtil.getRawComponentClasspathDependencies(javaProject);
+				final Map taggedEntries = ClasspathDependencyUtil.getRawComponentClasspathDependencies(javaProject, DependencyAttributeType.CLASSPATH_COMPONENT_DEPENDENCY);
 				
 				Iterator i = taggedEntries.keySet().iterator();
 				while (i.hasNext()) {