code: public static String checkAndNormalizeRootPath(String path) throws IllegalArgumentException {
          path = PathUtils.normalizeUnixStylePath(path);
  
          //check the path is not trying to go upwards.
          if (!PathUtils.isNormalizedPathAbsolute(path)) {
              throw new IllegalArgumentException();
          }
  
          //ZipFileContainer is always the root.
          //so all relative paths requested can be made into absolute by adding /
          if (!path.startsWith("/")) {
              path = '/' + path;
          }
  
          //remove trailing /'s
          if (path.endsWith("/")) {
              path = path.substring(0, path.length() - 1);
          }
  
          if (path.equals("/") || path.equals("")) {
              throw new IllegalArgumentException();
          }
  
          return path;
      }
docs: Resolve all ".." elements of a path. The path must use forward slashes.
  
  Verify that the path does not reach above target elements (see {@link #isUnixStylePathAbsolute(String)}.
  
  Add a leading slash if the path does not have one.
  
  Remove any trailing slash.
  
  Verify that the resulting path is neither empty nor a single slash character.
  
  @param path The path which is to be normalized.
  
  @return The normalized path. An exception will result if the path is null.
  
  @throws IllegalArgumentException If the resolved path is empty or has just a single slash,
  or if the resolved path reaches above target locations.