<p>
Calling `java -XX:CRaCRestore Foo arg1` when there is whitespace in `arg1` causes `arg1` to be split into multiple arguments. I don't think this is intentional.
</p>
<p>
<br>
</p>
<p>
Here's a demonstation.
</p>
<p>
<br>
</p>
<p>
```java
</p>
<p>
// mypack/Foo.java
</p>
<p>
package mypack;<br>
<br>
import jdk.crac.Core;<br>
import java.util.Arrays;<br>
<br>
public class Foo {<br>
public static void main(String[] args) throws Exception {<br>
jdk.crac.Core.checkpointRestore();<br>
}<br>
}<br>
<br>
class Bar {<br>
public static void main(String[] args) {<br>
System.out.println(Arrays.toString(args));<br>
}<br>
}
</p>
<p>
<br>
</p>
<p>
```
</p>
<p>
<br>
</p>
<p>
Step 1: create a checkpoint with `java -XX:CRaCCheckpointTo=foo_checkpoint mypack.Foo`
</p>
<p>
Step 2: restore the checkpoint with `java -XX:CRaCRestoreFrom=foo_checkpoint mypack.Bar 'Hello World'`
</p>
<p>
<br>
</p>
<p>
Expected output: ["Hello World"]
</p>
<p>
Actual output: ["Hello", "World"]
</p>