summaryrefslogtreecommitdiffstats
path: root/dalvik
diff options
context:
space:
mode:
Diffstat (limited to 'dalvik')
-rw-r--r--dalvik/src/main/java/dalvik/system/BlockGuard.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/dalvik/src/main/java/dalvik/system/BlockGuard.java b/dalvik/src/main/java/dalvik/system/BlockGuard.java
index 50ccb5f..43d3d9a 100644
--- a/dalvik/src/main/java/dalvik/system/BlockGuard.java
+++ b/dalvik/src/main/java/dalvik/system/BlockGuard.java
@@ -78,14 +78,15 @@ public final class BlockGuard {
int getPolicyMask();
}
- public static final class BlockGuardPolicyException extends RuntimeException {
+ public static class BlockGuardPolicyException extends RuntimeException {
// bitmask of DISALLOW_*, PENALTY_*, etc flags
- public final int mPolicyState;
- public final int mPolicyViolated;
+ private final int mPolicyState;
+ private final int mPolicyViolated;
public BlockGuardPolicyException(int policyState, int policyViolated) {
mPolicyState = policyState;
mPolicyViolated = policyViolated;
+ fillInStackTrace();
}
public int getPolicy() {
@@ -96,7 +97,15 @@ public final class BlockGuard {
return mPolicyViolated;
}
- // TODO: toString() and stringify the bitmasks above
+ public String getMessage() {
+ // Note: do not change this format casually. It's
+ // somewhat unfortunately Parceled and passed around
+ // Binder calls and parsed back into an Exception by
+ // Android's StrictMode. This was the least invasive
+ // option and avoided a gross mix of Java Serialization
+ // combined with Parcels.
+ return "policy=" + mPolicyState + " violation=" + mPolicyViolated;
+ }
}
/**