code: private int findCommonNode(int index, int strength) {
          assert(Collator.SECONDARY <= strength && strength <= Collator.TERTIARY);
          long node = nodes.elementAti(index);
          if(strengthFromNode(node) >= strength) {
              // The current node is no stronger.
              return index;
          }
          if(strength == Collator.SECONDARY ? !nodeHasBefore2(node) : !nodeHasBefore3(node)) {
              // The current node implies the strength-common weight.
              return index;
          }
          index = nextIndexFromNode(node);
          node = nodes.elementAti(index);
          assert(!isTailoredNode(node) && strengthFromNode(node) == strength &&
                  weight16FromNode(node) < Collation.COMMON_WEIGHT16);
          // Skip to the explicit common node.
          do {
              index = nextIndexFromNode(node);
              node = nodes.elementAti(index);
              assert(strengthFromNode(node) >= strength);
          } while(isTailoredNode(node) || strengthFromNode(node) > strength ||
                  weight16FromNode(node) < Collation.COMMON_WEIGHT16);
          assert(weight16FromNode(node) == Collation.COMMON_WEIGHT16);
          return index;
      }
docs: Finds the node which implies or contains a common=05 weight of the given strength
  (secondary or tertiary), if the current node is stronger.
  Skips weaker nodes and tailored nodes if the current node is stronger
  and is followed by an explicit-common-weight node.
  Always returns the input index if that node is no stronger than the given strength.