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 
   -    

Reply via email to