code: void release(Object owner, Field field) {
          Map<String, Integer> fields = owners.get(owner);
          if(fields != null) {
              release();
  
              Integer count = fields.get(field.toGenericString());
              if(--count > 0) {
                  fields.put(field.toGenericString(), count);
              } else {
                  fields.remove(field.toGenericString());
              }
          }
  
          if(fields != null && fields.isEmpty()) {
              owners.remove(owner);
          }
      }
docs: Release an instance injected as a field of an object
  @param owner The owner of the field
  @param field The field