Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCU-2455

Developing a custom content editor app tutorial missing clipboard component step

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Neutral Neutral
    • None
    • 6.2
    • content
    • None

      The instructions for developing a custom content editor app (stories app) doesn't cover the part where you need to declare ContentClipboard component in the proper scope.

        <components>
          <id>app-my-stories-browser</id>
          <component>
            <type>info.magnolia.ui.framework.ContentClipboard</type>
            <implementation>info.magnolia.ui.contentapp.action.clipboard.JcrClipboard</implementation>
          </component>
        </components>
      

      Failing to do so leads to this error:

      2022-05-10 17:57:22,675 ERROR agnolia.ui.framework.app.AppInstanceControllerImpl: Sub-app [browser] of app [my-stories] failed to start
      info.magnolia.objectfactory.MgnlInstantiationException: Failed to create instance of [class info.magnolia.ui.contentapp.browser.Browser]
      	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.java:138) ~[magnolia-core-6.2.18.jar:?]
      ...
      ...
      Caused by: java.lang.UnsupportedOperationException
      	at info.magnolia.ui.framework.ContentClipboard.getContents(ContentClipboard.java:66) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.framework.ContentClipboard.isEmpty(ContentClipboard.java:59) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.contentapp.action.clipboard.CanPasteContentRule.isAvailable(CanPasteContentRule.java:59) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.availability.DefaultAvailabilityChecker.isAvailable(DefaultAvailabilityChecker.java:80) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.availability.DefaultAvailabilityChecker.lambda$isAvailable$1(DefaultAvailabilityChecker.java:64) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90) ~[?:1.8.0_211]
      	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_211]
      	at java.util.LinkedList$LLSpliterator.tryAdvance(LinkedList.java:1249) ~[?:1.8.0_211]
      	at java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:731) ~[?:1.8.0_211]
      	at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) ~[?:1.8.0_211]
      	at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) ~[?:1.8.0_211]
      	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) ~[?:1.8.0_211]
      	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_211]
      	at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230) ~[?:1.8.0_211]
      	at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196) ~[?:1.8.0_211]
      	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_211]
      	at java.util.stream.ReferencePipeline.allMatch(ReferencePipeline.java:454) ~[?:1.8.0_211]
      	at info.magnolia.ui.availability.DefaultAvailabilityChecker.isAvailable(DefaultAvailabilityChecker.java:64) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.contentapp.browser.actions.ActionbarPresenter.lambda$getAvailabilityFilter$4(ActionbarPresenter.java:156) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.contentapp.browser.actions.ActionbarPresenter.isEnabledAction(ActionbarPresenter.java:130) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.contentapp.browser.actions.ActionbarView.lambda$null$1(ActionbarView.java:127) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at java.util.Optional.ifPresent(Optional.java:159) ~[?:1.8.0_211]
      	at info.magnolia.ui.contentapp.browser.actions.ActionbarView.lambda$null$2(ActionbarView.java:125) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:1.8.0_211]
      	at info.magnolia.ui.contentapp.browser.actions.ActionbarView.lambda$null$3(ActionbarView.java:116) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:1.8.0_211]
      	at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1080) ~[?:1.8.0_211]
      	at info.magnolia.ui.contentapp.browser.actions.ActionbarView.lambda$initialiseActionbar$4(ActionbarView.java:112) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:1.8.0_211]
      	at info.magnolia.ui.contentapp.browser.actions.ActionbarView.initialiseActionbar(ActionbarView.java:109) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.contentapp.browser.actions.ActionbarView.<init>(ActionbarView.java:85) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_211]
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_211]
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_211]
      	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_211]
      	at info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:129) ~[magnolia-core-6.2.18.jar:?]
      	at info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:99) ~[magnolia-core-6.2.18.jar:?]
      	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.java:134) ~[magnolia-core-6.2.18.jar:?]
      	at info.magnolia.ui.framework.ioc.UiComponentProvider.lambda$newInstanceWithParameterResolvers$3(UiComponentProvider.java:137) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.framework.ioc.UiComponentProvider.provideInCurrentScope(UiComponentProvider.java:177) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.framework.ioc.UiComponentProvider.newInstanceWithParameterResolvers(UiComponentProvider.java:137) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.framework.ioc.UiComponentProvider.newInstance(UiComponentProvider.java:128) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.UIComponent.create(UIComponent.java:139) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.contentapp.browser.Browser.layout(Browser.java:142) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at info.magnolia.ui.contentapp.browser.Browser.<init>(Browser.java:114) ~[magnolia-ui-framework-6.2.18.jar:?]
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_211]
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_211]
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_211]
      	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_211]
      	at info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:129) ~[magnolia-core-6.2.18.jar:?]
      	at info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:99) ~[magnolia-core-6.2.18.jar:?]
      	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.java:134) ~[magnolia-core-6.2.18.jar:?]
      

        Acceptance criteria

              amansell Alex Mansell
              rgange Richard Gange
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR