From 62b538d8917e7b68407cda70f217606904bf75a2 Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Tue, 11 Mar 2014 14:57:27 -0700 Subject: [PATCH] Cleanup catch Exception when making Java7FSFactory Catching Exception and rethrowing as Error when the Java7 factory was not available threw an unexpected error to the caller, but then confused things by still setting the factory to the default Java 5 version. A second call to FS.detect(Boolean) would succeed. Do not throw to the caller. Instead always default to the Java5 factory if the Java7 one is not loading. Change-Id: I6e9edb257b404d213ff08c44560fdb1672a5c80b --- org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java index dcece6289..0c63b190f 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java @@ -138,14 +138,14 @@ public abstract class FS { factory = (FSFactory) activatorClass.newInstance(); } catch (ClassNotFoundException e) { // Java7 module not found - factory = new FS.FSFactory(); // Silently ignore failure to find Java7 FS factory + factory = new FS.FSFactory(); } catch (UnsupportedClassVersionError e) { - // Java7 module not accessible factory = new FS.FSFactory(); - } catch (Exception e) { + } catch (InstantiationException e) { + factory = new FS.FSFactory(); + } catch (IllegalAccessException e) { factory = new FS.FSFactory(); - throw new Error(e); } } return factory.detect(cygwinUsed);