private MavenVersion maxSubjectToUpperBound(List<MavenVersion> allVersions) {
   MavenVersion absoluteMax = Collections.max(allVersions);
   if (!lookupParams.upperBoundGiven()) return absoluteMax;
   Collections.sort(allVersions);
   for (int i = 0; i < allVersions.size(); i++) {
     if (allVersions.get(i).lessThan(lookupParams.getUpperBound())
         && i + 1 <= allVersions.size() - 1
         && allVersions.get(i + 1).greaterOrEqual(lookupParams.getUpperBound()))
       return allVersions.get(i);
     if (allVersions.get(i).lessThan(lookupParams.getUpperBound()) && i + 1 == allVersions.size())
       return allVersions.get(i);
   }
   return null;
 }