code: public <T> T shallowClone(final T o) {
          if (o == null) {
              return null;
          }
          if (!this.cloningEnabled) {
              return o;
          }
          try {
              return cloneInternal(o, null);
          } catch (final IllegalAccessException e) {
              throw new RuntimeException("error during cloning of " + o, e);
          }
      }
docs: shallow clones "o". This means that if c=shallowClone(o) then c!=o. Any change to c won't affect o.
  
  @param <T>
  the type of o
  @param o
  the object to be shallow-cloned
  @return a shallow clone of "o"