public SessionRIREF add(Object v) throws DmcValueException {
synchronized(this){
SessionRIREF newval = typeCheck(v);
if (value == null)
initValue();
DotName key = (DotName)((DmcMappedAttributeIF)newval).getKey();
SessionRIREF oldval = value.put(key,newval);
if (oldval != null){
// We had a value with this key, ensure that the value actually changed
if (oldval.valuesAreEqual(newval))