code: public void setValue(ReloadableType rtype, Object instance, Object value, String name)
  			throws IllegalAccessException {
  		//		System.err.println(">setValue(rtype=" + rtype + ",instance=" + instance + ",value=" + value + ",name=" + name + ")");
  
  		// Look up through our reloadable hierarchy to find it
  		FieldMember fieldmember = rtype.findInstanceField(name);
  
  		if (fieldmember == null) {
  			// If the field is null, there are two possible reasons:
  			// 1. The field does not exist in the hierarchy at all
  			// 2. The field is on a type just above our topmost reloadable type
  			FieldReaderWriter frw = rtype.locateField(name);
  			if (frw == null) {
  				// bad code redeployed?
  				log.info("Unexpectedly unable to locate instance field " + name + " starting from type "
  						+ rtype.dottedtypename
  						+ ": clinit running late?");
  				return;
  			}
  			frw.setValue(instance, value, this);
  		}
  		else {
  			if (fieldmember.isStatic()) {
  				throw new IncompatibleClassChangeError("Expected non-static field " + rtype.dottedtypename + "."
  						+ fieldmember.getName());
  			}
  			Map<String, Object> typeValues = values.get(fieldmember.getDeclaringTypeName());
  			if (typeValues == null) {
  				typeValues = new HashMap<String, Object>();
  				values.put(fieldmember.getDeclaringTypeName(), typeValues);
  			}
  			typeValues.put(name, value);
  		}
  	}
docs: Set the value of a field.
  
  @param rtype the reloadabletype
  @param instance the instance upon which to set the field
  @param value the value to put into the field
  @param name the name of the field
  @throws IllegalAccessException if there is a problem setting the field value