You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Clinton Davidson (JIRA)" <ax...@ws.apache.org> on 2005/01/26 18:32:18 UTC

[jira] Commented: (AXIS-1782) Delete orphaned temp files on startup

     [ http://issues.apache.org/jira/browse/AXIS-1782?page=comments#action_58096 ]
     
Clinton Davidson commented on AXIS-1782:
----------------------------------------

Sorry, I meant this for 1.2 rc2, although the issue is present in 1.1 as well. 

> Delete orphaned temp files on startup
> -------------------------------------
>
>          Key: AXIS-1782
>          URL: http://issues.apache.org/jira/browse/AXIS-1782
>      Project: Axis
>         Type: Improvement
>   Components: Basic Architecture
>     Versions: 1.1rc2
>  Environment: Windows 2000, Java
>     Reporter: Clinton Davidson
>     Priority: Minor

>
> The use case is to delete orphaned temp files, e.g. those that may have been left over from abnormal VM termination. 
>  
> The proposed changes would be in  org.apache.axis.AxisEngine.java, with a minor change in org.apache.axis.attachments.ManagedMemoryDataSource.java
>  
> In AxisEngine:
>  
> Changes to imports:
>  
> import java.io.FilenameFilter;
> import java.io.File;
>  
> in member variables:
>  
>  /** Temp file prefix used when the data is flushed to disk */
>  public static final String TEMP_FILE_PREFIX = "Axis";
>  /** Temp file suffix used when the data is flushed to disk */
>  public static final String TEMP_FILE_SUFFIX = "axis";
>  
>  /** <code>true</code> if the orphaned disk cache files have been deleted **/
>  private static boolean orphanedDiskCacheFilesDeleted = false;
>  
>  
> in init, directly before the log message to exit:
>  
> //only do it once
> if (!orphanedDiskCacheFilesDeleted) {
>     deleteOrphanedDiskCacheFiles();
>     orphanedDiskCacheFilesDeleted = true;
> }
>  
> Additional method to remove temp files:
>  
>      private void deleteOrphanedDiskCacheFiles()
>      {
>          if (log.isDebugEnabled()) {
>              log.debug("Enter: AxisEngine::deleteOrphanedDiskCacheFiles");
>          }
>  
>          String tempDirName = (String) getOption(PROP_ATTACHMENT_DIR);
>          if (tempDirName == null) {
>              tempDirName = System.getProperty("java.io.tmpdir");
>          }
>  
>          if (log.isTraceEnabled()) {
>              log.trace("tempDirName: " + tempDirName);
>          }
>  
>          File tempDir = new File(tempDirName);
>          if (!tempDir.exists() || !tempDir.isDirectory())
>              return;
>  
>          //matches our temp files
>          FilenameFilter tempFileFilter = new FilenameFilter() {
>              public boolean accept(File dir, String name) {
>                  boolean isTempFile = name.startsWith(TEMP_FILE_PREFIX) && name.endsWith(TEMP_FILE_SUFFIX);
>                  return isTempFile;
>              }
>          };
>  
>          File[] tempFiles = tempDir.listFiles(tempFileFilter);
>          if (log.isTraceEnabled()) {
>              log.trace("number of our temp files in the temp dir: " + tempFiles.length);
>          }
>          for (int i = 0; i < tempFiles.length; i++) {
>              File tempFile = tempFiles[i];
>              if (log.isTraceEnabled()) {
>                  log.trace("deleting our temp file: " + tempFile.getName());
>              }
>              tempFile.delete();
>          }
>  
>          if (log.isDebugEnabled()) {
>              log.debug("Exit: AxisEngine::deleteOrphanedDiskCacheFiles");
>          }
>      }
>  
> In ManagedMemoryDataSource:
>  
> Add an import for axis engine:
>  
> import org.apache.axis.AxisEngine;
>  
>  
> in flushToDisk(), replace the hard coded name with the constant from AxisEngine
>  
> //diskCacheFile = java.io.File.createTempFile("Axis", "axis",
> diskCacheFile = java.io.File.createTempFile(AxisEngine.TEMP_FILE_PREFIX, AxisEngine.TEMP_FILE_SUFFIX,
>  
>  
> I was not clear if this should be a bug, feature request, or improvement. I posted to the dev mailing list, but got no response. Let me know if you have any feedback about the proposed patch.
>  
> Thanks
>  
> Clinton
>    
>  
>  
>  
>  
>  
>  

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira