code: @Override
      public JcrValue[] getValues() throws RepositoryException {
          checkSession();
          Property innerProp = property();
          JcrValue[] values = new JcrValue[innerProp.size()];
          Iterator<?> iter = innerProp.iterator();
          for (int ndx = 0; iter.hasNext(); ndx++) {
              values[ndx] = createValue(iter.next());
          }
          return values;
      }
docs: {@inheritDoc}
  <p>
  Per the JCR specification, these values need to be created each time this method is called, since the Value cannot be used
  after {@link Value#getStream()} is called/processed. The spec says that the client simply needs to obtain a new Value (or
  {@link #getValues()} for {@link JcrMultiValueProperty multi-valued properites}).
  </p>
  
  @see javax.jcr.Property#getValues()