Hi to all.
Some weeks ago a commit introduced to the WrapperFactory the method:
WrapperFactory.wrapSkipRules(domainObject).actionName
that executes the action despite being hidden or disabled.
Despite working well on most situations, I've just found a case where it fails
to execute the action, acting as a "normal" wrap (considering the Disabled and
Hidden rules):
// {{ ComputedValue (action)
@Hidden
@XMSAction(locales = @XMSLocale(locale = "es", caption = "Valor Calculado"))
public ImpactLevel computedValue() {
...
}
And failing when executing:
assertThat(this.service(WrapperFactory.class).wrapSkipRules(asset).computedValue(),
is(impactLevel));
With the stacktrace:
org.apache.isis.applib.services.wrapper.HiddenException: Reason: Always hidden.
Identifier: com.xms.framework.architecture.domain.model.Asset#computedValue()
at
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.toException(DomainObjectInvocationHandler.java:626)
at
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.notifyListenersAndVetoIfRequired(DomainObjectInvocationHandler.java:594)
at
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.checkVisibility(DomainObjectInvocationHandler.java:578)
at
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.invoke(DomainObjectInvocationHandler.java:217)
at
org.apache.isis.core.wrapper.proxy.ProxyInstantiatorForJavassist$1.invoke(ProxyInstantiatorForJavassist.java:52)
at
com.xms.framework.architecture.domain.model.business.BusinessProcess_$$_jvsta1_16.computedValue(BusinessProcess_$$_jvsta1_16.java)
at
com.xms.framework.architecture.integration.glue.business.old.AssetGlue.the_asset_with_name_has_the_asset_value(AssetGlue.java:113)
at ✽.Then the asset with name "EAM-ASS-VAL-010-010 - Business Process"
should have the asset value
"null"(com/xms/framework/architecture/integration/specs/base/EAM-ASS-VAL -
Enterprise Architecture Model - Assets - Valuation.feature:17)
Seems there must be a bug regarding actions without params, or something
strange condition?
Thanks,
Oscar