code: @SuppressWarnings("static-access")
  	public static String doErrorJSON(HttpServletRequest request,HttpServletResponse response, 
  			IMSJSONRequest json, String message, Exception e) 
  		throws java.io.IOException 
  	{
  		response.setContentType(APPLICATION_JSON);
  		Map<String, Object> jsonResponse = new TreeMap<String, Object>();
  
  		Map<String, String> status = null;
  		if ( json == null ) {
  			status = IMSJSONRequest.getStatusFailure(message);
  		} else {
  			status = json.getStatusFailure(message);
  			if ( json.base_string != null ) {
  				jsonResponse.put("base_string", json.base_string);
  			}
  		}
  		jsonResponse.put(IMSJSONRequest.STATUS, status);
  		if ( e != null ) {
  			jsonResponse.put("exception", e.getLocalizedMessage());
  			try {
  				StringWriter sw = new StringWriter();
  				PrintWriter pw = new PrintWriter(sw, true);
  				e.printStackTrace(pw);
  				pw.flush();
  				sw.flush();
  				jsonResponse.put("traceback", sw.toString() );
  			} catch ( Exception f ) {
  				jsonResponse.put("traceback", f.getLocalizedMessage());
  			}
  		}
  		String jsonText = JSONValue.toJSONString(jsonResponse);
  		PrintWriter out = response.getWriter();
  		out.println(jsonText);
  		return jsonText;
  	}
docs: /* IMS JSON version of Errors - does the complet request - returns the JSON in case
  the code above us wants to log it.