diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index e3ef07269cb9aa519b01f5bea659045a9d4376e1..f0523fb29f950fc3ac920edc5ea6e6fb62dc785f 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -41,6 +41,7 @@ import org.kohsuke.stapler.Ancestor; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.jvnet.animal_sniffer.IgnoreJRERequirement; import javax.servlet.ServletException; import javax.servlet.http.Cookie; @@ -631,6 +632,7 @@ public class Functions { return Thread.getAllStackTraces(); } + @IgnoreJRERequirement public static ThreadInfo[] getThreadInfos() { ThreadMXBean mbean = ManagementFactory.getThreadMXBean(); return mbean.getThreadInfo(mbean.getAllThreadIds(),mbean.isObjectMonitorUsageSupported(),mbean.isSynchronizerUsageSupported()); @@ -639,6 +641,7 @@ public class Functions { /** * Are we running on JRE6 or above? */ + @IgnoreJRERequirement public static boolean isMustangOrAbove() { try { System.console(); @@ -649,6 +652,7 @@ public class Functions { } // ThreadInfo.toString() truncates the stack trace by first 8, so needed my own version + @IgnoreJRERequirement public static String dumpThreadInfo(ThreadInfo ti) { StringBuilder sb = new StringBuilder("\"" + ti.getThreadName() + "\"" + " Id=" + ti.getThreadId() + " " + diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index 605a87bef245ddf8c5c4d4dc5bddc1e798500f54..240e93425a5050f5f91299a166ddc9217c8a2fe3 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -14,6 +14,7 @@ import org.apache.tools.ant.taskdefs.Chmod; import org.apache.tools.ant.taskdefs.Copy; import org.apache.commons.lang.time.FastDateFormat; import org.kohsuke.stapler.Stapler; +import org.jvnet.animal_sniffer.IgnoreJRERequirement; import java.io.BufferedReader; import java.io.ByteArrayInputStream; @@ -206,6 +207,7 @@ public class Util { /** * Makes the given file writable. */ + @IgnoreJRERequirement private static void makeWritable(File f) { // try chmod. this becomes no-op if this is not Unix. try { diff --git a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java index f936a9d035405f53418d7401717fa881c206f38f..2456e701c9e465baf0c623c29147a9f6ea1af3e7 100644 --- a/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java +++ b/core/src/main/java/hudson/node_monitors/DiskSpaceMonitor.java @@ -7,6 +7,7 @@ import hudson.model.Computer; import hudson.remoting.VirtualChannel; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; +import org.jvnet.animal_sniffer.IgnoreJRERequirement; import java.io.File; import java.io.IOException; @@ -71,6 +72,7 @@ public class DiskSpaceMonitor extends NodeMonitor { }; private static final class GetUsableSpace implements FileCallable { + @IgnoreJRERequirement public Long invoke(File f, VirtualChannel channel) throws IOException { try { return f.getUsableSpace(); diff --git a/core/src/main/java/hudson/util/ArgumentListBuilder.java b/core/src/main/java/hudson/util/ArgumentListBuilder.java index 0f77a08161ab8e696e5bf798557fe5b9ba050ebc..ccd5e2ee4f04827012d397b566105faae1a27472 100644 --- a/core/src/main/java/hudson/util/ArgumentListBuilder.java +++ b/core/src/main/java/hudson/util/ArgumentListBuilder.java @@ -14,6 +14,8 @@ import java.io.StringReader; import java.io.ByteArrayInputStream; import java.io.IOException; +import org.jvnet.animal_sniffer.IgnoreJRERequirement; + /** * Used to build up arguments for a process invocation. * @@ -92,6 +94,14 @@ public class ArgumentListBuilder implements Serializable { public ArgumentListBuilder addKeyValuePairsFromPropertyString(String prefix, String properties, VariableResolver vr) throws IOException { if(properties==null) return this; + for (Entry entry : load(properties).entrySet()) { + args.add(prefix + entry.getKey() + "=" + Util.replaceMacro(entry.getValue().toString(),vr)); + } + return this; + } + + @IgnoreJRERequirement + private Properties load(String properties) throws IOException { Properties p = new Properties(); try { p.load(new StringReader(properties)); @@ -101,11 +111,7 @@ public class ArgumentListBuilder implements Serializable { // but there's no other easy ways out it seems. p.load(new ByteArrayInputStream(properties.getBytes())); } - - for (Entry entry : p.entrySet()) { - args.add(prefix + entry.getKey() + "=" + Util.replaceMacro(entry.getValue().toString(),vr)); - } - return this; + return p; } public String[] toCommandArray() {