import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

import com.caucho.hessian.io.Hessian2Input;
import com.caucho.hessian.io.Hessian2Output;

public class HessianExceptionTest
{
	public static void main(final String[] args) throws Exception
	{
		MyLocalClass e = new MyLocalClass(new ArrayList());

		// serialize
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		Hessian2Output hout = new Hessian2Output(baos);
		hout.writeObject(e);
		hout.close();
		// deserialize
		Hessian2Input hin = new Hessian2Input(new ByteArrayInputStream(baos.toByteArray()));
		MyLocalClass e1 = (MyLocalClass) hin.readObject();

		System.out.println("finished");

	}

	static class MyLocalClass implements Serializable
	{
		private static final long serialVersionUID = -3810020492063946708L;

		private Collection errors = null;

		/**
		 * Constructor containing all mandatory fields.
		 * 
		 * @param msg
		 *            the message to use.
		 * @param errors
		 *            errors list.
		 */
		public MyLocalClass(final Collection errors)
		{
			super();
			this.errors = new HashSet(errors);
		}
	}
}
