if (me == null) { throw new Error("oops"); }
                public void onRole(Role role) {                    addEvent(new AddEvent(Session.this, oid, role, value));                    if (role.isReversable()) {                        PersistentObject me = retrieve(oid);                        Role rev = role.getReverse();                        PersistentObject po = (PersistentObject) value;                        if (rev.isCollection()) {                            addEvent(new AddEvent(Session.this, po.getOID(),                                                  rev, me));                        } else {                            PersistentObject old =                                (PersistentObject) get(po.getOID(), rev);                            if (old != null) {                                addEvent(new RemoveEvent(Session.this,                                                         old.getOID(), rev,                                                         po));                            }                            addEvent(new SetEvent(Session.this, po.getOID(),                                                  rev, me));                        }                    }                }