Fix Notification Text Initialization #2926
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Any user suspected of farming GitHub activity with crypto purposes will get banned. Submitting broken code wastes the contributors' time, who have to spend their free time reviewing, fixing, and testing code that does not even compile breaks other features, or does not introduce any useful changes. I appreciate your understanding.
Currently, there is a bug where the notifications for updating packages (and likely related operations) have the text "THIS NEEDS TO BE REDEFINED ON THE CONSTRUCTOR". After some digging, it looks like this is because
INSTALLING_STRING
is set in the constructors ofAbstractOperation
implementations, butAbstractOperation
tasks are started asynchronously by thePackageOperation
andSourceOperation
constructors. This means that the tasks are started before the subclass constructor is run, leading to a race condition. This PR moves the string initialization in all the places I could find it to theInitialize()
function, which is always run before the task.I was able to successfully test this for package updates and removing a manager source. However, because I am not familiar enough with the codebase to setup a reliable way to show an arbitrary notification, and the actual notifications disappear fairly quickly, it is difficult for me to run more in-depth tests on all cases.
I didn't find an open issue for this, but if there is one, feel free to link it!