Browse Source

diagnostics probes temp dir by writing a file to it.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277618 13f79535-47bb-0310-9956-ffa450edef68
master
Steve Loughran 20 years ago
parent
commit
bec41871b5
2 changed files with 68 additions and 29 deletions
  1. +2
    -1
      WHATSNEW
  2. +66
    -28
      src/main/org/apache/tools/ant/Diagnostics.java

+ 2
- 1
WHATSNEW View File

@@ -97,7 +97,8 @@ Other changes:

* Added <scriptselector> selector for scripted file selection

* ant -diagnostics lists contents of ${user.home}/.ant/lib
* ant -diagnostics lists contents of ${user.home}/.ant/lib , and
checks that the java.io.tmpdir directory exists and is writeable.

* mail task accepts nested header element. Bugzilla report 24713.



+ 66
- 28
src/main/org/apache/tools/ant/Diagnostics.java View File

@@ -17,6 +17,7 @@
package org.apache.tools.ant;

import org.apache.tools.ant.util.LoaderUtils;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.launch.Launcher;

import javax.xml.parsers.SAXParserFactory;
@@ -26,6 +27,8 @@ import java.io.FilenameFilter;
import java.io.PrintStream;
import java.io.InputStream;
import java.io.IOException;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.lang.reflect.Method;
@@ -202,10 +205,8 @@ public final class Diagnostics {
public static void doReport(PrintStream out) {
out.println("------- Ant diagnostics report -------");
out.println(Main.getAntVersion());
out.println();
out.println("-------------------------------------------");
out.println(" Implementation Version ");
out.println("-------------------------------------------");
header(out, "Implementation Version");

out.println("core tasks : " + getImplementationVersion(Main.class));

Class optional = null;
@@ -218,44 +219,35 @@ public final class Diagnostics {
out.println("optional tasks : not available");
}

out.println();
out.println("-------------------------------------------");
out.println(" ANT_HOME/lib jar listing");
out.println("-------------------------------------------");
header(out, "ANT_HOME/lib jar listing");
doReportAntHomeLibraries(out);

out.println();
out.println("-------------------------------------------");
out.println(" USER_HOME/.ant/lib jar listing");
out.println("-------------------------------------------");
header(out, "USER_HOME/.ant/lib jar listing");
doReportUserHomeLibraries(out);

out.println();
out.println("-------------------------------------------");
out.println(" Tasks availability");
out.println("-------------------------------------------");
header(out, "Tasks availability");
doReportTasksAvailability(out);

out.println();
out.println("-------------------------------------------");
out.println(" org.apache.env.Which diagnostics");
out.println("-------------------------------------------");
header(out, "org.apache.env.Which diagnostics");
doReportWhich(out);

header(out, "XML Parser information");
doReportParserInfo(out);

header(out, "System properties");
doReportSystemProperties(out);

header(out, "Temp dir");
doReportTempDir(out);
out.println();
out.println("-------------------------------------------");
out.println(" XML Parser information");
out.println("-------------------------------------------");
doReportParserInfo(out);
}

private static void header(PrintStream out, String section) {
out.println();
out.println("-------------------------------------------");
out.println(" System properties");
out.print(" ");
out.println(section);
out.println("-------------------------------------------");
doReportSystemProperties(out);

out.println();
}

/**
@@ -395,4 +387,50 @@ public final class Diagnostics {
out.println("XML Parser : " + parserName);
out.println("XML Parser Location: " + parserLocation);
}

/**
* try and create a temp file in our temp dir; this
* checks that it has space and access.
* @param out
*/
private static void doReportTempDir(PrintStream out) {
String tempdir=System.getProperty("java.io.tmpdir");
if( tempdir == null ) {
out.println("Warning: java.io.tmpdir is undefined");
return;
}
out.println("Temp dir is "+ tempdir);
File tempDirectory=new File(tempdir);
if(!tempDirectory.exists()) {
out.println("Warning, java.io.tmpdir directory does not exist: "+
tempdir);
return;
}
//create the file
File tempFile=null;
FileOutputStream fileout = null;
try {
tempFile = File.createTempFile("diag","txt",tempDirectory);
//do some writing to it
fileout = new FileOutputStream(tempFile);
byte buffer[]=new byte[1024];
for(int i=0;i<32;i++) {
fileout.write(buffer);
}
fileout.close();
fileout=null;
tempFile.delete();
out.println("Temp dir is writeable");
} catch (IOException e) {
out.println("Failed to create a temporary file in the temp dir "
+ tempdir);
out.println("File "+ tempFile + " could not be created/written to");
} finally {
FileUtils.close(fileout);
if(tempFile!=null && tempFile.exists()) {
tempFile.delete();
}
}

}
}

Loading…
Cancel
Save