summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2014-06-24 18:37:09 +0200
committerBenoit Lamarche <benoitlamarche@google.com>2014-07-08 17:45:19 +0200
commite9b9b4097dec56289bcc3f2a55302d238ac09c09 (patch)
tree5ed0c793e600fd2619bf552a2f96b6c44586a863
parentaa19e038ff0f970540bb88897eac276f77afb890 (diff)
downloadtoolchain_jack-e9b9b4097dec56289bcc3f2a55302d238ac09c09.zip
toolchain_jack-e9b9b4097dec56289bcc3f2a55302d238ac09c09.tar.gz
toolchain_jack-e9b9b4097dec56289bcc3f2a55302d238ac09c09.tar.bz2
Use location in JackLoadingException
Change-Id: I5ef01543539e8777692cca8cb53ecfc6f59ce953
-rw-r--r--jack/src/com/android/jack/jayce/JayceClassOrInterfaceLoader.java8
-rw-r--r--jack/src/com/android/jack/jayce/JayceMethodLoader.java9
-rw-r--r--jack/src/com/android/jack/jayce/JaycePackageLoader.java7
-rw-r--r--jack/src/com/android/jack/load/JackLoadingException.java19
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;
}
}