code: protected void initPaths() {
  		// Hand-rolled String.join(), for java 6
  		String[] split = getSplitDirPath();
  		String[] obsolete = getObsoleteDirPath();
  
  		//URLs are joined with '/'
  		StringBuilder splitURL = new StringBuilder("/pub/pdb");
  		for(int i=0;i<split.length;i++) {
  			splitURL.append("/");
  			splitURL.append(split[i]);
  		}
  		StringBuilder obsoleteURL = new StringBuilder("/pub/pdb");
  		for(int i=0;i<obsolete.length;i++) {
  			obsoleteURL.append("/");
  			obsoleteURL.append(obsolete[i]);
  		}
  
  		splitDirURL = splitURL.toString();
  		obsoleteDirURL = obsoleteURL.toString();
  
  
  		//Files join themselves iteratively
  		splitDirPath = path;
  		for(int i=0;i<split.length;i++) {
  			splitDirPath = new File(splitDirPath,split[i]);
  		}
  		obsoleteDirPath = path;
  		for(int i=0;i<obsolete.length;i++) {
  			obsoleteDirPath = new File(obsoleteDirPath,obsolete[i]);
  		}
  	}
docs: Should be called whenever any of the path variables change.
  Thus, if {@link getSplitDirPath()} or {@link getObsoleteDirPath()}
  depend on anything, they should call this function when that thing
  changes (possibly including at the end of the constructor).