Don't call setProperty on read-only properties.
This is to avoid verbose logging. Runtimes that rely on
those properties being set need to use an older version
of vogar.
bug:19114742
Change-Id: Ic252010a2d9b78332e865ea6524cc1ad43e488a5
diff --git a/src/vogar/target/TestEnvironment.java b/src/vogar/target/TestEnvironment.java
index c5ad9d3..ebfd7d3 100644
--- a/src/vogar/target/TestEnvironment.java
+++ b/src/vogar/target/TestEnvironment.java
@@ -76,7 +76,7 @@
// From "L" release onwards, calling System.setProperties(null) clears the java.io.tmpdir,
// so we set it again. No-op on earlier releases.
- System.setProperty("java.io.tmpdir", tmpDir);
+ setPropertyIfNull("java.io.tmpdir", tmpDir);
String userHome = System.getProperty("user.home");
String userDir = System.getProperty("user.dir");
@@ -97,29 +97,30 @@
// From "L" release onwards, calling System.setProperties(null) clears the java.io.tmpdir,
// so we set it again. No-op on earlier releases.
- System.setProperty("java.io.tmpdir", tmpDir);
-
- if (JAVA_RUNTIME_VERSION != null) {
- System.setProperty("java.runtime.version", JAVA_RUNTIME_VERSION);
- }
- if (JAVA_VM_INFO != null) {
- System.setProperty("java.vm.info", JAVA_VM_INFO);
- }
- if (JAVA_VM_VERSION != null) {
- System.setProperty("java.vm.version", JAVA_VM_VERSION);
- }
- if (JAVA_VM_VENDOR != null) {
- System.setProperty("java.vm.vendor", JAVA_VM_VENDOR);
- }
- if (JAVA_VM_NAME != null) {
- System.setProperty("java.vm.name", JAVA_VM_NAME);
- }
+ setPropertyIfNull("java.io.tmpdir", tmpDir);
// Require writable java.home and user.dir directories for preferences
if ("Dalvik".equals(System.getProperty("java.vm.name"))) {
String javaHome = tmpDir + "/java.home";
IoUtils.safeMkdirs(new File(javaHome));
- System.setProperty("java.home", javaHome);
+ setPropertyIfNull("java.home", javaHome);
+ } else {
+ // The mode --jvm has these properties writable.
+ if (JAVA_RUNTIME_VERSION != null) {
+ System.setProperty("java.runtime.version", JAVA_RUNTIME_VERSION);
+ }
+ if (JAVA_VM_INFO != null) {
+ System.setProperty("java.vm.info", JAVA_VM_INFO);
+ }
+ if (JAVA_VM_VERSION != null) {
+ System.setProperty("java.vm.version", JAVA_VM_VERSION);
+ }
+ if (JAVA_VM_VENDOR != null) {
+ System.setProperty("java.vm.vendor", JAVA_VM_VENDOR);
+ }
+ if (JAVA_VM_NAME != null) {
+ System.setProperty("java.vm.name", JAVA_VM_NAME);
+ }
}
String userHome = System.getProperty("user.home");
if (userHome.length() == 0) {
@@ -239,4 +240,10 @@
throw e2;
}
}
+
+ private static void setPropertyIfNull(String property, String value) {
+ if (System.getProperty(property) == null) {
+ System.setProperty(property, value);
+ }
+ }
}