Fix a bug where DefaultPromise.setUncancellable() returns a wrong value

- Fixes #2220
- Its Javadoc says it returns true when the promise is done (but not cancelled) or the promise is uncancellable, but it returns false when the promise is done.