Browse Source

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
stable-3.4
Shawn Pearce 11 years ago
parent
commit
62b538d891
  1. 8
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

8
org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

@ -138,14 +138,14 @@ public abstract class FS {
factory = (FSFactory) activatorClass.newInstance(); factory = (FSFactory) activatorClass.newInstance();
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
// Java7 module not found // Java7 module not found
factory = new FS.FSFactory();
// Silently ignore failure to find Java7 FS factory // Silently ignore failure to find Java7 FS factory
factory = new FS.FSFactory();
} catch (UnsupportedClassVersionError e) { } catch (UnsupportedClassVersionError e) {
// Java7 module not accessible
factory = new FS.FSFactory(); factory = new FS.FSFactory();
} catch (Exception e) { } catch (InstantiationException e) {
factory = new FS.FSFactory();
} catch (IllegalAccessException e) {
factory = new FS.FSFactory(); factory = new FS.FSFactory();
throw new Error(e);
} }
} }
return factory.detect(cygwinUsed); return factory.detect(cygwinUsed);

Loading…
Cancel
Save