docs: private static void toStringField(Object object) {
  		StringBuffer buffer = (StringBuffer)ThreadUtils.getAttribute(TOSTRING_TCBUFF);
  
  		if(object == null) {
  			buffer.append(TOSTRING_EMPTY);
  		} else {
  			Class<?> clazz = object.getClass();
  			if(clazz.isPrimitive()) {
  				buffer.append(object.toString());
  			} else {
  				@SuppressWarnings("unchecked")
  				Set<String> converted = (Set<String>)ThreadUtils.getAttribute(TOSTRING_TCATTR);
  				String hexHash = Integer.toHexString(System.identityHashCode(object));
  				if(converted.contains(clazz.getCanonicalName() + "@" + hexHash)) {
  					buffer.append(clazz.getSimpleName()).append('@').append(hexHash)
  							.append(TOSTRING_REPEATE);
  				} else {
  					buffer.append(object.toString());
  				}
  			}
  		}
  	}