Rebase onto 3.1.0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 998b7bc..27759ac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log for `process_runner`
 
+## 4.0.0-nullsafety.2
+
+* Rebase onto non-nullsafety version 3.1.0 to pick up those changes. 
+
 ## 4.0.0-nullsafety.1
 
 * Expand the sdk constraint to `<2.11.0`.
diff --git a/lib/src/process_pool.dart b/lib/src/process_pool.dart
index 55c98b8..ce8fa32 100644
--- a/lib/src/process_pool.dart
+++ b/lib/src/process_pool.dart
@@ -75,7 +75,7 @@
 
   /// Once the job is complete, if it had an exception while running, this
   /// member contains the exception.
-  Exception exception;
+  Exception? exception;
 
   @override
   String toString() {
diff --git a/test/src/fake_process_manager.dart b/test/src/fake_process_manager.dart
index 8daffef..7ae3b6e 100644
--- a/test/src/fake_process_manager.dart
+++ b/test/src/fake_process_manager.dart
@@ -122,14 +122,15 @@
   }
 
   @override
-  Future<ProcessResult> run(List<dynamic> command,
-      {String? workingDirectory,
-      Map<String, String>? environment,
-      bool includeParentEnvironment = true,
-      bool runInShell = false,
-      Encoding stdoutEncoding = systemEncoding,
-      Encoding stderrEncoding = systemEncoding,
-    }) {
+  Future<ProcessResult> run(
+    List<dynamic> command, {
+    String? workingDirectory,
+    Map<String, String>? environment,
+    bool includeParentEnvironment = true,
+    bool runInShell = false,
+    Encoding stdoutEncoding = systemEncoding,
+    Encoding stderrEncoding = systemEncoding,
+  }) {
     if (commandsThrow) {
       throw const ProcessException('failed_executable', <String>[]);
     }
@@ -137,13 +138,15 @@
   }
 
   @override
-  ProcessResult runSync(List<dynamic> command,
-      {String? workingDirectory,
-      Map<String, String>? environment,
-      bool includeParentEnvironment = true,
-      bool runInShell = false,
-      Encoding stdoutEncoding = systemEncoding,
-      Encoding stderrEncoding = systemEncoding}) {
+  ProcessResult runSync(
+    List<dynamic> command, {
+    String? workingDirectory,
+    Map<String, String>? environment,
+    bool includeParentEnvironment = true,
+    bool runInShell = false,
+    Encoding stdoutEncoding = systemEncoding,
+    Encoding stderrEncoding = systemEncoding,
+  }) {
     if (commandsThrow) {
       throw const ProcessException('failed_executable', <String>[]);
     }
@@ -151,12 +154,14 @@
   }
 
   @override
-  Future<Process> start(List<dynamic> command,
-      {String? workingDirectory,
-      Map<String, String>? environment,
-      bool includeParentEnvironment = true,
-      bool runInShell = false,
-      ProcessStartMode mode = ProcessStartMode.normal}) {
+  Future<Process> start(
+    List<dynamic> command, {
+    String? workingDirectory,
+    Map<String, String>? environment,
+    bool includeParentEnvironment = true,
+    bool runInShell = false,
+    ProcessStartMode mode = ProcessStartMode.normal,
+  }) {
     if (commandsThrow) {
       throw const ProcessException('failed_executable', <String>[]);
     }