Hi, I have encountered suspect behavior in isis when it is trying to construct a domain object. The problem is that it is not consistently the same across different builds of the system. What is happening is that some Domains objects specification is not found in the cache of SpecificationLoader. In SpecificationLoader.java the lookupBySpecId gets a inpout ObjectSpecId of "release.Person_Job". It checks the cache if this object definition is there. Initially this cache size is 283 and the getByObjectType method finds the definition. But after a while the definition get's removed from the cache and the size decreases to 281.
getByObjectType methods then returns null and the loadSpecification method is then called called . This tries to get the Class definition using the className : "release.Person_Job" . This fails and the method throws a "No such class available". The problem appears to be that the class definition is removed from the cache of SpecificationLoader and not reloaded into the cache afterwards for some reason. Other domain objects that is loaded is done using the fully qualified class name. In this case it is not. Here is the stacktrace : - org.apache.isis.core.commons.exceptions.IsisException - No such class available: release.Person_Job - org.apache.isis.core.metamodel.specloader.SpecificationLoader#loadSpecification(SpecificationLoader.java:289) - org.apache.isis.core.metamodel.specloader.SpecificationLoader#lookupBySpecId(SpecificationLoader.java:515) - org.apache.isis.viewer.wicket.model.models.EntityModel#getSpecificationFor(EntityModel.java:291) - org.apache.isis.viewer.wicket.model.models.EntityModel#getTypeOfSpecification(EntityModel.java:287) - org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.TabGroupPanel#tabsFor(TabGroupPanel.java:62) - org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.TabGroupPanel#<init>(TabGroupPanel.java:87) - org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.Col#buildGui(Col.java:213) - org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.Col#<init>(Col.java:79) - org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.Row#buildGui(Row.java:69) - org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.Row#<init>(Row.java:53) - org.apache.isis.viewer.wicket.ui.components.layout.bs3.BS3GridPanel#buildGui(BS3GridPanel.java:53) - org.apache.isis.viewer.wicket.ui.components.layout.bs3.BS3GridPanel#<init>(BS3GridPanel.java:42) - org.apache.isis.viewer.wicket.ui.components.entity.selector.links.EntityLinksSelectorPanelFactory#createComponent(EntityLinksSelectorPanelFactory.java:57) - org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract#createComponent(ComponentFactoryAbstract.java:98) - org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault#createComponent(ComponentFactoryRegistryDefault.java:121) - org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault#addOrReplaceComponent(ComponentFactoryRegistryDefault.java:106) - org.apache.isis.viewer.wicket.ui.pages.PageAbstract#addComponent(PageAbstract.java:404) - org.apache.isis.viewer.wicket.ui.pages.PageAbstract#addChildComponents(PageAbstract.java:399) - org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage#buildPage(EntityPage.java:182) - org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage#<init>(EntityPage.java:115) - org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage#<init>(EntityPage.java:83) - org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage#<init>(EntityPage.java:64) - sun.reflect.NativeConstructorAccessorImpl#newInstance0(NativeConstructorAccessorImpl.java:-2) - sun.reflect.NativeConstructorAccessorImpl#newInstance(NativeConstructorAccessorImpl.java:62) - sun.reflect.DelegatingConstructorAccessorImpl#newInstance(DelegatingConstructorAccessorImpl.java:45) - java.lang.reflect.Constructor#newInstance(Constructor.java:423) - org.apache.wicket.session.DefaultPageFactory#newPage(DefaultPageFactory.java:171) - org.apache.wicket.session.DefaultPageFactory#newPage(DefaultPageFactory.java:99) - org.apache.wicket.DefaultMapperContext#newPageInstance(DefaultMapperContext.java:106) - org.apache.wicket.core.request.handler.PageProvider#resolvePageInstance(PageProvider.java:271) - org.apache.wicket.core.request.handler.PageProvider#getPageInstance(PageProvider.java:169) - org.apache.wicket.request.handler.render.PageRenderer#getPage(PageRenderer.java:78) - org.apache.wicket.request.handler.render.WebPageRenderer#renderPage(WebPageRenderer.java:102) - org.apache.wicket.request.handler.render.WebPageRenderer#respond(WebPageRenderer.java:195) - org.apache.wicket.core.request.handler.RenderPageRequestHandler#respond(RenderPageRequestHandler.java:175) - org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:895) - org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64) - org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:265) - org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:222) - org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:293) - org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:261) - org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:203) - org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:284) - org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1621) - org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter#doFilter(IsisLogOnExceptionFilter.java:52) - org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1621) - org.apache.shiro.web.servlet.AbstractShiroFilter#executeChain(AbstractShiroFilter.java:449) - org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(AbstractShiroFilter.java:365) - org.apache.shiro.subject.support.SubjectCallable#doCall(SubjectCallable.java:90) - org.apache.shiro.subject.support.SubjectCallable#call(SubjectCallable.java:83) - org.apache.shiro.subject.support.DelegatingSubject#execute(DelegatingSubject.java:383) - org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInternal(AbstractShiroFilter.java:362) - org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(OncePerRequestFilter.java:125) - org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1613) - org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:541) - org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:143) - org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:548) - org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:132) - org.eclipse.jetty.server.handler.ScopedHandler#nextHandle(ScopedHandler.java:190) - org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:1593) - org.eclipse.jetty.server.handler.ScopedHandler#nextHandle(ScopedHandler.java:188) - org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:1239) - org.eclipse.jetty.server.handler.ScopedHandler#nextScope(ScopedHandler.java:168) - org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:481) - org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:1562) - org.eclipse.jetty.server.handler.ScopedHandler#nextScope(ScopedHandler.java:166) - org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:1141) - org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:141) - org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:132) - org.eclipse.jetty.server.Server#handle(Server.java:564) - org.eclipse.jetty.server.HttpChannel#handle(HttpChannel.java:320) - org.eclipse.jetty.server.HttpConnection#onFillable(HttpConnection.java:251) - org.eclipse.jetty.io.AbstractConnection$ReadCallback#succeeded(AbstractConnection.java:279) - org.eclipse.jetty.io.FillInterest#fillable(FillInterest.java:110) - org.eclipse.jetty.io.ChannelEndPoint$2#run(ChannelEndPoint.java:124) - org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:672) - org.eclipse.jetty.util.thread.QueuedThreadPool$2#run(QueuedThreadPool.java:590) - java.lang.Thread#run(Thread.java:745) ThanksGerrie Myburgh Powered by: - Apache Isis ™ - About - Change theme -
