@Override public synchronized MXBeanMapping mappingForType(Type objType,MXBeanMappingFactory factory) throws OpenDataException {
  if (inProgress.containsKey(objType)) {
    throw new OpenDataException("Recursive data structure, including " + typeName(objType));
  }
  MXBeanMapping mapping;
  mapping=getMapping(objType);
  if (mapping != null)   return mapping;
  inProgress.put(objType,objType);
  try {
    mapping=makeMapping(objType,factory);
  }
 catch (  OpenDataException e) {
    throw openDataException("Cannot convert type: " + typeName(objType),e);
  }
 finally {
    inProgress.remove(objType);
  }
  putMapping(objType,mapping);
  return mapping;
}

@ Override public synchronized MXBeanMapping mappingForType ( Type objType , MXBeanMappingFactory factory ) throws OpenDataException { if ( inProgress . containsKey ( objType ) ) { throw new OpenDataException ( "Recursive data structure, including " + typeName ( objType ) ) ; } MXBeanMapping mapping ; mapping = getMapping ( objType ) ; if ( mapping != null ) return mapping ; inProgress . put ( objType , objType ) ; try { mapping = makeMapping ( objType , factory ) ; } catch ( OpenDataException e ) { throw openDataException ( "Cannot convert type: " + typeName ( objType ) , e ) ; } finally { inProgress . remove ( objType ) ; } putMapping ( objType , mapping ) ; return mapping ; }
get the converter for the given java type , creating it if necessary .
