You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by james agada <ok...@gmail.com> on 2013/09/14 21:16:13 UTC

What is this error about?

   - java.util.ConcurrentModificationException
   -
   -
   java.util.AbstractList$Itr#checkForComodification(AbstractList.java:372)
   - java.util.AbstractList$Itr#next(AbstractList.java:343)
   -
   java.util.Collections$UnmodifiableCollection$1#next(Collections.java:1008)
   -
   org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#executeCommands(DataNucleusObjectStore.java:360)
   -
   org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#execute(DataNucleusObjectStore.java:355)
   -
   org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush(IsisTransaction.java:365)
   -
   org.apache.isis.core.runtime.system.transaction.IsisTransaction#flush(IsisTransaction.java:331)
   -
   org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#flushTransaction(IsisTransactionManager.java:298)
   -
   org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionOnTargetAndProcessResults(ActionPanel.java:181)
   -
   org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionAndProcessResults(ActionPanel.java:137)
   -
   org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel$ActionParameterForm$1#onSubmit(ActionParametersFormPanel.java:126)
   - org.apache.wicket.markup.html.form.Form#delegateSubmit(Form.java:1253)
   - org.apache.wicket.markup.html.form.Form#process(Form.java:925)
   - org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:771)
   - org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:704)
   -
   sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
   -
   sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39)
   -
   sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25)
   - java.lang.reflect.Method#invoke(Method.java:597)
   -
   org.apache.wicket.RequestListenerInterface#internalInvoke(RequestListenerInterface.java:258)
   -
   org.apache.wicket.RequestListenerInterface#invoke(RequestListenerInterface.java:216)
   -
   org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#invokeListener(ListenerInterfaceRequestHandler.java:240)
   -
   org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#respond(ListenerInterfaceRequestHandler.java:226)
   -
   org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861)
   -
   org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64)
   -
   org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261)
   -
   org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
   -
   org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
   -
   org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
   -
   org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
   -
   org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
   -
   org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1326)
   -
   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:1326)
   -
   org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:479)
   -
   org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:119)
   -
   org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:520)
   -
   org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:227)
   -
   org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:940)
   -
   org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:409)
   -
   org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:186)
   -
   org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:874)
   -
   org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:117)
   -
   org.eclipse.jetty.server.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:250)
   -
   org.eclipse.jetty.server.handler.HandlerCollection#handle(HandlerCollection.java:149)
   -
   org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:110)
   - org.eclipse.jetty.server.Server#handle(Server.java:349)
   -
   org.eclipse.jetty.server.HttpConnection#handleRequest(HttpConnection.java:441)
   -
   org.eclipse.jetty.server.HttpConnection$RequestHandler#content(HttpConnection.java:921)
   - org.eclipse.jetty.http.HttpParser#parseNext(HttpParser.java:784)
   - org.eclipse.jetty.http.HttpParser#parseAvailable(HttpParser.java:223)
   -
   org.eclipse.jetty.server.AsyncHttpConnection#handle(AsyncHttpConnection.java:46)
   -
   org.eclipse.jetty.io.nio.SelectChannelEndPoint#handle(SelectChannelEndPoint.java:545)
   -
   org.eclipse.jetty.io.nio.SelectChannelEndPoint$1#run(SelectChannelEndPoint.java:43)
   -
   org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:598)
   -
   org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:533)
   - java.lang.Thread#run(Thread.java:680)

POWERED BY: APACHE ISIS <http://isis.apache.org/>

Re: What is this error about?

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Just picking up on this mail of yours, James...

A while back I introduced support for the Guava eventbus in the domain
model, and introduced the @PostsPropertyChangedEvent.  This will cause the
old/new values of the change to be sent to any (domain service) subscriber.

One possibility might be to extend this idea with additional annotations,
eg @PostsCollectionAddedToEvent, @PostsCollectionRemovedFromEvent,
@PostsActionInvokedEvent, @PostsObjectPersistedEvent,
@PostsObjectDeletedEvent.    I think that this would probably cover most of
the lifecycle events you would want to handle; it'd also be a pretty useful
way of decoupling a domain model (without the overhead of publishing via
Isis' PublishingService API).

I've just created a new ticket [1] for this feature idea.  It's not near
the top of my todo list, but if you are interested in developing the idea,
I'd be happy to support you.

Cheers
Dan

[1] https://issues.apache.org/jira/browse/ISIS-550








On 19 September 2013 14:48, james agada <ok...@gmail.com> wrote:

> ABL allows you to do declarative programming of business logic. Business
> logic are defined to be executed when certain lifecycle events happen and
> are self propagating ie if A happens and makes changes, B gets triggered
> automatically and so on. In the case of ABL you can specify these at entity
> ( Hibernate/JPA) level using annotation. For instance in the use case I am
> doing, when you create a transaction, it triggers the update of the stock
> ledger if required, notifies participants among other things. I have
> implemented this by tying this to the persist() life cycle event. Of
> course, I will have to think of what to do for other life cycle events -
> delete, modify etc.
>
>
> On Thu, Sep 19, 2013 at 2:32 PM, Dan Haywood
> <da...@haywood-associates.co.uk>wrote:
>
> > Glad that's sorted the issue.
> >
> > Am not familiar with ABL... what sort of features would you like
> > incorporated?  Either start a discussion here, or raise a ticket with
> your
> > ideas.
> >
> > Thx
> > Dan
> >
> >
> >
> > On 19 September 2013 14:18, james agada <ok...@gmail.com> wrote:
> >
> > > Problem has gone away. My code works. Essentially I can almost
> replicate
> > > the functionality of ABL http://www.automatedbusinesslogic.com just by
> > > utilizing the lifecycle events. How difficult will it be to add ABL
> > > functionality in Isis?
> > >
> > >
> > > On Sun, Sep 15, 2013 at 1:08 PM, Okwui <ok...@gmail.com> wrote:
> > >
> > > > Thanks a million. If my usage is correct, it makes Isis even more
> > > powerful
> > > > than I thought.
> > > >
> > > > Sent from my iPad
> > > >
> > > > On Sep 15, 2013, at 12:31 PM, Dan Haywood <
> > dan@haywood-associates.co.uk>
> > > > wrote:
> > > >
> > > > > On 15 September 2013 12:28, james agada <ok...@gmail.com>
> > wrote:
> > > > >
> > > > >>> I can see that using lifecycle callbacks [1] to
> > create/update/delete
> > > > >>> further objects could cause this.   But I doubt you aren't doing
> > > this.
> > > > >> Aha. I am doing this. If this is the problem then I hope your fix
> > will
> > > > be
> > > > >> it.
> > > > > That's good to know; glad my guess turned right, then.
> > > > >
> > > > >
> > > > >
> > > > >>> In the meantime, the fix I'm putting in ISIS-533 might address
> the
> > > > >> issue,
> > > > >>> whatever.
> > > > >> How will I get this fix? Do I need to build from source all over
> > > again.
> > > > >
> > > > > You will.  But that just means "git pull" followed by "mvn clean
> > > install
> > > > > -o".  No big deal.
> > > > >
> > > > > Just working on the fix now.
> > > > >
> > > > > Dan
> > > >
> > >
> >
>

Re: What is this error about?

Posted by james agada <ok...@gmail.com>.
ABL allows you to do declarative programming of business logic. Business
logic are defined to be executed when certain lifecycle events happen and
are self propagating ie if A happens and makes changes, B gets triggered
automatically and so on. In the case of ABL you can specify these at entity
( Hibernate/JPA) level using annotation. For instance in the use case I am
doing, when you create a transaction, it triggers the update of the stock
ledger if required, notifies participants among other things. I have
implemented this by tying this to the persist() life cycle event. Of
course, I will have to think of what to do for other life cycle events -
delete, modify etc.


On Thu, Sep 19, 2013 at 2:32 PM, Dan Haywood
<da...@haywood-associates.co.uk>wrote:

> Glad that's sorted the issue.
>
> Am not familiar with ABL... what sort of features would you like
> incorporated?  Either start a discussion here, or raise a ticket with your
> ideas.
>
> Thx
> Dan
>
>
>
> On 19 September 2013 14:18, james agada <ok...@gmail.com> wrote:
>
> > Problem has gone away. My code works. Essentially I can almost replicate
> > the functionality of ABL http://www.automatedbusinesslogic.com just by
> > utilizing the lifecycle events. How difficult will it be to add ABL
> > functionality in Isis?
> >
> >
> > On Sun, Sep 15, 2013 at 1:08 PM, Okwui <ok...@gmail.com> wrote:
> >
> > > Thanks a million. If my usage is correct, it makes Isis even more
> > powerful
> > > than I thought.
> > >
> > > Sent from my iPad
> > >
> > > On Sep 15, 2013, at 12:31 PM, Dan Haywood <
> dan@haywood-associates.co.uk>
> > > wrote:
> > >
> > > > On 15 September 2013 12:28, james agada <ok...@gmail.com>
> wrote:
> > > >
> > > >>> I can see that using lifecycle callbacks [1] to
> create/update/delete
> > > >>> further objects could cause this.   But I doubt you aren't doing
> > this.
> > > >> Aha. I am doing this. If this is the problem then I hope your fix
> will
> > > be
> > > >> it.
> > > > That's good to know; glad my guess turned right, then.
> > > >
> > > >
> > > >
> > > >>> In the meantime, the fix I'm putting in ISIS-533 might address the
> > > >> issue,
> > > >>> whatever.
> > > >> How will I get this fix? Do I need to build from source all over
> > again.
> > > >
> > > > You will.  But that just means "git pull" followed by "mvn clean
> > install
> > > > -o".  No big deal.
> > > >
> > > > Just working on the fix now.
> > > >
> > > > Dan
> > >
> >
>

Re: What is this error about?

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Glad that's sorted the issue.

Am not familiar with ABL... what sort of features would you like
incorporated?  Either start a discussion here, or raise a ticket with your
ideas.

Thx
Dan



On 19 September 2013 14:18, james agada <ok...@gmail.com> wrote:

> Problem has gone away. My code works. Essentially I can almost replicate
> the functionality of ABL http://www.automatedbusinesslogic.com just by
> utilizing the lifecycle events. How difficult will it be to add ABL
> functionality in Isis?
>
>
> On Sun, Sep 15, 2013 at 1:08 PM, Okwui <ok...@gmail.com> wrote:
>
> > Thanks a million. If my usage is correct, it makes Isis even more
> powerful
> > than I thought.
> >
> > Sent from my iPad
> >
> > On Sep 15, 2013, at 12:31 PM, Dan Haywood <da...@haywood-associates.co.uk>
> > wrote:
> >
> > > On 15 September 2013 12:28, james agada <ok...@gmail.com> wrote:
> > >
> > >>> I can see that using lifecycle callbacks [1] to create/update/delete
> > >>> further objects could cause this.   But I doubt you aren't doing
> this.
> > >> Aha. I am doing this. If this is the problem then I hope your fix will
> > be
> > >> it.
> > > That's good to know; glad my guess turned right, then.
> > >
> > >
> > >
> > >>> In the meantime, the fix I'm putting in ISIS-533 might address the
> > >> issue,
> > >>> whatever.
> > >> How will I get this fix? Do I need to build from source all over
> again.
> > >
> > > You will.  But that just means "git pull" followed by "mvn clean
> install
> > > -o".  No big deal.
> > >
> > > Just working on the fix now.
> > >
> > > Dan
> >
>

Re: What is this error about?

Posted by james agada <ok...@gmail.com>.
Problem has gone away. My code works. Essentially I can almost replicate
the functionality of ABL http://www.automatedbusinesslogic.com just by
utilizing the lifecycle events. How difficult will it be to add ABL
functionality in Isis?


On Sun, Sep 15, 2013 at 1:08 PM, Okwui <ok...@gmail.com> wrote:

> Thanks a million. If my usage is correct, it makes Isis even more powerful
> than I thought.
>
> Sent from my iPad
>
> On Sep 15, 2013, at 12:31 PM, Dan Haywood <da...@haywood-associates.co.uk>
> wrote:
>
> > On 15 September 2013 12:28, james agada <ok...@gmail.com> wrote:
> >
> >>> I can see that using lifecycle callbacks [1] to create/update/delete
> >>> further objects could cause this.   But I doubt you aren't doing this.
> >> Aha. I am doing this. If this is the problem then I hope your fix will
> be
> >> it.
> > That's good to know; glad my guess turned right, then.
> >
> >
> >
> >>> In the meantime, the fix I'm putting in ISIS-533 might address the
> >> issue,
> >>> whatever.
> >> How will I get this fix? Do I need to build from source all over again.
> >
> > You will.  But that just means "git pull" followed by "mvn clean install
> > -o".  No big deal.
> >
> > Just working on the fix now.
> >
> > Dan
>

Re: What is this error about?

Posted by Okwui <ok...@gmail.com>.
Thanks a million. If my usage is correct, it makes Isis even more powerful than I thought.

Sent from my iPad

On Sep 15, 2013, at 12:31 PM, Dan Haywood <da...@haywood-associates.co.uk> wrote:

> On 15 September 2013 12:28, james agada <ok...@gmail.com> wrote:
> 
>>> I can see that using lifecycle callbacks [1] to create/update/delete
>>> further objects could cause this.   But I doubt you aren't doing this.
>> Aha. I am doing this. If this is the problem then I hope your fix will be
>> it.
> That's good to know; glad my guess turned right, then.
> 
> 
> 
>>> In the meantime, the fix I'm putting in ISIS-533 might address the
>> issue,
>>> whatever.
>> How will I get this fix? Do I need to build from source all over again.
> 
> You will.  But that just means "git pull" followed by "mvn clean install
> -o".  No big deal.
> 
> Just working on the fix now.
> 
> Dan

Re: What is this error about?

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
On 15 September 2013 12:28, james agada <ok...@gmail.com> wrote:

> > I can see that using lifecycle callbacks [1] to create/update/delete
> > further objects could cause this.   But I doubt you aren't doing this.
> Aha. I am doing this. If this is the problem then I hope your fix will be
> it.
>
>
That's good to know; glad my guess turned right, then.



>  > In the meantime, the fix I'm putting in ISIS-533 might address the
> issue,
> > whatever.
> How will I get this fix? Do I need to build from source all over again.
>

You will.  But that just means "git pull" followed by "mvn clean install
-o".  No big deal.

Just working on the fix now.

Dan

Re: What is this error about?

Posted by james agada <ok...@gmail.com>.
Sent from my iPhone

On Sep 15, 2013, at 12:02 PM, Dan Haywood <da...@haywood-associates.co.uk> wrote:

> On 15 September 2013 11:49, james agada <ok...@gmail.com> wrote:
>
>> I am not using the addTo or remove from templates anywhere. If I can
>> find out which part of the code the problem is coming from, I will
>> quiet easily past it.
>> What I will like to know is what can lead to this kind of error.
> I can see that using lifecycle callbacks [1] to create/update/delete
> further objects could cause this.   But I doubt you aren't doing this.
Aha. I am doing this. If this is the problem then I hope your fix will be it.

>
> So, there is a command being created as a side-effect some other way.  You
> could help by putting a breakpoint in IsisTransaction#addCommand, and -
> after a flush has been executed earlier in the stack trace - seeing why it
> is being called.
>
> If you're unable to do that / not sure how, we could arrange a remote
> debugging session this week some evening; it would be useful for me to know
> why this is occurring.
>
> In the meantime, the fix I'm putting in ISIS-533 might address the issue,
> whatever.
How will I get this fix? Do I need to build from source all over again.
>
> Let me know.
>
> Dan
>
>
>
> [1]
> http://isis.apache.org/applib-guide/how-tos/how-to-07-070-How-to-hook-into-the-object-lifecycle-using-callbacks.html
>
>
>
>> Sent from my iPhone
>>
>> On Sep 15, 2013, at 8:28 AM, GESCONSULTOR <o....@gesconsultor.com> wrote:
>>
>>> Hi james.
>>>
>>> Have you used both the JDO annotations and the addToXXX / removeFromXXX
>> isis eclipse templates ?
>>>
>>> The latter ones should not be used with JDO as DataNucleus automatically
>> manages the relationships when doing getContainer().flush().
>>>
>>> More info here [1].
>>>
>>> If that's not the case, can you paste on the mail the code defining the
>> relationship?
>>>
>>>
>>> [1]
>> http://isis.apache.org/components/objectstores/jdo/managed-1-to-m-relationships.html
>>>
>>>
>>>
>>> El 14/09/2013, a las 21:16, james agada <ok...@gmail.com> escribió:
>>>
>>>> - java.util.ConcurrentModificationException
>>>> -
>>>> -
>> java.util.AbstractList$Itr#checkForComodification(AbstractList.java:372)
>>>> - java.util.AbstractList$Itr#next(AbstractList.java:343)
>>>> -
>> java.util.Collections$UnmodifiableCollection$1#next(Collections.java:1008)
>>>> -
>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#executeCommands(DataNucleusObjectStore.java:360)
>>>> -
>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#execute(DataNucleusObjectStore.java:355)
>>>> -
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush(IsisTransaction.java:365)
>>>> -
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction#flush(IsisTransaction.java:331)
>>>> -
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#flushTransaction(IsisTransactionManager.java:298)
>>>> -
>> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionOnTargetAndProcessResults(ActionPanel.java:181)
>>>> -
>> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionAndProcessResults(ActionPanel.java:137)
>>>> -
>> org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel$ActionParameterForm$1#onSubmit(ActionParametersFormPanel.java:126)
>>>> -
>> org.apache.wicket.markup.html.form.Form#delegateSubmit(Form.java:1253)
>>>> - org.apache.wicket.markup.html.form.Form#process(Form.java:925)
>>>> -
>> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:771)
>>>> -
>> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:704)
>>>> -
>> sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
>>>> -
>> sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39)
>>>> -
>> sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25)
>>>> - java.lang.reflect.Method#invoke(Method.java:597)
>>>> -
>> org.apache.wicket.RequestListenerInterface#internalInvoke(RequestListenerInterface.java:258)
>>>> -
>> org.apache.wicket.RequestListenerInterface#invoke(RequestListenerInterface.java:216)
>>>> -
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#invokeListener(ListenerInterfaceRequestHandler.java:240)
>>>> -
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#respond(ListenerInterfaceRequestHandler.java:226)
>>>> -
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861)
>>>> -
>> org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64)
>>>> -
>> org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261)
>>>> -
>> org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
>>>> -
>> org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
>>>> -
>> org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
>>>> -
>> org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
>>>> -
>> org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
>>>> -
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1326)
>>>> -
>> 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:1326)
>>>> -
>> org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:479)
>>>> -
>> org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:119)
>>>> -
>> org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:520)
>>>> -
>> org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:227)
>>>> -
>> org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:940)
>>>> -
>> org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:409)
>>>> -
>> org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:186)
>>>> -
>> org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:874)
>>>> -
>> org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:117)
>>>> -
>> org.eclipse.jetty.server.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:250)
>>>> -
>> org.eclipse.jetty.server.handler.HandlerCollection#handle(HandlerCollection.java:149)
>>>> -
>> org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:110)
>>>> - org.eclipse.jetty.server.Server#handle(Server.java:349)
>>>> -
>> org.eclipse.jetty.server.HttpConnection#handleRequest(HttpConnection.java:441)
>>>> -
>> org.eclipse.jetty.server.HttpConnection$RequestHandler#content(HttpConnection.java:921)
>>>> - org.eclipse.jetty.http.HttpParser#parseNext(HttpParser.java:784)
>>>> - org.eclipse.jetty.http.HttpParser#parseAvailable(HttpParser.java:223)
>>>> -
>> org.eclipse.jetty.server.AsyncHttpConnection#handle(AsyncHttpConnection.java:46)
>>>> -
>> org.eclipse.jetty.io.nio.SelectChannelEndPoint#handle(SelectChannelEndPoint.java:545)
>>>> -
>> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1#run(SelectChannelEndPoint.java:43)
>>>> -
>> org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:598)
>>>> -
>> org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:533)
>>>> - java.lang.Thread#run(Thread.java:680)
>>>>
>>>> POWERED BY: APACHE ISIS <http://isis.apache.org/>
>>

Re: What is this error about?

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
On 15 September 2013 11:49, james agada <ok...@gmail.com> wrote:

> I am not using the addTo or remove from templates anywhere. If I can
> find out which part of the code the problem is coming from, I will
> quiet easily past it.
> What I will like to know is what can lead to this kind of error.
>
>
I can see that using lifecycle callbacks [1] to create/update/delete
further objects could cause this.   But I doubt you aren't doing this.

So, there is a command being created as a side-effect some other way.  You
could help by putting a breakpoint in IsisTransaction#addCommand, and -
after a flush has been executed earlier in the stack trace - seeing why it
is being called.

If you're unable to do that / not sure how, we could arrange a remote
debugging session this week some evening; it would be useful for me to know
why this is occurring.

In the meantime, the fix I'm putting in ISIS-533 might address the issue,
whatever.

Let me know.

Dan



[1]
http://isis.apache.org/applib-guide/how-tos/how-to-07-070-How-to-hook-into-the-object-lifecycle-using-callbacks.html



> Sent from my iPhone
>
> On Sep 15, 2013, at 8:28 AM, GESCONSULTOR <o....@gesconsultor.com> wrote:
>
> > Hi james.
> >
> > Have you used both the JDO annotations and the addToXXX / removeFromXXX
> isis eclipse templates ?
> >
> > The latter ones should not be used with JDO as DataNucleus automatically
> manages the relationships when doing getContainer().flush().
> >
> > More info here [1].
> >
> > If that's not the case, can you paste on the mail the code defining the
> relationship?
> >
> >
> > [1]
> http://isis.apache.org/components/objectstores/jdo/managed-1-to-m-relationships.html
> >
> >
> >
> > El 14/09/2013, a las 21:16, james agada <ok...@gmail.com> escribió:
> >
> >>  - java.util.ConcurrentModificationException
> >>  -
> >>  -
> >>
>  java.util.AbstractList$Itr#checkForComodification(AbstractList.java:372)
> >>  - java.util.AbstractList$Itr#next(AbstractList.java:343)
> >>  -
> >>
>  java.util.Collections$UnmodifiableCollection$1#next(Collections.java:1008)
> >>  -
> >>
>  org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#executeCommands(DataNucleusObjectStore.java:360)
> >>  -
> >>
>  org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#execute(DataNucleusObjectStore.java:355)
> >>  -
> >>
>  org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush(IsisTransaction.java:365)
> >>  -
> >>
>  org.apache.isis.core.runtime.system.transaction.IsisTransaction#flush(IsisTransaction.java:331)
> >>  -
> >>
>  org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#flushTransaction(IsisTransactionManager.java:298)
> >>  -
> >>
>  org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionOnTargetAndProcessResults(ActionPanel.java:181)
> >>  -
> >>
>  org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionAndProcessResults(ActionPanel.java:137)
> >>  -
> >>
>  org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel$ActionParameterForm$1#onSubmit(ActionParametersFormPanel.java:126)
> >>  -
> org.apache.wicket.markup.html.form.Form#delegateSubmit(Form.java:1253)
> >>  - org.apache.wicket.markup.html.form.Form#process(Form.java:925)
> >>  -
> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:771)
> >>  -
> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:704)
> >>  -
> >>
>  sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
> >>  -
> >>
>  sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39)
> >>  -
> >>
>  sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25)
> >>  - java.lang.reflect.Method#invoke(Method.java:597)
> >>  -
> >>
>  org.apache.wicket.RequestListenerInterface#internalInvoke(RequestListenerInterface.java:258)
> >>  -
> >>
>  org.apache.wicket.RequestListenerInterface#invoke(RequestListenerInterface.java:216)
> >>  -
> >>
>  org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#invokeListener(ListenerInterfaceRequestHandler.java:240)
> >>  -
> >>
>  org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#respond(ListenerInterfaceRequestHandler.java:226)
> >>  -
> >>
>  org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861)
> >>  -
> >>
>  org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64)
> >>  -
> >>
>  org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261)
> >>  -
> >>
>  org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
> >>  -
> >>
>  org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
> >>  -
> >>
>  org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
> >>  -
> >>
>  org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
> >>  -
> >>
>  org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
> >>  -
> >>
>  org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1326)
> >>  -
> >>
>  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:1326)
> >>  -
> >>
>  org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:479)
> >>  -
> >>
>  org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:119)
> >>  -
> >>
>  org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:520)
> >>  -
> >>
>  org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:227)
> >>  -
> >>
>  org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:940)
> >>  -
> >>
>  org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:409)
> >>  -
> >>
>  org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:186)
> >>  -
> >>
>  org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:874)
> >>  -
> >>
>  org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:117)
> >>  -
> >>
>  org.eclipse.jetty.server.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:250)
> >>  -
> >>
>  org.eclipse.jetty.server.handler.HandlerCollection#handle(HandlerCollection.java:149)
> >>  -
> >>
>  org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:110)
> >>  - org.eclipse.jetty.server.Server#handle(Server.java:349)
> >>  -
> >>
>  org.eclipse.jetty.server.HttpConnection#handleRequest(HttpConnection.java:441)
> >>  -
> >>
>  org.eclipse.jetty.server.HttpConnection$RequestHandler#content(HttpConnection.java:921)
> >>  - org.eclipse.jetty.http.HttpParser#parseNext(HttpParser.java:784)
> >>  - org.eclipse.jetty.http.HttpParser#parseAvailable(HttpParser.java:223)
> >>  -
> >>
>  org.eclipse.jetty.server.AsyncHttpConnection#handle(AsyncHttpConnection.java:46)
> >>  -
> >>
>  org.eclipse.jetty.io.nio.SelectChannelEndPoint#handle(SelectChannelEndPoint.java:545)
> >>  -
> >>
>  org.eclipse.jetty.io.nio.SelectChannelEndPoint$1#run(SelectChannelEndPoint.java:43)
> >>  -
> >>
>  org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:598)
> >>  -
> >>
>  org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:533)
> >>  - java.lang.Thread#run(Thread.java:680)
> >>
> >> POWERED BY: APACHE ISIS <http://isis.apache.org/>
>

Re: What is this error about?

Posted by james agada <ok...@gmail.com>.
I am not using the addTo or remove from templates anywhere. If I can
find out which part of the code the problem is coming from, I will
quiet easily past it.
What I will like to know is what can lead to this kind of error.

Sent from my iPhone

On Sep 15, 2013, at 8:28 AM, GESCONSULTOR <o....@gesconsultor.com> wrote:

> Hi james.
>
> Have you used both the JDO annotations and the addToXXX / removeFromXXX isis eclipse templates ?
>
> The latter ones should not be used with JDO as DataNucleus automatically manages the relationships when doing getContainer().flush().
>
> More info here [1].
>
> If that's not the case, can you paste on the mail the code defining the relationship?
>
>
> [1] http://isis.apache.org/components/objectstores/jdo/managed-1-to-m-relationships.html
>
>
>
> El 14/09/2013, a las 21:16, james agada <ok...@gmail.com> escribió:
>
>>  - java.util.ConcurrentModificationException
>>  -
>>  -
>>  java.util.AbstractList$Itr#checkForComodification(AbstractList.java:372)
>>  - java.util.AbstractList$Itr#next(AbstractList.java:343)
>>  -
>>  java.util.Collections$UnmodifiableCollection$1#next(Collections.java:1008)
>>  -
>>  org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#executeCommands(DataNucleusObjectStore.java:360)
>>  -
>>  org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#execute(DataNucleusObjectStore.java:355)
>>  -
>>  org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush(IsisTransaction.java:365)
>>  -
>>  org.apache.isis.core.runtime.system.transaction.IsisTransaction#flush(IsisTransaction.java:331)
>>  -
>>  org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#flushTransaction(IsisTransactionManager.java:298)
>>  -
>>  org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionOnTargetAndProcessResults(ActionPanel.java:181)
>>  -
>>  org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionAndProcessResults(ActionPanel.java:137)
>>  -
>>  org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel$ActionParameterForm$1#onSubmit(ActionParametersFormPanel.java:126)
>>  - org.apache.wicket.markup.html.form.Form#delegateSubmit(Form.java:1253)
>>  - org.apache.wicket.markup.html.form.Form#process(Form.java:925)
>>  - org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:771)
>>  - org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:704)
>>  -
>>  sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
>>  -
>>  sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39)
>>  -
>>  sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25)
>>  - java.lang.reflect.Method#invoke(Method.java:597)
>>  -
>>  org.apache.wicket.RequestListenerInterface#internalInvoke(RequestListenerInterface.java:258)
>>  -
>>  org.apache.wicket.RequestListenerInterface#invoke(RequestListenerInterface.java:216)
>>  -
>>  org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#invokeListener(ListenerInterfaceRequestHandler.java:240)
>>  -
>>  org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#respond(ListenerInterfaceRequestHandler.java:226)
>>  -
>>  org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861)
>>  -
>>  org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64)
>>  -
>>  org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261)
>>  -
>>  org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
>>  -
>>  org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
>>  -
>>  org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
>>  -
>>  org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
>>  -
>>  org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
>>  -
>>  org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1326)
>>  -
>>  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:1326)
>>  -
>>  org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:479)
>>  -
>>  org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:119)
>>  -
>>  org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:520)
>>  -
>>  org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:227)
>>  -
>>  org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:940)
>>  -
>>  org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:409)
>>  -
>>  org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:186)
>>  -
>>  org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:874)
>>  -
>>  org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:117)
>>  -
>>  org.eclipse.jetty.server.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:250)
>>  -
>>  org.eclipse.jetty.server.handler.HandlerCollection#handle(HandlerCollection.java:149)
>>  -
>>  org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:110)
>>  - org.eclipse.jetty.server.Server#handle(Server.java:349)
>>  -
>>  org.eclipse.jetty.server.HttpConnection#handleRequest(HttpConnection.java:441)
>>  -
>>  org.eclipse.jetty.server.HttpConnection$RequestHandler#content(HttpConnection.java:921)
>>  - org.eclipse.jetty.http.HttpParser#parseNext(HttpParser.java:784)
>>  - org.eclipse.jetty.http.HttpParser#parseAvailable(HttpParser.java:223)
>>  -
>>  org.eclipse.jetty.server.AsyncHttpConnection#handle(AsyncHttpConnection.java:46)
>>  -
>>  org.eclipse.jetty.io.nio.SelectChannelEndPoint#handle(SelectChannelEndPoint.java:545)
>>  -
>>  org.eclipse.jetty.io.nio.SelectChannelEndPoint$1#run(SelectChannelEndPoint.java:43)
>>  -
>>  org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:598)
>>  -
>>  org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:533)
>>  - java.lang.Thread#run(Thread.java:680)
>>
>> POWERED BY: APACHE ISIS <http://isis.apache.org/>

Re: What is this error about?

Posted by james agada <ok...@gmail.com>.
Strangely I am not doing any addTo or removeFrom in my code at all. I
do queries that return collections and I retrieve individual entities
and update them.

Sent from my iPhone

On Sep 15, 2013, at 11:40 AM, Dan Haywood <da...@haywood-associates.co.uk> wrote:

> Hi James,
> Thanks for posting this stack trace; I think you've uncovered an issue
> actually.  To confirm, it would be useful to see the code that's being
> executed, but I let me speculate anyway...
>
> In org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush,
> we execute all queued persistence commands - these are typically gonna be
> inserts - via getContainer.persist(...) - or deletes - via
> getContainer().remove(...).  Looking at the code it seems that a call to a
> collection.addTo or collection.removeFrom also queues up an "update"
> command against the object with the collection.  (I suspect this is
> redundant if using JDO objectstore, but that's a slightly different topic).
>
> Anyway, if in the course of executing one of these commands in the doFlush
> it cascades such that another persistence command is created, then we'll
> get this issue.  This *could* legitimately happen if one of the persistence
> callbacks, such as "saved()" or "deleted()" is used.
>
> There was a recent issue like this on Isis' .NET "sister" framework, Naked
> Objects .NET.  The solution was to keep flushing until there are no
> commands left.
>
> So, I'm going to implement something similar for Isis.  I've just created
> ISIS-533 [1] to fix.  I've also created ISIS-534 [2] to investigate whether
> the collection.addTo/removeFrom needs to do anything for JDO (low
> priority)..
>
> Thx
> Dan
>
> [1] https://issues.apache.org/jira/browse/ISIS-533
> [2] https://issues.apache.org/jira/browse/ISIS-534
>
>
>
> On 15 September 2013 08:27, GESCONSULTOR <o....@gesconsultor.com> wrote:
>
>> Hi james.
>>
>> Have you used both the JDO annotations and the addToXXX / removeFromXXX
>> isis eclipse templates ?
>>
>> The latter ones should not be used with JDO as DataNucleus automatically
>> manages the relationships when doing getContainer().flush().
>>
>> More info here [1].
>>
>> If that's not the case, can you paste on the mail the code defining the
>> relationship?
>>
>>
>> [1]
>> http://isis.apache.org/components/objectstores/jdo/managed-1-to-m-relationships.html
>>
>>
>>
>> El 14/09/2013, a las 21:16, james agada <ok...@gmail.com> escribió:
>>
>>>  - java.util.ConcurrentModificationException
>>>  -
>>>  -
>> java.util.AbstractList$Itr#checkForComodification(AbstractList.java:372)
>>>  - java.util.AbstractList$Itr#next(AbstractList.java:343)
>>>  -
>> java.util.Collections$UnmodifiableCollection$1#next(Collections.java:1008)
>>>  -
>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#executeCommands(DataNucleusObjectStore.java:360)
>>>  -
>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#execute(DataNucleusObjectStore.java:355)
>>>  -
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush(IsisTransaction.java:365)
>>>  -
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction#flush(IsisTransaction.java:331)
>>>  -
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#flushTransaction(IsisTransactionManager.java:298)
>>>  -
>> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionOnTargetAndProcessResults(ActionPanel.java:181)
>>>  -
>> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionAndProcessResults(ActionPanel.java:137)
>>>  -
>> org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel$ActionParameterForm$1#onSubmit(ActionParametersFormPanel.java:126)
>>>  -
>> org.apache.wicket.markup.html.form.Form#delegateSubmit(Form.java:1253)
>>>  - org.apache.wicket.markup.html.form.Form#process(Form.java:925)
>>>  -
>> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:771)
>>>  -
>> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:704)
>>>  -
>> sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
>>>  -
>> sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39)
>>>  -
>> sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25)
>>>  - java.lang.reflect.Method#invoke(Method.java:597)
>>>  -
>> org.apache.wicket.RequestListenerInterface#internalInvoke(RequestListenerInterface.java:258)
>>>  -
>> org.apache.wicket.RequestListenerInterface#invoke(RequestListenerInterface.java:216)
>>>  -
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#invokeListener(ListenerInterfaceRequestHandler.java:240)
>>>  -
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#respond(ListenerInterfaceRequestHandler.java:226)
>>>  -
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861)
>>>  -
>> org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64)
>>>  -
>> org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261)
>>>  -
>> org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
>>>  -
>> org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
>>>  -
>> org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
>>>  -
>> org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
>>>  -
>> org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
>>>  -
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1326)
>>>  -
>> 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:1326)
>>>  -
>> org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:479)
>>>  -
>> org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:119)
>>>  -
>> org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:520)
>>>  -
>> org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:227)
>>>  -
>> org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:940)
>>>  -
>> org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:409)
>>>  -
>> org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:186)
>>>  -
>> org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:874)
>>>  -
>> org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:117)
>>>  -
>> org.eclipse.jetty.server.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:250)
>>>  -
>> org.eclipse.jetty.server.handler.HandlerCollection#handle(HandlerCollection.java:149)
>>>  -
>> org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:110)
>>>  - org.eclipse.jetty.server.Server#handle(Server.java:349)
>>>  -
>> org.eclipse.jetty.server.HttpConnection#handleRequest(HttpConnection.java:441)
>>>  -
>> org.eclipse.jetty.server.HttpConnection$RequestHandler#content(HttpConnection.java:921)
>>>  - org.eclipse.jetty.http.HttpParser#parseNext(HttpParser.java:784)
>>>  - org.eclipse.jetty.http.HttpParser#parseAvailable(HttpParser.java:223)
>>>  -
>> org.eclipse.jetty.server.AsyncHttpConnection#handle(AsyncHttpConnection.java:46)
>>>  -
>> org.eclipse.jetty.io.nio.SelectChannelEndPoint#handle(SelectChannelEndPoint.java:545)
>>>  -
>> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1#run(SelectChannelEndPoint.java:43)
>>>  -
>> org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:598)
>>>  -
>> org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:533)
>>>  - java.lang.Thread#run(Thread.java:680)
>>>
>>> POWERED BY: APACHE ISIS <http://isis.apache.org/>
>>

Re: What is this error about?

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Hi James,
Thanks for posting this stack trace; I think you've uncovered an issue
actually.  To confirm, it would be useful to see the code that's being
executed, but I let me speculate anyway...

In org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush,
we execute all queued persistence commands - these are typically gonna be
inserts - via getContainer.persist(...) - or deletes - via
getContainer().remove(...).  Looking at the code it seems that a call to a
collection.addTo or collection.removeFrom also queues up an "update"
command against the object with the collection.  (I suspect this is
redundant if using JDO objectstore, but that's a slightly different topic).

Anyway, if in the course of executing one of these commands in the doFlush
it cascades such that another persistence command is created, then we'll
get this issue.  This *could* legitimately happen if one of the persistence
callbacks, such as "saved()" or "deleted()" is used.

There was a recent issue like this on Isis' .NET "sister" framework, Naked
Objects .NET.  The solution was to keep flushing until there are no
commands left.

So, I'm going to implement something similar for Isis.  I've just created
ISIS-533 [1] to fix.  I've also created ISIS-534 [2] to investigate whether
the collection.addTo/removeFrom needs to do anything for JDO (low
priority)..

Thx
Dan

[1] https://issues.apache.org/jira/browse/ISIS-533
[2] https://issues.apache.org/jira/browse/ISIS-534



On 15 September 2013 08:27, GESCONSULTOR <o....@gesconsultor.com> wrote:

> Hi james.
>
> Have you used both the JDO annotations and the addToXXX / removeFromXXX
> isis eclipse templates ?
>
> The latter ones should not be used with JDO as DataNucleus automatically
> manages the relationships when doing getContainer().flush().
>
> More info here [1].
>
> If that's not the case, can you paste on the mail the code defining the
> relationship?
>
>
> [1]
> http://isis.apache.org/components/objectstores/jdo/managed-1-to-m-relationships.html
>
>
>
> El 14/09/2013, a las 21:16, james agada <ok...@gmail.com> escribió:
>
> >   - java.util.ConcurrentModificationException
> >   -
> >   -
> >
> java.util.AbstractList$Itr#checkForComodification(AbstractList.java:372)
> >   - java.util.AbstractList$Itr#next(AbstractList.java:343)
> >   -
> >
> java.util.Collections$UnmodifiableCollection$1#next(Collections.java:1008)
> >   -
> >
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#executeCommands(DataNucleusObjectStore.java:360)
> >   -
> >
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#execute(DataNucleusObjectStore.java:355)
> >   -
> >
> org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush(IsisTransaction.java:365)
> >   -
> >
> org.apache.isis.core.runtime.system.transaction.IsisTransaction#flush(IsisTransaction.java:331)
> >   -
> >
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#flushTransaction(IsisTransactionManager.java:298)
> >   -
> >
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionOnTargetAndProcessResults(ActionPanel.java:181)
> >   -
> >
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionAndProcessResults(ActionPanel.java:137)
> >   -
> >
> org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel$ActionParameterForm$1#onSubmit(ActionParametersFormPanel.java:126)
> >   -
> org.apache.wicket.markup.html.form.Form#delegateSubmit(Form.java:1253)
> >   - org.apache.wicket.markup.html.form.Form#process(Form.java:925)
> >   -
> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:771)
> >   -
> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:704)
> >   -
> >
> sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
> >   -
> >
> sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39)
> >   -
> >
> sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25)
> >   - java.lang.reflect.Method#invoke(Method.java:597)
> >   -
> >
> org.apache.wicket.RequestListenerInterface#internalInvoke(RequestListenerInterface.java:258)
> >   -
> >
> org.apache.wicket.RequestListenerInterface#invoke(RequestListenerInterface.java:216)
> >   -
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#invokeListener(ListenerInterfaceRequestHandler.java:240)
> >   -
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#respond(ListenerInterfaceRequestHandler.java:226)
> >   -
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861)
> >   -
> >
> org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64)
> >   -
> >
> org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261)
> >   -
> >
> org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
> >   -
> >
> org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
> >   -
> >
> org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
> >   -
> >
> org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
> >   -
> >
> org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
> >   -
> >
> org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1326)
> >   -
> >
> 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:1326)
> >   -
> >
> org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:479)
> >   -
> >
> org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:119)
> >   -
> >
> org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:520)
> >   -
> >
> org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:227)
> >   -
> >
> org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:940)
> >   -
> >
> org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:409)
> >   -
> >
> org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:186)
> >   -
> >
> org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:874)
> >   -
> >
> org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:117)
> >   -
> >
> org.eclipse.jetty.server.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:250)
> >   -
> >
> org.eclipse.jetty.server.handler.HandlerCollection#handle(HandlerCollection.java:149)
> >   -
> >
> org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:110)
> >   - org.eclipse.jetty.server.Server#handle(Server.java:349)
> >   -
> >
> org.eclipse.jetty.server.HttpConnection#handleRequest(HttpConnection.java:441)
> >   -
> >
> org.eclipse.jetty.server.HttpConnection$RequestHandler#content(HttpConnection.java:921)
> >   - org.eclipse.jetty.http.HttpParser#parseNext(HttpParser.java:784)
> >   - org.eclipse.jetty.http.HttpParser#parseAvailable(HttpParser.java:223)
> >   -
> >
> org.eclipse.jetty.server.AsyncHttpConnection#handle(AsyncHttpConnection.java:46)
> >   -
> >
> org.eclipse.jetty.io.nio.SelectChannelEndPoint#handle(SelectChannelEndPoint.java:545)
> >   -
> >
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1#run(SelectChannelEndPoint.java:43)
> >   -
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:598)
> >   -
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:533)
> >   - java.lang.Thread#run(Thread.java:680)
> >
> > POWERED BY: APACHE ISIS <http://isis.apache.org/>
>

Re: What is this error about?

Posted by GESCONSULTOR <o....@gesconsultor.com>.
Hi james.

Have you used both the JDO annotations and the addToXXX / removeFromXXX isis eclipse templates ?

The latter ones should not be used with JDO as DataNucleus automatically manages the relationships when doing getContainer().flush().  

More info here [1].

If that's not the case, can you paste on the mail the code defining the relationship?


[1] http://isis.apache.org/components/objectstores/jdo/managed-1-to-m-relationships.html



El 14/09/2013, a las 21:16, james agada <ok...@gmail.com> escribió:

>   - java.util.ConcurrentModificationException
>   -
>   -
>   java.util.AbstractList$Itr#checkForComodification(AbstractList.java:372)
>   - java.util.AbstractList$Itr#next(AbstractList.java:343)
>   -
>   java.util.Collections$UnmodifiableCollection$1#next(Collections.java:1008)
>   -
>   org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#executeCommands(DataNucleusObjectStore.java:360)
>   -
>   org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#execute(DataNucleusObjectStore.java:355)
>   -
>   org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush(IsisTransaction.java:365)
>   -
>   org.apache.isis.core.runtime.system.transaction.IsisTransaction#flush(IsisTransaction.java:331)
>   -
>   org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#flushTransaction(IsisTransactionManager.java:298)
>   -
>   org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionOnTargetAndProcessResults(ActionPanel.java:181)
>   -
>   org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel#executeActionAndProcessResults(ActionPanel.java:137)
>   -
>   org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel$ActionParameterForm$1#onSubmit(ActionParametersFormPanel.java:126)
>   - org.apache.wicket.markup.html.form.Form#delegateSubmit(Form.java:1253)
>   - org.apache.wicket.markup.html.form.Form#process(Form.java:925)
>   - org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:771)
>   - org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:704)
>   -
>   sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
>   -
>   sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39)
>   -
>   sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25)
>   - java.lang.reflect.Method#invoke(Method.java:597)
>   -
>   org.apache.wicket.RequestListenerInterface#internalInvoke(RequestListenerInterface.java:258)
>   -
>   org.apache.wicket.RequestListenerInterface#invoke(RequestListenerInterface.java:216)
>   -
>   org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#invokeListener(ListenerInterfaceRequestHandler.java:240)
>   -
>   org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#respond(ListenerInterfaceRequestHandler.java:226)
>   -
>   org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861)
>   -
>   org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64)
>   -
>   org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261)
>   -
>   org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
>   -
>   org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
>   -
>   org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
>   -
>   org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
>   -
>   org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
>   -
>   org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1326)
>   -
>   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:1326)
>   -
>   org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:479)
>   -
>   org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:119)
>   -
>   org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:520)
>   -
>   org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:227)
>   -
>   org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:940)
>   -
>   org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:409)
>   -
>   org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:186)
>   -
>   org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:874)
>   -
>   org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:117)
>   -
>   org.eclipse.jetty.server.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:250)
>   -
>   org.eclipse.jetty.server.handler.HandlerCollection#handle(HandlerCollection.java:149)
>   -
>   org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:110)
>   - org.eclipse.jetty.server.Server#handle(Server.java:349)
>   -
>   org.eclipse.jetty.server.HttpConnection#handleRequest(HttpConnection.java:441)
>   -
>   org.eclipse.jetty.server.HttpConnection$RequestHandler#content(HttpConnection.java:921)
>   - org.eclipse.jetty.http.HttpParser#parseNext(HttpParser.java:784)
>   - org.eclipse.jetty.http.HttpParser#parseAvailable(HttpParser.java:223)
>   -
>   org.eclipse.jetty.server.AsyncHttpConnection#handle(AsyncHttpConnection.java:46)
>   -
>   org.eclipse.jetty.io.nio.SelectChannelEndPoint#handle(SelectChannelEndPoint.java:545)
>   -
>   org.eclipse.jetty.io.nio.SelectChannelEndPoint$1#run(SelectChannelEndPoint.java:43)
>   -
>   org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:598)
>   -
>   org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:533)
>   - java.lang.Thread#run(Thread.java:680)
> 
> POWERED BY: APACHE ISIS <http://isis.apache.org/>