stevel 2005/02/08 10:50:37
Modified: src/main/org/apache/tools/ant Diagnostics.java
. WHATSNEW
Log:
diagnostics probes temp dir by writing a file to it.
Revision Changes Path
1.21 +66 -28 ant/src/main/org/apache/tools/ant/Diagnostics.java
Index: Diagnostics.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/Diagnostics.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- Diagnostics.java 2 Feb 2005 09:05:26 -0000 1.20
+++ Diagnostics.java 8 Feb 2005 18:50:35 -0000 1.21
@@ -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.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 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 @@
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 @@
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();
+ }
+ }
+
+ }
}
1.742 +2 -1 ant/WHATSNEW
Index: WHATSNEW
===================================================================
RCS file: /home/cvs/ant/WHATSNEW,v
retrieving revision 1.741
retrieving revision 1.742
diff -u -r1.741 -r1.742
--- WHATSNEW 4 Feb 2005 08:08:06 -0000 1.741
+++ WHATSNEW 8 Feb 2005 18:50:35 -0000 1.742
@@ -97,7 +97,8 @@
* 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.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]