You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by st...@apache.org on 2006/10/27 01:11:26 UTC
svn commit: r468181 -
/ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java
Author: stevel
Date: Thu Oct 26 16:11:25 2006
New Revision: 468181
URL: http://svn.apache.org/viewvc?view=rev&rev=468181
Log:
handle security checks on property get gracefully
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java
Modified: ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java?view=diff&rev=468181&r1=468180&r2=468181
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/Diagnostics.java Thu Oct 26 16:11:25 2006
@@ -49,7 +49,16 @@
*/
public final class Diagnostics {
+ /**
+ * value for which a difference between clock and temp file time triggers
+ * a warning.
+ * {@value}
+ */
private static final int BIG_DRIFT_LIMIT = 10000;
+ /**
+ * How big a test file to write.
+ * {@value}
+ */
private static final int TEST_FILE_SIZE = 32;
private static final int KILOBYTE = 1024;
private static final int SECONDS_PER_MILLISECOND = 1000;
@@ -58,6 +67,12 @@
private static final String TEST_CLASS
= "org.apache.tools.ant.taskdefs.optional.Test";
+ /**
+ * The error text when a security manager blocks access to a property.
+ * {@value}
+ */
+ protected static final String ERROR_PROPERTY_ACCESS_BLOCKED = "Access to this property blocked by a security manager";
+
/** utility class */
private Diagnostics() {
// hidden constructor
@@ -322,17 +337,29 @@
for (Enumeration keys = sysprops.propertyNames();
keys.hasMoreElements();) {
String key = (String) keys.nextElement();
- String value;
- try {
- value = System.getProperty(key);
- } catch (SecurityException e) {
- value = "Access to this property blocked by a security manager";
- }
+ String value = getProperty(key);
out.println(key + " : " + value);
}
}
/**
+ * Get the value of a system property. If a security manager
+ * blocks access to a property it fills the result in with an error
+ * @param key
+ * @return the system property's value or error text
+ * @see #ERROR_PROPERTY_ACCESS_BLOCKED
+ */
+ private static String getProperty(String key) {
+ String value;
+ try {
+ value = System.getProperty(key);
+ } catch (SecurityException e) {
+ value = ERROR_PROPERTY_ACCESS_BLOCKED;
+ }
+ return value;
+ }
+
+ /**
* Report the content of ANT_HOME/lib directory
* @param out the stream to print the content to
*/
@@ -558,28 +585,27 @@
}
/**
- * print a property name="value" pair, or name=[undefined] if there is none
- * @param out
- * @param name
+ * print a property name="value" pair if the property is set;
+ * print nothing if it is null
+ * @param out stream to print on
+ * @param key property name
*/
- private static void printProperty(PrintStream out,String name) {
- out.print(name);
- out.print(" = ");
- String value=System.getProperty(name);
+ private static void printProperty(PrintStream out,String key) {
+ String value= getProperty(key);
if(value!=null) {
+ out.print(key);
+ out.print(" = ");
out.print('"');
out.print(value);
out.println('"');
- } else {
- out.println("[undefined]");
}
-
}
/**
* Report proxy information
- *
+ *
* @param out stream to print to
+ * @since Ant1.7
*/
private static void doReportProxy(PrintStream out) {
printProperty(out,ProxySetup.HTTP_PROXY_HOST);
@@ -607,7 +633,7 @@
try {
Class proxyDiagClass = Class.forName(proxyDiagClassname);
Object instance =proxyDiagClass.newInstance();
- out.println("Java1.5+ proxy settings");
+ out.println("Java1.5+ proxy settings:");
out.println(instance.toString());
} catch (ClassNotFoundException e) {
//not included, do nothing
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org