code: private void getControllingProcessDirectory(long timestamp, String pid) {
  		int count = 0;
  		while (ivSubDirectory == null) {
  			ivSubDirectory = makeLogDirectory(timestamp, pid);
  			if (ivSubDirectory == null) {
  				if (++count > FAILED_MAX_COUNT) {
  					ivSubDirectory = makeLogDirectory(timestamp, pid,true);
  					if(ivSubDirectory==null){
  						if (debugLogger.isLoggable(Level.FINE) && isDebugEnabled())
  						{
  							debugLogger.logp(Level.FINE, thisClass, "UnableToMakeDirectory", "Unable to create instance directory forcefully , throwing Runtime Exception");
  						}
  					  throw new RuntimeException("Failed to create instance log repository. See SystemOut.log for details.");
  				    }
  				}
  				try {
  					Thread.sleep(FAILED_WAIT_TIME);
  				} catch (InterruptedException ex) {
  					// Ignore it, assume that we had enough sleep.
  				}
  			}
  		}
  	}
docs: get the directory of the controlling process (this process). Used for this process and for prefixing the paths of
  child process files (this process does the naming for those files).
  @param timestamp
  @param pid