Bug 964854 - Reveal cause of exception. r=rnewman

This fixes an oversight from Bug 1042929, which neglected to push the
underlying exception cause through to the final exception.
This commit is contained in:
Nick Alexander 2015-06-19 10:50:34 -07:00
parent f94ed4ffb8
commit ef8b00f816
2 changed files with 32 additions and 25 deletions

View File

@ -54,7 +54,7 @@ public class ExtendedJSONObject {
return getJSONParser().parse(in);
} catch (Error e) {
// Don't be stupid, org.json.simple. Bug 1042929.
throw new ParseException(ParseException.ERROR_UNEXPECTED_EXCEPTION);
throw new ParseException(ParseException.ERROR_UNEXPECTED_EXCEPTION, e);
}
}
@ -72,7 +72,7 @@ public class ExtendedJSONObject {
return getJSONParser().parse(input);
} catch (Error e) {
// Don't be stupid, org.json.simple. Bug 1042929.
throw new ParseException(ParseException.ERROR_UNEXPECTED_EXCEPTION);
throw new ParseException(ParseException.ERROR_UNEXPECTED_EXCEPTION, e);
}
}
@ -314,6 +314,7 @@ public class ExtendedJSONObject {
return this.object.toJSONString();
}
@Override
public String toString() {
return this.object.toString();
}

View File

@ -17,8 +17,8 @@ public class ParseException extends Exception {
private Object unexpectedObject;
private int position;
public ParseException(int errorType){
this(-1, errorType, null);
public ParseException(int errorType, Throwable throwable) {
this(-1, errorType, null, throwable);
}
public ParseException(int errorType, Object unexpectedObject) {
@ -26,6 +26,11 @@ public class ParseException extends Exception {
}
public ParseException(int position, int errorType, Object unexpectedObject) {
this(-1, errorType, unexpectedObject, null);
}
public ParseException(int position, int errorType, Object unexpectedObject, Throwable throwable) {
super(throwable);
this.position = position;
this.errorType = errorType;
this.unexpectedObject = unexpectedObject;
@ -68,6 +73,7 @@ public class ParseException extends Exception {
this.unexpectedObject = unexpectedObject;
}
@Override
public String toString(){
StringBuffer sb = new StringBuffer();