diff options
author | Benoit Lamarche <benoitlamarche@google.com> | 2014-06-24 18:37:09 +0200 |
---|---|---|
committer | Benoit Lamarche <benoitlamarche@google.com> | 2014-07-08 17:45:19 +0200 |
commit | e9b9b4097dec56289bcc3f2a55302d238ac09c09 (patch) | |
tree | 5ed0c793e600fd2619bf552a2f96b6c44586a863 | |
parent | aa19e038ff0f970540bb88897eac276f77afb890 (diff) | |
download | toolchain_jack-e9b9b4097dec56289bcc3f2a55302d238ac09c09.zip toolchain_jack-e9b9b4097dec56289bcc3f2a55302d238ac09c09.tar.gz toolchain_jack-e9b9b4097dec56289bcc3f2a55302d238ac09c09.tar.bz2 |
Use location in JackLoadingException
Change-Id: I5ef01543539e8777692cca8cb53ecfc6f59ce953
4 files changed, 21 insertions, 22 deletions
diff --git a/jack/src/com/android/jack/jayce/JayceClassOrInterfaceLoader.java b/jack/src/com/android/jack/jayce/JayceClassOrInterfaceLoader.java index d69dcdb..347ef5d 100644 --- a/jack/src/com/android/jack/jayce/JayceClassOrInterfaceLoader.java +++ b/jack/src/com/android/jack/jayce/JayceClassOrInterfaceLoader.java @@ -188,19 +188,17 @@ public class JayceClassOrInterfaceLoader extends AbtractClassOrInterfaceLoader { if (!structureLoaded) { structureLoaded = true; DeclaredTypeNode type; - String errorMessage = - "Failed to load structure of '" + Jack.getUserFriendlyFormatter().getName(loaded) + "'"; try { type = getNNode(NodeLevel.STRUCTURE); } catch (IOException e) { - throw new JackLoadingException(errorMessage, e); + throw new JackLoadingException(getLocation(), e); } catch (JackFileException e) { - throw new JackLoadingException(errorMessage, e); + throw new JackLoadingException(getLocation(), e); } try { type.updateToStructure(loaded, this); } catch (JLookupException e) { - throw new JackLoadingException(errorMessage, e); + throw new JackLoadingException(getLocation(), e); } ParentSetter parentSetter = new ParentSetter(); parentSetter.accept(loaded); diff --git a/jack/src/com/android/jack/jayce/JayceMethodLoader.java b/jack/src/com/android/jack/jayce/JayceMethodLoader.java index 74526bc..4abd810 100644 --- a/jack/src/com/android/jack/jayce/JayceMethodLoader.java +++ b/jack/src/com/android/jack/jayce/JayceMethodLoader.java @@ -16,7 +16,6 @@ package com.android.jack.jayce; -import com.android.jack.Jack; import com.android.jack.JackFileException; import com.android.jack.ir.ast.JMethod; import com.android.jack.ir.ast.JNode; @@ -63,20 +62,18 @@ public class JayceMethodLoader extends AbstractMethodLoader { return; } MethodNode methodNode; - String errorMessage = - "Failed to load body of method '" + Jack.getUserFriendlyFormatter().getName(loaded) + "'"; try { methodNode = getNNode(loaded); } catch (JackFileException e) { - throw new JackLoadingException(errorMessage, e); + throw new JackLoadingException(getLocation(loaded), e); } catch (IOException e) { - throw new JackLoadingException(errorMessage, e); + throw new JackLoadingException(getLocation(loaded), e); } JNode body; try { body = methodNode.loadBody(loaded); } catch (JLookupException e) { - throw new JackLoadingException(errorMessage, e); + throw new JackLoadingException(getLocation(loaded), e); } if (body != null) { body.updateParents(loaded); diff --git a/jack/src/com/android/jack/jayce/JaycePackageLoader.java b/jack/src/com/android/jack/jayce/JaycePackageLoader.java index ab3eb5d..2495910 100644 --- a/jack/src/com/android/jack/jayce/JaycePackageLoader.java +++ b/jack/src/com/android/jack/jayce/JaycePackageLoader.java @@ -16,7 +16,6 @@ package com.android.jack.jayce; -import com.android.jack.Jack; import com.android.jack.JackFileException; import com.android.jack.backend.jayce.JayceFileImporter; import com.android.jack.ir.ast.JDefinedClassOrInterface; @@ -61,17 +60,15 @@ public class JaycePackageLoader implements PackageLoader { @Nonnull public JDefinedClassOrInterface loadClassOrInterface( @Nonnull JPackage loading, @Nonnull String simpleName) { - String errorMessage = "Failed to load class '" - + Jack.getUserFriendlyFormatter().getName(loading, simpleName) + "'"; for (VElement sub : dir.list()) { if (sub instanceof InputVFile && isJackFileNameOf(sub.getName(), simpleName)) { try { return new JayceClassOrInterfaceLoader((InputVFile) sub, lookup, defaultLoadLevel) .loadClassOrInterface(loading, simpleName); } catch (IOException e) { - throw new JackLoadingException(errorMessage , e); + throw new JackLoadingException(sub.getLocation(), e); } catch (JackFileException e) { - throw new JackLoadingException(errorMessage , e); + throw new JackLoadingException(sub.getLocation() , e); } } } diff --git a/jack/src/com/android/jack/load/JackLoadingException.java b/jack/src/com/android/jack/load/JackLoadingException.java index 38b3ec3..53d1cda 100644 --- a/jack/src/com/android/jack/load/JackLoadingException.java +++ b/jack/src/com/android/jack/load/JackLoadingException.java @@ -16,6 +16,8 @@ package com.android.jack.load; +import com.android.sched.util.location.Location; + import javax.annotation.Nonnull; /** @@ -25,17 +27,22 @@ public class JackLoadingException extends RuntimeException { private static final long serialVersionUID = 1L; - public JackLoadingException(@Nonnull Exception cause) { - super(cause); - } + @Nonnull + private final Location location; - public JackLoadingException(@Nonnull String message, @Nonnull Exception cause) { - super(message, cause); + public JackLoadingException(@Nonnull Location location, @Nonnull Exception cause) { + super(cause); + this.location = location; } @Override @Nonnull public String getMessage() { - return super.getMessage() + ": " + getCause().getMessage(); + return "Failed to load " + location.getDescription() + ": " + getCause().getMessage(); + } + + @Nonnull + public Location getLocation() { + return location; } } |