@Nidonocu
Чтобы добавить другой флаг к существующему набору значений, используйте оператор присваивания OR.
Mode = Mode.Read;
//Add Mode.Write
Mode |= Mode.Write;
Assert.True(((Mode & Mode.Write) == Mode.Write)
&& ((Mode & Mode.Read) == Mode.Read)));
Удостоверьтесь, что Вы - установка NOT обработчик необработанных исключений по умолчанию (Thread.setDefaultUncaughtExceptionHandler). Это было проблемой, которую я имел.