code: public boolean versionRangesOverlap(VersionRange otherRange)
      {
          if (this.getVersionRange() == null || otherRange == null)
              return true;
  
          /*
           * FIXME HACK - The code in MultipleVersionRange works pretty well for this calculation, so we are reusing that.
           *
           * Some of the other range intersection algorithms have design flaws that make them return results incorrectly.
           *
           * This hack needs an extensive unit test to insure that it retains the behavior that we expect.
           */
          MultipleVersionRange range1Multiple;
          if (getVersionRange() instanceof MultipleVersionRange)
              range1Multiple = (MultipleVersionRange)getVersionRange();
          else
              range1Multiple = new MultipleVersionRange(getVersionRange());
  
          try
          {
              VersionRange intersection = range1Multiple.getIntersection(otherRange);
              return intersection != null && !intersection.isEmpty();
          } catch (Throwable t)
          {
              // This generally only occurs if there was no intersection
              return false;
          }
      }
docs: Takes the given {@link VersionRange} objects and returns true if there is any overlap between the two
  ranges.
  
  If either is null, then it is treated as overlapping.