[MGNLDAM-612] ImportAssetZipCommand can't be reinstantiated by N2B Created: 13/Aug/15  Updated: 19/Mar/18  Resolved: 21/Apr/16

Status: Closed
Project: Magnolia DAM Module
Component/s: None
Affects Version/s: 2.1
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: Milan Divilek Assignee: Hieu Nguyen Duc
Resolution: Obsolete Votes: 1
Labels: None
Remaining Estimate: 3d
Time Spent: 0d
Original Estimate: 3d

Issue Links:
Cloners
is cloned by MGNLUI-3684 CLONE - ImportZipCommand can't be rei... Closed
dependency
depends upon MAGNOLIA-6203 Inject the Context to ContextLocalePr... Closed
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
Date of First Response:
Sprint: Saigon 40
Story Points: 3

 Description   

Any change in configuration of any command makes the importAssetZip command unusable. This is due to N2B instantiation of info.magnolia.dam.app.commands.ImportAssetZipCommand. It tries to inject SimpleTranslator but info.magnolia.i18nsystem.TranslationService cannot be injected outside of MgnlContext.

1) Error in custom provider, java.lang.IllegalStateException: MgnlContext is not set for this thread
  at info.magnolia.objectfactory.guice.GuiceContextAndScopesConfigurer.configure(GuiceContextAndScopesConfigurer.java:60)
  while locating info.magnolia.context.Context
    for parameter 0 at info.magnolia.i18nsystem.ContextLocaleProvider.<init>(ContextLocaleProvider.java:50)
  while locating info.magnolia.i18nsystem.ContextLocaleProvider
  while locating info.magnolia.i18nsystem.LocaleProvider
    for parameter 1 at info.magnolia.i18nsystem.SimpleTranslator.<init>(SimpleTranslator.java:51)
  while locating info.magnolia.i18nsystem.SimpleTranslator

1 error
	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987)
	at info.magnolia.objectfactory.guice.GuiceParameterResolver.resolveParameter(GuiceParameterResolver.java:74)
	at info.magnolia.objectfactory.ObjectManufacturer.resolveParameter(ObjectManufacturer.java:155)
	at info.magnolia.objectfactory.ObjectManufacturer.resolveParameters(ObjectManufacturer.java:132)
	at info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:75)
	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.java:121)
	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstance(GuiceComponentProvider.java:107)
	at info.magnolia.jcr.node2bean.impl.Node2BeanTransformerImpl.newBeanInstance(Node2BeanTransformerImpl.java:246)
	... 14 more
Caused by: java.lang.IllegalStateException: MgnlContext is not set for this thread
	at info.magnolia.context.MgnlContext.getInstance(MgnlContext.java:303)
	at info.magnolia.objectfactory.guice.GuiceContextAndScopesConfigurer$1.get(GuiceContextAndScopesConfigurer.java:63)
	at info.magnolia.objectfactory.guice.GuiceContextAndScopesConfigurer$1.get(GuiceContextAndScopesConfigurer.java:60)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
	... 21 more
2015-08-13 14:05:26,588 WARN  magnolia.jcr.node2bean.impl.Node2BeanProcessorImpl: can't instantiate bean of type info.magnolia.dam.app.commands.ImportAssetZipCommand for node /modules/dam-app/commands/dam/importAssetZip


 Comments   
Comment by Aleksandr Pchelintcev [ 21/Apr/16 ]

The linked issue MAGNOLIA-6203 improves the situation with Context injection into a LocaleResolver and => cures this one as well

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