[MGNLREST-156] SwaggerRestDispatcherServlet (re)register endpoint without provider validation. Created: 01/Dec/17 Updated: 25/Dec/17 Resolved: 19/Dec/17 |
|
| Status: | Closed |
| Project: | Magnolia REST Framework |
| Component/s: | tools |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Neutral |
| Reporter: | Dai Ha | Assignee: | Dai Ha |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | 0d | ||
| Time Spent: | 2d | ||
| Original Estimate: | 2d | ||
| Attachments: |
|
||||||||
| Issue Links: |
|
||||||||
| Template: |
|
||||||||
| Acceptance criteria: |
Empty
|
||||||||
| Task DoD: |
[ ]*
Doc/release notes changes? Comment present?
[ ]*
Downstream builds green?
[ ]*
Solution information and context easily available?
[ ]*
Tests
[ ]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
||||||||
| Bug DoR: |
[ ]*
Steps to reproduce, expected, and actual results filled
[ ]*
Affected version filled
|
||||||||
| Sprint: | Saigon 124, Saigon 125, Saigon 126, Saigon 127 | ||||||||
| Story Points: | 3 | ||||||||
| Description |
|
We have issue with SwaggerRestDispatcherServlet which executes delegation calls to info.magnolia.rest.RestDispatcherServlet methods. Unfortunately, those call is not secured with provider.isValid check --> endpoint ends up failed to re-register. Prefer: Stack trace: 2017-12-13 10:41:49,649 WARN fig.source.yaml.decoration.YamlDefinitionDecorator:
Severity type: MAJOR
Title: /: [Definition decoration] - Failed to parse decoration data from [/1_decor/decorations/rest-content-delivery/restEndpoints/restDelivery.yaml]
Problem details: Illegal state: Only support maps with String keys 0 in {0=mgnl:page, 1=mgnl:area, 2=mgnl:component}
2017-12-13 10:41:49,653 ERROR info.magnolia.event.SimpleEventBus : Exception caught when dispatching info.magnolia.rest.registry.EndpointDefinitionRegistryEvent with info.magnolia.rest.tools.SwaggerRestDispatcherServlet eventHandler.
info.magnolia.objectfactory.MgnlInstantiationException: Unable to resolve parameters for constructor public info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpoint(info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpointDefinition,javax.inject.Provider). Unresolved parameter(s) are: 1st parameter which is of type info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpointDefinition
at info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:97) ~[magnolia-core-5.6.jar:?]
at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.java:132) ~[magnolia-core-5.6.jar:?]
at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.java:119) ~[magnolia-core-5.6.jar:?]
at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstance(GuiceComponentProvider.java:114) ~[magnolia-core-5.6.jar:?]
at info.magnolia.rest.RestDispatcherServlet.instantiateEndpoint(RestDispatcherServlet.java:211) ~[magnolia-rest-integration-2.0.jar:?]
at info.magnolia.rest.RestDispatcherServlet.registerEndpoint(RestDispatcherServlet.java:189) ~[magnolia-rest-integration-2.0.jar:?]
at info.magnolia.rest.RestDispatcherServlet.onEndpointReregistered(RestDispatcherServlet.java:155) ~[magnolia-rest-integration-2.0.jar:?]
at info.magnolia.rest.tools.SwaggerRestDispatcherServlet.onEndpointReregistered(SwaggerRestDispatcherServlet.java:161) ~[magnolia-rest-tools-2.0.jar:?]
at info.magnolia.rest.registry.EndpointDefinitionRegistryEvent.dispatch(EndpointDefinitionRegistryEvent.java:106) ~[magnolia-rest-integration-2.0.jar:?]
at info.magnolia.rest.registry.EndpointDefinitionRegistryEvent.dispatch(EndpointDefinitionRegistryEvent.java:55) ~[magnolia-rest-integration-2.0.jar:?]
at info.magnolia.event.SimpleEventBus.fireEvent(SimpleEventBus.java:75) ~[magnolia-core-5.6.jar:?]
at info.magnolia.rest.registry.EndpointDefinitionRegistry.lambda$addDecorator$8(EndpointDefinitionRegistry.java:137) ~[magnolia-rest-integration-2.0.jar:?]
at java.util.Optional.ifPresent(Optional.java:159) ~[?:1.8.0_131]
at info.magnolia.rest.registry.EndpointDefinitionRegistry.addDecorator(EndpointDefinitionRegistry.java:137) ~[magnolia-rest-integration-2.0.jar:?]
at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource$DefinitionDecoratorResolutionFunction.doWith(AbstractFileResourceConfigurationSource.java:302) ~[magnolia-configuration-5.6.jar:?]
at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource$DefinitionDecoratorResolutionFunction.doWith(AbstractFileResourceConfigurationSource.java:290) ~[magnolia-configuration-5.6.jar:?]
at info.magnolia.resourceloader.util.VoidFunction.apply(VoidFunction.java:49) ~[magnolia-resource-loader-5.6.jar:?]
at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource.lambda$startDecoration$3(AbstractFileResourceConfigurationSource.java:190) ~[magnolia-configuration-5.6.jar:?]
at info.magnolia.resourceloader.layered.LayeredResourceOrigin$RelayingChangeHandler.onResourceChanged(LayeredResourceOrigin.java:285) [magnolia-resource-loader-5.6.jar:?]
at info.magnolia.resourceloader.AbstractResourceOrigin.dispatchResourceChange(AbstractResourceOrigin.java:132) [magnolia-resource-loader-5.6.jar:?]
at info.magnolia.resourceloader.file.FileWatcherCallback.dispatchResourceChange(FileWatcherCallback.java:117) [magnolia-resource-loader-5.6.jar:?]
at info.magnolia.resourceloader.file.FileWatcherCallback.modified(FileWatcherCallback.java:88) [magnolia-resource-loader-5.6.jar:?]
at info.magnolia.dirwatch.DirectoryWatcher.processEvent(DirectoryWatcher.java:307) [magnolia-resource-loader-5.6.jar:?]
at info.magnolia.dirwatch.DirectoryWatcher.run(DirectoryWatcher.java:253) [magnolia-resource-loader-5.6.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_131]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Environments to re-produce: Step to reproduce: |
| Comments |
| Comment by Dai Ha [ 14/Dec/17 ] |
|
Comparison with/without rest-tool module: With rest-tool: + on decoration added -> info.magnolia.rest.RestDispatcherServlet#onEndpointReregistered Withou rest-tool: + on decoration added -> info.magnolia.rest.RestDispatcherServlet#onEndpointReregistered So: |
| Comment by Dai Ha [ 19/Dec/17 ] |
|
Close this ticket as Won't fix as: |