static URL fixPureQueryTargets(URL base,String target) throws MalformedURLException {
  if (!target.startsWith("?"))   return new URL(base,target);
  String basePath=base.getPath();
  String baseRightMost="";
  int baseRightMostIdx=basePath.lastIndexOf("/");
  if (baseRightMostIdx != -1) {
    baseRightMost=basePath.substring(baseRightMostIdx + 1);
  }
  if (target.startsWith("?"))   target=baseRightMost + target;
  return new URL(base,target);
}

static URL fixPureQueryTargets ( URL base , String target ) throws MalformedURLException { if ( ! target . startsWith ( "?" ) ) return new URL ( base , target ) ; String basePath = base . getPath ( ) ; String baseRightMost = "" ; int baseRightMostIdx = basePath . lastIndexOf ( "/" ) ; if ( baseRightMostIdx != - 1 ) { baseRightMost = basePath . substring ( baseRightMostIdx + 1 ) ; } if ( target . startsWith ( "?" ) ) target = baseRightMost + target ; return new URL ( base , target ) ; }
handle the case in rfc3986 section 5 . 4 . 1 example 7 , and similar .
