public class res {
	private ires res;
	public res(ires res) {
		this.res = res;
	}

	public void dotest(String msg, int open, int write, int close) {
		try {
			System.out.println(msg);
			FileOutputStream.throwOnOpen = open;
			FileOutputStream.throwOnWrite = write;
			FileOutputStream.throwOnClose = close;
			res.write("foo.txt", "output message");
		} catch (Exception ex) {
		}
		FileOutputStream.numOpens = 0;
		FileOutputStream.numWrites = 0;
		FileOutputStream.numCloses = 0;
		System.gc();
		System.runFinalization();
		System.out.println();
		System.out.flush();
	}

	public static void dotest(ires res) {
		res r = new res(res);
		r.dotest("Exception on open 1",  1, 0, 0);
		r.dotest("Exception on open 2",  2, 0, 0);
		r.dotest("Exception on write 1", 0, 1, 0);
		r.dotest("Exception on write 2", 0, 2, 0);
		r.dotest("Exception on close 1", 0, 0, 1);
		r.dotest("Exception on close 2", 0, 0, 2);
	}
}
