The routine below doesn't find a cached ObjectSpecification with
objectSpecId = "oneid.Account" though it seems to find it successfully
initially. So maybe the cache is being updated via the security module?
@Programmatic
public ObjectSpecification lookupBySpecId(ObjectSpecId objectSpecId) {
final ObjectSpecification objectSpecification =
cache.getByObjectType(objectSpecId);
if(objectSpecification == null) {
// fallback
return loadSpecification(objectSpecId.asString());
}
return objectSpecification;
}
On Mon, Jun 26, 2017 at 10:11 PM, Stephen Cameron <
[email protected]> wrote:
> Hi,
>
> I've created a demo app with Isis 1.14.0 and am adding the security
> module, I get an exception as below that seems to be consistent whatever
> the permissions of the users role are:
>
> It seems a little strange that the SpecificationLoader.loadSpecification()
> method is being passed a class 'objectType' of "oneid.Account" and not the
> full class name.
>
> I'll investigate further tomorrow, but I don' think I have forgotten
> anything in the config of the module.
>
> Caused by: org.apache.isis.core.commons.exceptions.IsisException: No such
> class available: oneid.Account
> at org.apache.isis.core.metamodel.specloader.SpecificationLoader.
> loadSpecification(SpecificationLoader.java:289)
> at org.apache.isis.core.metamodel.specloader.SpecificationLoader.
> lookupBySpecId(SpecificationLoader.java:515)
> at org.apache.isis.viewer.wicket.model.models.EntityModel.
> getSpecificationFor(EntityModel.java:317)
> at org.apache.isis.viewer.wicket.model.models.EntityModel.
> getTypeOfSpecification(EntityModel.java:313)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.
> TabGroupPanel.tabsFor(TabGroupPanel.java:64)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.
> TabGroupPanel.<init>(TabGroupPanel.java:89)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.
> Col.buildGui(Col.java:212)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.
> Col.<init>(Col.java:79)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.
> Row.buildGui(Row.java:69)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.
> Row.<init>(Row.java:54)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.
> BS3GridPanel.buildGui(BS3GridPanel.java:56)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.
> BS3GridPanel.<init>(BS3GridPanel.java:42)
> at org.apache.isis.viewer.wicket.ui.components.entity.selector.links.
> EntityLinksSelectorPanelFactory.createComponent(
> EntityLinksSelectorPanelFactory.java:57)
> at org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract.
> createComponent(ComponentFactoryAbstract.java:98)
> at org.apache.isis.viewer.wicket.viewer.registries.components.
> ComponentFactoryRegistryDefault.createComponent(
> ComponentFactoryRegistryDefault.java:121)
> at org.apache.isis.viewer.wicket.viewer.registries.components.
> ComponentFactoryRegistryDefault.addOrReplaceComponent(
> ComponentFactoryRegistryDefault.java:106)
> at org.apache.isis.viewer.wicket.ui.pages.PageAbstract.
> addComponent(PageAbstract.java:346)
> at org.apache.isis.viewer.wicket.ui.pages.PageAbstract.
> addChildComponents(PageAbstract.java:341)
> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.
> buildPage(EntityPage.java:195)
> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.<
> init>(EntityPage.java:114)
> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.<
> init>(EntityPage.java:82)
> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.<
> init>(EntityPage.java:94)
> at org.apache.isis.viewer.wicket.ui.actionresponse.
> ActionResultResponseType$9.call(ActionResultResponseType.java:159)
> at org.apache.isis.viewer.wicket.ui.actionresponse.
> ActionResultResponseType$9.call(ActionResultResponseType.java:157)
> at org.apache.isis.core.metamodel.adapter.mgr.AdapterManager$
> ConcurrencyChecking.executeWithConcurrencyChecking
> Disabled(AdapterManager.java:88)
>