Hi all.
I have a project that uses isis-addons-security.
So it installs the TenantedAuthorizationFacetDefault
Which is invoked when using wrapped calls in order to evaluate if that action
is allowed or hidden.
That said, I have a test with the following code:
// given
...
final Trait trait =
this.wrap(this.traits).createTrait("outcome_higherLimitIncluded");
this.wrap(trait).upsertScoringRange(-1000, -40, "Bad Result");
Please, notice that the first invocation is wrapped, and it has properly passed.
When the test executes the second invocation, it will fail with a
HiddenException, telling that the user has not bee found.
But the inner problem is that the ServiceInstantiator is returning “null” when
invoking the “execute” method.
See the stack trace right there, when the execution has been paused on
ServiceInstantiator, line 225.
Please am I missing something? It has started to happen today …
Thanks!
Thread [main] (Suspended)
org.apache.isis.core.runtime.services.ServiceInstantiator$2.invoke(java.lang.Object,
java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line:
225
org.apache.isis.applib.services.queryresultscache.QueryResultsCache_$$_jvstd14_3.execute(java.util.concurrent.Callable,
java.lang.Class, java.lang.String, java.lang.Object...) line: not available
org.isisaddons.module.security.facets.TenantedAuthorizationFacetDefault.findApplicationUser(java.lang.String)
line: 158
org.isisaddons.module.security.facets.TenantedAuthorizationFacetDefault.pathsFor(org.apache.isis.core.metamodel.interactions.InteractionContext<?>)
line: 114
org.isisaddons.module.security.facets.TenantedAuthorizationFacetDefault.hides(org.apache.isis.core.metamodel.interactions.VisibilityContext<?
extends org.apache.isis.applib.events.VisibilityEvent>) line: 71
org.apache.isis.core.metamodel.interactions.InteractionUtils.isVisibleResult(org.apache.isis.core.metamodel.facetapi.FacetHolder,
org.apache.isis.core.metamodel.interactions.VisibilityContext<?>) line: 40
org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl(org.apache.isis.core.metamodel.specloader.specimpl.ObjectMemberAbstract).isVisibleResult(org.apache.isis.core.commons.authentication.AuthenticationSession,
org.apache.isis.core.metamodel.adapter.ObjectAdapter,
org.apache.isis.applib.annotation.Where) line: 238
org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl(org.apache.isis.core.metamodel.specloader.specimpl.ObjectMemberAbstract).isVisible(org.apache.isis.core.commons.authentication.AuthenticationSession,
org.apache.isis.core.metamodel.adapter.ObjectAdapter,
org.apache.isis.applib.annotation.Where) line: 233
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.checkVisibility(org.apache.isis.core.metamodel.adapter.ObjectAdapter,
org.apache.isis.core.metamodel.spec.feature.ObjectMember) line: 680
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.handleActionMethod(org.apache.isis.core.metamodel.adapter.ObjectAdapter,
java.lang.Object[], org.apache.isis.core.metamodel.spec.feature.ObjectAction,
org.apache.isis.core.metamodel.specloader.specimpl.ContributeeMember) line: 607
org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.invoke(java.lang.Object,
java.lang.reflect.Method, java.lang.Object[]) line: 263
org.apache.isis.core.wrapper.proxy.ProxyInstantiatorForJavassist$1.invoke(java.lang.Object,
java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]) line:
72
com.tellmegen.domain.model.traits.Trait_$$_jvstd14_7.upsertScoringRange(java.lang.Integer,
java.lang.Integer, java.lang.String) line: not available
com.tellmegen.integtests.domain.model.algorithms.traits.TraitLogicalAlgorithmImplementationTests.outcome_higherLimitIncluded()
line: 127
sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method,
java.lang.Object, java.lang.Object[]) line: not available [native method]
sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object,
java.lang.Object[]) line: 57
sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object,
java.lang.Object[]) line: 43
java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...)
line: 606
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall() line: 50
org.junit.runners.model.FrameworkMethod$1(org.junit.internal.runners.model.ReflectiveCallable).run()
line: 12
org.junit.runners.model.FrameworkMethod.invokeExplosively(java.lang.Object,
java.lang.Object...) line: 47
org.junit.internal.runners.statements.InvokeMethod.evaluate() line: 17
org.junit.internal.runners.statements.RunBefores.evaluate() line: 26
org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2$1.evaluate()
line: 146
org.apache.isis.core.integtestsupport.ExceptionRecognizerTranslate$TranslationStatement.evaluate()
line: 32
org.apache.isis.core.integtestsupport.IntegrationTestAbstract$IsisTransactionRule$1.evaluate()
line: 214
org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate()
line: 239
org.junit.rules.RunRules.evaluate() line: 20
org.junit.runners.BlockJUnit4ClassRunner(org.junit.runners.ParentRunner).runLeaf(org.junit.runners.model.Statement,
org.junit.runner.Description, org.junit.runner.notification.RunNotifier) line:
325
org.junit.runners.BlockJUnit4ClassRunner.runChild(org.junit.runners.model.FrameworkMethod,
org.junit.runner.notification.RunNotifier) line: 78
org.junit.runners.BlockJUnit4ClassRunner.runChild(java.lang.Object,
org.junit.runner.notification.RunNotifier) line: 57
org.junit.runners.ParentRunner$3.run() line: 290
org.junit.runners.ParentRunner$1.schedule(java.lang.Runnable) line: 71
org.junit.runners.BlockJUnit4ClassRunner(org.junit.runners.ParentRunner).runChildren(org.junit.runner.notification.RunNotifier)
line: 288
org.junit.runners.ParentRunner.access$000(org.junit.runners.ParentRunner,
org.junit.runner.notification.RunNotifier) line: 58
org.junit.runners.ParentRunner$2.evaluate() line: 268
org.junit.internal.runners.statements.RunBefores.evaluate() line: 26
org.junit.runners.BlockJUnit4ClassRunner(org.junit.runners.ParentRunner).run(org.junit.runner.notification.RunNotifier)
line: 363
org.eclipse.jdt.internal.junit4.runner.JUnit4TestMethodReference(org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference).run(org.eclipse.jdt.internal.junit.runner.TestExecution)
line: 50
org.eclipse.jdt.internal.junit.runner.TestExecution.run(org.eclipse.jdt.internal.junit.runner.ITestReference[])
line: 38
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(java.lang.String[],
java.lang.String, org.eclipse.jdt.internal.junit.runner.TestExecution) line:
467
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(org.eclipse.jdt.internal.junit.runner.TestExecution)
line: 683
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run() line: 390
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(java.lang.String[])
line: 197