Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Response post processing shouldn't happen if the content type isn't HTML #9144

Closed
espen42 opened this issue Oct 12, 2021 · 2 comments
Closed
Assignees
Labels
Projects
Milestone

Comments

@espen42
Copy link

espen42 commented Oct 12, 2021

It appears some (or all?) responses where body and contentType are javascript are still postprocessed. This causes an error for some JS (but not all), see starter-nextjs #81

@espen42 espen42 assigned espen42 and alansemenov and unassigned espen42 Oct 12, 2021
@espen42
Copy link
Author

espen42 commented Oct 12, 2021

@rymsha

@rymsha
Copy link
Contributor

rymsha commented Oct 12, 2021

Error is caused by incompatibility to parse the response as HTML
site mapping controller post-processor does not take into account that the response may be not HTML.

The workaround is to use postProcess : false in response

Caused by: com.enonic.xp.portal.impl.rendering.RenderException: Failed to post process document
	at com.enonic.xp.portal.impl.parser.HtmlBlockParser.parse(HtmlBlockParser.java:41)
	at com.enonic.xp.portal.impl.postprocess.PostProcessEvaluator.evaluateInstructions(PostProcessEvaluator.java:55)
	at com.enonic.xp.portal.impl.postprocess.PostProcessorImpl.processResponseInstructions(PostProcessorImpl.java:67)
	at com.enonic.xp.portal.impl.rendering.PostProcessingRenderer.render(PostProcessingRenderer.java:26)
	at com.enonic.xp.portal.impl.rendering.RendererDelegateImpl.lambda$render$1(RendererDelegateImpl.java:40)
	at java.base/java.util.Optional.map(Optional.java:265)
	at com.enonic.xp.portal.impl.rendering.RendererDelegateImpl.render(RendererDelegateImpl.java:40)
	at com.enonic.xp.portal.impl.handler.mapping.MappingHandlerWorker.renderController(MappingHandlerWorker.java:70)
	at com.enonic.xp.portal.impl.handler.mapping.MappingHandlerWorker.execute(MappingHandlerWorker.java:54)
	at com.enonic.xp.portal.impl.handler.mapping.MappingHandler.handleController(MappingHandler.java:95)
	at com.enonic.xp.portal.impl.handler.mapping.MappingHandler.doHandle(MappingHandler.java:69)
	at com.enonic.xp.portal.impl.handler.mapping.MappingHandler.doHandle(MappingHandler.java:24)
	at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:66)
	at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:30)
	at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
	at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:30)
	at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
	at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:30)
	at com.enonic.xp.portal.handler.BasePortalHandler.doHandle(BasePortalHandler.java:46)
	... 111 common frames omitted

Simple JS is just more-ore-less valid HTML and can be "processed", others are too complex for html parser.
There is no reason to do that for non-html responses., So fix is to disable post-processing for non-html responses.

@rymsha rymsha assigned rymsha and unassigned alansemenov Oct 12, 2021
@rymsha rymsha added this to Needs triage in Bugs via automation Oct 12, 2021
@rymsha rymsha moved this from Needs triage to Low priority in Bugs Oct 12, 2021
@rymsha rymsha added this to the 7.8.0 milestone Oct 12, 2021
@rymsha rymsha added the Bug label Oct 12, 2021
Bugs automation moved this from Low priority to Closed Oct 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Bugs
Closed
Development

No branches or pull requests

3 participants