Browse Source

Fix args not being propagated by AutoUpdate to ApplyUpdate. Also propagate ALL command-line args, not just args[0]

split-DB
catbref 5 years ago
parent
commit
e9c94eb83b
  1. 5
      src/main/java/org/qora/ApplyUpdate.java
  2. 8
      src/main/java/org/qora/controller/AutoUpdate.java
  3. 21
      src/main/java/org/qora/controller/Controller.java

5
src/main/java/org/qora/ApplyUpdate.java

@ -151,9 +151,8 @@ public class ApplyUpdate {
// Call mainClass in JAR
javaCmd.addAll(Arrays.asList("-jar", JAR_FILENAME));
if (args.length > 0)
// Add settings filename
javaCmd.add(args[0]);
// Add saved command-line args
javaCmd.addAll(Arrays.asList(args));
}
try {

8
src/main/java/org/qora/controller/AutoUpdate.java

@ -236,10 +236,10 @@ public class AutoUpdate extends Thread {
// Call ApplyUpdate using new JAR
javaCmd.addAll(Arrays.asList("-cp", NEW_JAR_FILENAME, ApplyUpdate.class.getCanonicalName()));
// Are we running with different settings?
String settingsFilename = Controller.getInstance().getSettingsFilename();
if (settingsFilename != null)
javaCmd.add(settingsFilename);
// Add command-line args saved from start-up
String[] savedArgs = Controller.getInstance().getSavedArgs();
if (savedArgs != null)
javaCmd.addAll(Arrays.asList(savedArgs));
LOGGER.info(String.format("Applying update with: %s", String.join(" ", javaCmd)));

21
src/main/java/org/qora/controller/Controller.java

@ -121,7 +121,7 @@ public class Controller extends Thread {
private final String buildVersion;
private final long buildTimestamp; // seconds
private String settingsFilename;
private final String[] savedArgs;
private AtomicReference<BlockData> chainTip = new AtomicReference<>();
@ -163,7 +163,7 @@ public class Controller extends Thread {
// Constructors
private Controller() {
private Controller(String[] args) {
Properties properties = new Properties();
try (InputStream in = this.getClass().getResourceAsStream("/build.properties")) {
properties.load(in);
@ -184,11 +184,18 @@ public class Controller extends Thread {
this.buildVersion = VERSION_PREFIX + buildVersionProperty;
LOGGER.info(String.format("Build version: %s", this.buildVersion));
this.savedArgs = args;
}
private static Controller newInstance(String[] args) {
instance = new Controller(args);
return instance;
}
public static Controller getInstance() {
public static synchronized Controller getInstance() {
if (instance == null)
instance = new Controller();
instance = new Controller(null);
return instance;
}
@ -230,8 +237,8 @@ public class Controller extends Thread {
return this.blockchainLock;
}
/* package */ String getSettingsFilename() {
return this.settingsFilename;
/* package */ String[] getSavedArgs() {
return this.savedArgs;
}
// Entry point
@ -294,7 +301,7 @@ public class Controller extends Thread {
}
LOGGER.info("Starting controller");
Controller.getInstance().start();
Controller.newInstance(args).start();
LOGGER.info(String.format("Starting networking on port %d", Settings.getInstance().getListenPort()));
try {

Loading…
Cancel
Save