docs: protected PropertyIterator propertiesOnOtherNodesReferencingThis( String propertyName,
                                                                        int referenceType ) throws RepositoryException {
          assert referenceType == PropertyType.REFERENCE || referenceType == PropertyType.WEAKREFERENCE;
          if (!this.isReferenceable()) {
              // This node is not referenceable, so it cannot have any references to it ...
              return JcrEmptyPropertyIterator.INSTANCE;
          }
          ReferenceType refType = referenceType == PropertyType.REFERENCE ? ReferenceType.STRONG : ReferenceType.WEAK;
          NodeIterator iter = referringNodes(refType);
          if (!iter.hasNext()) {
              return JcrEmptyPropertyIterator.INSTANCE;
          }
          // Use the identifier, not the UUID (since the getUUID() method just calls the getIdentifier() method) ...
          String id = getIdentifier();
          List<javax.jcr.Property> references = new LinkedList<javax.jcr.Property>();
          while (iter.hasNext()) {
              javax.jcr.Node node = iter.nextNode();
  
              // Go through the properties and look for reference properties that have a value of this node's UUID ...
              PropertyIterator propIter = node.getProperties();
              while (propIter.hasNext()) {
                  javax.jcr.Property prop = propIter.nextProperty();
                  // Look at the definition's required type ...
                  if (prop.getType() == referenceType) {
                      if (propertyName != null && !propertyName.equals(prop.getName())) continue;
                      if (prop.getDefinition().isMultiple()) {
                          for (Value value : prop.getValues()) {
                              if (id.equals(value.getString())) {
                                  references.add(prop);
                                  break;
                              }
                          }
                      } else {
                          Value value = prop.getValue();
                          if (id.equals(value.getString())) {
                              references.add(prop);
                          }
                      }
                  }
              }
          }
  
          if (references.isEmpty()) return JcrEmptyPropertyIterator.INSTANCE;
          return new JcrPropertyIterator(references);
      }