Bug 500402 - [CSS] CSS import silently fails

The issue is solved by detecting archive URLs, and avoid working with
paths inside archives. Archives URLs contain exclamation mark.

Change-Id: I06cadc3b9b0719d25a17a3a513f911fe19547f6c
Signed-off-by: Patrik Suzzi <psuzzi@gmail.com>
diff --git a/bundles/org.eclipse.e4.ui.css.core/src/org/eclipse/e4/ui/css/core/impl/engine/AbstractCSSEngine.java b/bundles/org.eclipse.e4.ui.css.core/src/org/eclipse/e4/ui/css/core/impl/engine/AbstractCSSEngine.java
index a771a40..5371446 100644
--- a/bundles/org.eclipse.e4.ui.css.core/src/org/eclipse/e4/ui/css/core/impl/engine/AbstractCSSEngine.java
+++ b/bundles/org.eclipse.e4.ui.css.core/src/org/eclipse/e4/ui/css/core/impl/engine/AbstractCSSEngine.java
@@ -13,6 +13,7 @@
  *     Lars Vogel <Lars.Vogel@gmail.com> - Bug 428715
  *     Brian de Alwis (MTI) - Performance tweaks (Bug 430829)
  *     Dirk Fauth <dirk.fauth@googlemail.com> - Bug 479896
+ *     Patrik Suzzi <psuzzi@gmail.com> - Bug 500402
  *******************************************************************************/
 package org.eclipse.e4.ui.css.core.impl.engine;
 
@@ -94,6 +95,11 @@
 public abstract class AbstractCSSEngine implements CSSEngine {
 
 	/**
+	 * Archives are deliberately identified by exclamation mark in URLs
+	 */
+	private static final String ARCHIVE_IDENTIFIER = "!";
+
+	/**
 	 * Default {@link IResourcesLocatorManager} used to get InputStream, Reader
 	 * resource like Image.
 	 */
@@ -193,11 +199,11 @@
 			} else {
 				Path p = new Path(source.getURI());
 				IPath trim = p.removeLastSegments(1);
-
+				boolean isArchive = source.getURI().contains(ARCHIVE_IDENTIFIER);
 				url = FileLocator.resolve(new URL(trim.addTrailingSeparator()
 						.toString() + ((CSSImportRule) rule).getHref()));
 				File testFile = new File(url.getFile());
-				if (!testFile.exists()) {
+				if (!isArchive&&!testFile.exists()) {
 					// look in platform default
 					String path = getResourcesLocatorManager().resolve(
 							(importRule).getHref());