docs: public synchronized File startNewFile(long timestamp) {
  		if (debugLogger.isLoggable(Level.FINE) && LogRepositoryBaseImpl.isDebugEnabled()) {
  			debugLogger.logp(Level.FINE, thisClass, "startNewFile", "unsentEmpty: "+unsentFileNotifications.isEmpty()+
  				" tstamp: "+timestamp+" Tp: "+managedType+" subProcCommAgent: "+ivSubProcessCommAgent);
  		}
  		synchronized(unsentFileNotifications) {		// Do not make orb call while holding the LogRecordHandler
  			unsentFileNotifications.add(timestamp) ;		// 671059 queue up for later notification
  		}
  		File file = null ;
  		if (debugLogger.isLoggable(Level.FINE) && LogRepositoryBaseImpl.isDebugEnabled()) {
  			debugLogger.logp(Level.FINE, thisClass, "startNewFile", "Add tstamp: "+timestamp+
  				" is unsent entry: "+unsentFileNotifications.size()+" FileNm: "+"xx");
  		}
  		int count = 0;
  		while (ivSubDirectory == null) {
  			File parentDir = makeLogDirectory(timestamp, ivSuperPid);
  			if (parentDir == null) {
  				if (++count > FAILED_MAX_COUNT) {
  					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.
  				}
  			} else {
  				ivSubDirectory = new File(parentDir, getLogDirectoryName(-1, ivPid, ivProcessLabel));
  			}
  		}
  		
  		file = getLogFile(ivSubDirectory, timestamp);
  			
  		File dir = file.getParentFile();
  		if (!AccessHelper.isDirectory(dir)) {
  			AccessHelper.makeDirectories(dir);
  		}
  		
  		// 682033 look at servant subDirectory and
  		if (ivMaxListSize >= 0) {
  			createdFiles.add(file);
  			if (createdFiles.size() > ivMaxListSize) {
  				AccessHelper.deleteFile(createdFiles.remove(0));
  			}
  		}
  		// End of 682033 logic
  		return file;
  	}