[CFGUI-4] Broken component configuration leads to NPE Created: 25/Aug/15 Updated: 12/Aug/16 Resolved: 12/Aug/16 |
|
| Status: | Closed |
| Project: | Definitions App |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Neutral |
| Reporter: | Andreas Weder | Assignee: | Aleksandr Pchelintcev |
| Resolution: | Obsolete | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
| 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
|
| Description |
|
I've played with broken configurations to have a look at the current implementation of the "invalid" setting. In one example, I've created a fairly broken YAML configuration for a new component (see attached file Note that the NPE does NOT show up while parsing the broken config file nor when opening the app - it appears when I drill-down into the broken definition in the "Overview" app. The relevant excerpt from the log file: 2015-08-25 11:04:49,027 WARN info.magnolia.config.map2bean.Map2BeanTransformer : Property frm not found in class class info.magnolia.ui.dialog.definition.ConfiguredFormDialogDefinition
2015-08-25 11:04:49,029 INFO agnolia.config.source.yaml.YamlConfigurationSource: Registered DefinitionMetadataBuilder.DefinitionMetadataImpl(type=DIALOG, referenceId=hello-magnolia:components/broken, name=broken, module=hello-magnolia, location=/hello-magnolia/dialogs/components/broken.yaml, relativeLocation=components/broken) from LayeredResource{path='/hello-magnolia/dialogs/components/broken.yaml', layeredResources=[FileSystemResource{origin=filesystem,path=/hello-magnolia/dialogs/components/broken.yaml,file}]}
2015-08-25 11:06:24,502 ERROR .magnolia.ui.admincentral.AdmincentralErrorHandler: AdmincentralUI has encountered an unhandled exception.
java.lang.NullPointerException
at info.magnolia.config.source.raw.DefinitionRawViewMapWrapper.deriveValue(DefinitionRawViewMapWrapper.java:80)
at info.magnolia.config.source.raw.DefinitionRawViewMapWrapper.access$100(DefinitionRawViewMapWrapper.java:49)
at info.magnolia.config.source.raw.DefinitionRawViewMapWrapper$ToValue.apply(DefinitionRawViewMapWrapper.java:87)
at info.magnolia.config.source.raw.DefinitionRawViewMapWrapper$ToValue.apply(DefinitionRawViewMapWrapper.java:84)
at com.google.common.collect.Iterators$8.transform(Iterators.java:799)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:271)
at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:226)
at com.google.common.collect.FluentIterable.toList(FluentIterable.java:373)
at info.magnolia.configuration.app.overview.data.DefinitionRawViewId.getChildren(DefinitionRawViewId.java:75)
at info.magnolia.configuration.app.overview.data.DefinitionProviderConfigDataSource.getChildIds(DefinitionProviderConfigDataSource.java:104)
at info.magnolia.configuration.app.overview.data.DefinitionProviderConfigDataSource.getChildIds(DefinitionProviderConfigDataSource.java:73)
at info.magnolia.configuration.app.overview.data.ConfigurationContainer.getChildren(ConfigurationContainer.java:95)
at info.magnolia.configuration.app.overview.data.ConfigurationContainer.setCollapsed(ConfigurationContainer.java:69)
at com.vaadin.ui.TreeTable$CollapsibleStrategy.toggleChildVisibility(TreeTable.java:130)
at com.vaadin.ui.TreeTable.toggleChildVisibility(TreeTable.java:563)
at com.vaadin.ui.TreeTable.changeVariables(TreeTable.java:429)
at info.magnolia.ui.vaadin.grid.MagnoliaTreeTable.changeVariables(MagnoliaTreeTable.java:86)
at com.vaadin.server.communication.ServerRpcHandler.changeVariables(ServerRpcHandler.java:486)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:305)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:184)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:92)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350)
at info.magnolia.ui.admincentral.AdmincentralVaadinServlet.service(AdmincentralVaadinServlet.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:148)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:69)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:67)
at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:174)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:74)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:80)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.module.site.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:119)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.multisite.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:105)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:73)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:127)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:63)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.personalization.preview.filter.PreviewFilter.doFilter(PreviewFilter.java:92)
at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:61)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:61)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:61)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:112)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:128)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107)
at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67)
at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
|