Uploaded image for project: 'E-commerce'
  1. E-commerce
  2. ECOMMERCE-154

Should prevent NPE for unconfig implementation class in definition

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Neutral
    • 1.0
    • None
    • None
    • None

    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:?]

       

       

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              efochr Evzen Fochr
              oanh.thai Oanh Thai Hoang
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Checklists

                  Bug DoR
                  Task DoD