docs: @Pure
  	@SuppressWarnings("checkstyle:cyclomaticcomplexity")
  	public static URL makeAbsolute(URL filename, URL current) {
  		if (filename == null) {
  			return null;
  		}
  		final URISchemeType scheme = URISchemeType.getSchemeType(filename);
  		switch (scheme) {
  		case JAR:
  			try {
  				URL jarUrl = getJarURL(filename);
  				jarUrl = makeAbsolute(jarUrl, current);
  				final File jarFile = getJarFile(filename);
  				return toJarURL(jarUrl, jarFile);
  			} catch (MalformedURLException exception) {
  				// Ignore error
  			}
  			break;
  		case FILE:
  			final File file = new File(filename.getFile());
  			if (!file.isAbsolute() && current != null) {
  				return join(current, file);
  			}
  			break;
  			//$CASES-OMITTED$
  		default:
  			// do not change the URL
  		}
  		return filename;
  	}