code: final AbstractJcrProperty setProperty( Name name,
                                             Value[] values,
                                             int jcrPropertyType,
                                             boolean skipReferenceValidation )
          throws VersionException, LockException, ConstraintViolationException, RepositoryException {
          return setProperty(name, values, jcrPropertyType, false, skipReferenceValidation, false, false);
      }
docs: Sets a multi valued property, skipping over protected ones.
  
  @param name the name of the property; may not be null
  @param values the values of the property; may not be null
  @param jcrPropertyType the expected property type; may be {@link PropertyType#UNDEFINED} if the values should not be
  converted
  @param skipReferenceValidation indicates whether constraints on REFERENCE properties should be enforced
  @return the new JCR property object
  @throws VersionException if the node is checked out
  @throws LockException if the node is locked
  @throws ConstraintViolationException if the new value would violate the constraints on the property definition
  @throws RepositoryException if the named property does not exist, or if some other error occurred