From d83c3d35eb6ce2e076d60ec8b0e3cb40c2e88b2f Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Tue, 16 Mar 2021 10:07:21 -0300 Subject: [PATCH] Ensure Job factories pass the parameters to their created Jobs. --- .../securesms/jobmanager/JobInstantiator.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/JobInstantiator.java b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/JobInstantiator.java index 37cba5e42..7fecdb4f4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/JobInstantiator.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/JobInstantiator.java @@ -14,8 +14,15 @@ class JobInstantiator { } public @NonNull Job instantiate(@NonNull String jobFactoryKey, @NonNull Job.Parameters parameters, @NonNull Data data) { - if (jobFactories.containsKey(jobFactoryKey)) { - return jobFactories.get(jobFactoryKey).create(parameters, data); + Job.Factory factory = jobFactories.get(jobFactoryKey); + if (factory != null) { + Job job = factory.create(parameters, data); + + if (!job.getId().equals(parameters.getId())) { + throw new AssertionError("Parameters not supplied to job during creation"); + } + + return job; } else { throw new IllegalStateException("Tried to instantiate a job with key '" + jobFactoryKey + "', but no matching factory was found."); }