fix: Not write UIDL sync message when RPC handling throws #215
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.
Description
Liferay container is so strict regards
ServletResponse::setContentLength
comparing to normal servlet containers and Apache Pluto portal, thus thePortalUidlRequestHandler
works incorrectly in case of exception in the server-side listener: it writes the error meta info JSON into response, then appends sync UIDL JSON message, then callssetContentLength
with the length of the sync UIDL message. Which in turn leads to an unpredictable JSON sent to client.When this change is applied,
UidlRequestHandler
doesn't write sync UIDL message to the response once the RPC handler execution throws, but instead sends only an error message to the client.No IT tests added, because this is covered by
LiferayErrorHandlingIT
being added afterwards within Liferay tests PR.Fixes #213
Type of change
Checklist
Additional for
Feature
type of change