IDEA-COMMUNITY-CR-814 (cleanup; better logging)
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Thu, 16 Oct 2014 16:30:57 +0000 (18:30 +0200)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Thu, 16 Oct 2014 16:30:57 +0000 (18:30 +0200)
platform/util/src/com/intellij/util/lang/ClassPath.java
platform/util/src/com/intellij/util/lang/JarLoader.java

index 928ddb991c4d6ade955abc50f727dcc9b406fcd0..e47f9e0f42b92b210db13ca3ad25ccc17952fba0 100644 (file)
@@ -16,6 +16,7 @@
 package com.intellij.util.lang;
 
 import com.intellij.openapi.application.PathManager;
+import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.util.ShutDownTracker;
 import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.util.text.StringUtil;
@@ -136,7 +137,8 @@ public class ClassPath {
         loader = getLoader(url, myLoaders.size());
         if (loader == null) continue;
       }
-      catch (IOException ioexception) {
+      catch (IOException e) {
+        Logger.getInstance(ClassPath.class).debug("url: " + url, e);
         continue;
       }
 
@@ -161,9 +163,8 @@ public class ClassPath {
       try {
         path = url.toURI().getSchemeSpecificPart();
       }
-      catch (URISyntaxException thisShouldNotHappen) {
-        //noinspection CallToPrintStackTrace
-        thisShouldNotHappen.printStackTrace();
+      catch (URISyntaxException e) {
+        Logger.getInstance(ClassPath.class).error("url: " + url, e);
         path = url.getFile();
       }
     }
@@ -175,22 +176,14 @@ public class ClassPath {
         loader = new FileLoader(url, index);
       }
       else if (file.isFile()) {
-        JarLoader jarLoader = new JarLoader(url, myCanLockJars, index);
-        if (jarLoader.checkArchive(myPreloadJarContents)) {
-          loader = jarLoader;
-        }
+        loader = new JarLoader(url, myCanLockJars, index, myPreloadJarContents);
       }
     }
 
     if (loader != null && myCanUseCache) {
-      try {
-        ClasspathCache.LoaderData loaderData = new ClasspathCache.LoaderData(loader);
-        loader.buildCache(loaderData);
-        myCache.applyLoaderData(loaderData);
-      }
-      catch (Throwable e) {
-        // TODO: log can't create loader
-      }
+      ClasspathCache.LoaderData loaderData = new ClasspathCache.LoaderData(loader);
+      loader.buildCache(loaderData);
+      myCache.applyLoaderData(loaderData);
     }
 
     return loader;
index 518c98046fafd951fd4039c73def8b53f7d346c8..30385274be5579b26decd8b287b85702480ea764 100644 (file)
@@ -34,10 +34,23 @@ class JarLoader extends Loader {
   private final boolean myCanLockJar;
   private SoftReference<JarMemoryLoader> myMemoryLoader;
 
-  JarLoader(URL url, boolean canLockJar, int index) throws IOException {
+  JarLoader(URL url, boolean canLockJar, int index, boolean preloadJarContents) throws IOException {
     super(new URL(URLUtil.JAR_PROTOCOL, "", -1, url + "!/"), index);
     myURL = url;
     myCanLockJar = canLockJar;
+
+    ZipFile zipFile = acquireZipFile();
+    try {
+      if (preloadJarContents) {
+        JarMemoryLoader loader = JarMemoryLoader.load(zipFile, getBaseURL());
+        if (loader != null) {
+          myMemoryLoader = new SoftReference<JarMemoryLoader>(loader);
+        }
+      }
+    }
+    finally {
+      releaseZipFile(zipFile);
+    }
   }
 
   private ZipFile acquireZipFile() throws IOException {
@@ -55,38 +68,6 @@ class JarLoader extends Loader {
     }
   }
 
-  boolean checkArchive(boolean preloadContents) {
-    ZipFile zipFile;
-
-    try {
-      zipFile = acquireZipFile();
-    }
-    catch (Exception e) {
-      Logger.getInstance(JarLoader.class).debug("url: " + myURL, e);
-      return false;
-    }
-
-    try {
-      try {
-        if (preloadContents) {
-          JarMemoryLoader loader = JarMemoryLoader.load(zipFile, getBaseURL());
-          if (loader != null) {
-            myMemoryLoader = new SoftReference<JarMemoryLoader>(loader);
-          }
-        }
-      }
-      finally {
-        releaseZipFile(zipFile);
-      }
-    }
-    catch (Exception e) {
-      Logger.getInstance(JarLoader.class).error(e);
-      return false;
-    }
-
-    return true;
-  }
-
   @Override
   void buildCache(ClasspathCache.LoaderData loaderData) throws IOException {
     ZipFile zipFile = acquireZipFile();