[ECOMMERCE-154] Should prevent NPE for unconfig implementation class in definition Created: 01/Mar/19  Updated: 11/Mar/19  Resolved: 11/Mar/19

Status: Closed
Project: E-commerce
Component/s: None
Affects Version/s: None
Fix Version/s: 1.0

Type: Bug Priority: Neutral
Reporter: Oanh Thai Hoang Assignee: Evzen Fochr
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

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
Epic Link: Access the product catalogs
Sprint: Add-Ons 7
Story Points: 3

 Description   

Step to reproduce:

  • Prepare one yaml file that do not config #byParentCategoryId property

Example:

 


class: info.magnolia.ecommerce.api.definition.DefaultEcommerceDefinition
type: Magento
implementation:
  products:
    all: info.magnolia.ecommerce.provider.magento.service.products.All
    byId: info.magnolia.ecommerce.provider.magento.service.products.ById
    byCategoryId: info.magnolia.ecommerce.provider.magento.service.products.ByCategoryId
  categories:
    all: info.magnolia.ecommerce.provider.magento.service.categories.All
    byId: info.magnolia.ecommerce.provider.magento.service.categories.ById
#    byParentCategoryId: info.magnolia.ecommerce.provider.magento.service.categories.ByParentCategoryId
    byProductId: info.magnolia.ecommerce.provider.magento.service.categories.ByProductId
connections:
  connectionb:
    authUrl: http://demo-acm-2.bird.eu
    baseUrl: http://demo-acm-2.bird.eu
    enabled: false
    credentials:
      username: demo
      password: demo123 

Received NPE log:


 2019-03-01 09:28:04,400 ERROR info.magnolia.dirwatch.DirectoryWatcher           : Exception when executing callback for test2.yaml: Null pointer2019-03-01 09:28:04,400 ERROR info.magnolia.dirwatch.DirectoryWatcher           : Exception when executing callback for test2.yaml: Null pointerjava.lang.NullPointerException: null at java.lang.Class.forName0(Native Method) ~[?:1.8.0_181] at java.lang.Class.forName(Class.java:264) ~[?:1.8.0_181] at info.magnolia.ecommerce.api.EcommerceConnectionProvider.initialiseConnection(EcommerceConnectionProvider.java:122) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?] at info.magnolia.ecommerce.api.EcommerceConnectionProvider.lambda$initialiseAllConnections$1(EcommerceConnectionProvider.java:90) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:1.8.0_181] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_181] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) ~[?:1.8.0_181] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_181] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_181] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:1.8.0_181] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:1.8.0_181] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_181] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:1.8.0_181] at info.magnolia.ecommerce.api.EcommerceConnectionProvider.initialiseAllConnections(EcommerceConnectionProvider.java:90) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:1.8.0_181] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_181] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) ~[?:1.8.0_181] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_181] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_181] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:1.8.0_181] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:1.8.0_181] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_181] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:1.8.0_181] at info.magnolia.ecommerce.api.EcommerceConnectionProvider.lambda$new$0(EcommerceConnectionProvider.java:80) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?] at info.magnolia.ecommerce.api.EcommerceDefinitionRegistry.lambda$sendModificationEvent$0(EcommerceDefinitionRegistry.java:80) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?] at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:1.8.0_181] at info.magnolia.ecommerce.api.EcommerceDefinitionRegistry.sendModificationEvent(EcommerceDefinitionRegistry.java:80) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?] at info.magnolia.ecommerce.api.EcommerceDefinitionRegistry.register(EcommerceDefinitionRegistry.java:69) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?] at info.magnolia.config.source.yaml.YamlConfigurationSource.loadAndRegister(YamlConfigurationSource.java:142) ~[magnolia-configuration-6.0.1-SNAPSHOT.jar:?] at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource.lambda$start$2(AbstractFileResourceConfigurationSource.java:164) ~[magnolia-configuration-6.0.1-SNAPSHOT.jar:?] at info.magnolia.resourceloader.layered.LayeredResourceOrigin$RelayingChangeHandler.onResourceChanged(LayeredResourceOrigin.java:285) ~[magnolia-resource-loader-6.0.1-SNAPSHOT.jar:?] at info.magnolia.resourceloader.AbstractResourceOrigin.dispatchResourceChange(AbstractResourceOrigin.java:132) ~[magnolia-resource-loader-6.0.1-SNAPSHOT.jar:?] at info.magnolia.resourceloader.file.FileWatcherCallback.dispatchResourceChange(FileWatcherCallback.java:119) ~[magnolia-resource-loader-6.0.1-SNAPSHOT.jar:?] at info.magnolia.resourceloader.file.FileWatcherCallback.modified(FileWatcherCallback.java:90) ~[magnolia-resource-loader-6.0.1-SNAPSHOT.jar:?] at info.magnolia.dirwatch.DirectoryWatcher.processEvent(DirectoryWatcher.java:312) ~[magnolia-resource-loader-6.0.1-SNAPSHOT.jar:?] at info.magnolia.dirwatch.DirectoryWatcher.run(DirectoryWatcher.java:256) [magnolia-resource-loader-6.0.1-SNAPSHOT.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_181] at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) [?:1.8.0_181] at java.util.concurrent.FutureTask.run(FutureTask.java) [?:1.8.0_181] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]

 

Or when starting tomcat: ecommerce-api module can't start

 2019-03-01 09:33:41,541 ERROR info.magnolia.module.ModuleManagerImpl            : Can't start module ecommerce-api2019-03-01 09:33:41,541 ERROR info.magnolia.module.ModuleManagerImpl            : Can't start module ecommerce-apijava.lang.NullPointerException: null at java.lang.Class.forName0(Native Method) ~[?:1.8.0_181] at java.lang.Class.forName(Class.java:264) ~[?:1.8.0_181] at info.magnolia.ecommerce.api.EcommerceConnectionProvider.initialiseConnection(EcommerceConnectionProvider.java:122) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?] at info.magnolia.ecommerce.api.EcommerceConnectionProvider.lambda$initialiseAllConnections$1(EcommerceConnectionProvider.java:90) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:1.8.0_181] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_181] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) ~[?:1.8.0_181] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_181] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_181] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:1.8.0_181] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:1.8.0_181] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_181] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:1.8.0_181] at info.magnolia.ecommerce.api.EcommerceConnectionProvider.initialiseAllConnections(EcommerceConnectionProvider.java:90) ~[magnolia-ecommerce-api-1.0-SNAPSHOT.jar:?]

 

 


Generated at Mon Feb 12 01:41:23 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.