public Map<String, Object> getExecutionResults() {
		Map<String, Object> map = new HashMap<String, Object>();
		int status = -1;
		try {
			status = process.waitFor();
			outReader.join();
			errReader.join();
			StringWriter outWriter = outReader.getResult();
			outResult = outWriter.toString();
			outWriter.close();
			StringWriter errWriter = errReader.getResult();
			errResult = errWriter.toString();
			errWriter.close();
			map.put(KEY_STATUS, (failed ? -1: status));
		} catch (InterruptedException e) {
			map.put(KEY_STATUS, (failed ? -1: status));
		} catch (IOException e) {
			map.put(KEY_STATUS, status);
		}
		map.put(KEY_OUT_RESULT, outResult);
		map.put(KEY_ERR_RESULT, errResult);
		if (t != null) {
			t.cancel();
		}
		return map;
	}