//
// Copyright (c) 2012, Brian Frank
// Licensed under the Academic Free License version 3.0
//
// History:
// 27 Sep 2012 Brian Frank Creation
//
package org.haystack.client;
import org.haystack.HGrid;
import org.haystack.tagval.HStr;
import org.haystack.tagval.HVal;
/**
* CallErrException is thrown then a HClient.call returns a
* HGrid with the err marker tag indicating a server side error.
*/
public class CallErrException extends CallException {
private static final long serialVersionUID = 1L;
/** Constructor with error grid */
public CallErrException(HGrid grid) {
super(msg(grid));
this.grid = grid;
}
private static String msg(HGrid grid) {
HVal dis = grid.meta().get("dis", false);
if (dis instanceof HStr)
return ((HStr) dis).val;
return "server side error";
}
/** Error grid returned by server */
public final HGrid grid;
/** Get the server side stack trace or return null if not available */
public String trace() {
HVal val = grid.meta().get("errTrace", false);
if (val instanceof HStr)
return ((HStr) val).toString();
return null;
}
}