You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by mi...@xup.nl on 2012/09/04 16:26:34 UTC

Oh oh, NullPointerException after switching to isis trunk

Hi Folks,

After switching from 0.2.0 to isis trunk (0.3.1 snapshot) I run into  
an NPE (See stacktrace below). I probably did something wrong or  
forgot something, but I have no clue what. HELP! :-(

Everything seems to work until I hit the "Ok" button when trying to  
create a new object.

BTW. I switched back to in-memory persistor (from sql). What is  
required to get the JDO persistor running or to get the sql persistor  
back?

Regards,

Minto

java.lang.NullPointerException
	at  
org.apache.isis.core.metamodel.adapter.version.ConcurrencyException.buildMessage(ConcurrencyException.java:36)
	at  
org.apache.isis.core.metamodel.adapter.version.ConcurrencyException.(ConcurrencyException.java:50)
	at  
org.apache.isis.runtimes.dflt.runtime.persistence.adapter.PojoAdapter.checkLock(PojoAdapter.java:337)
	at  
org.apache.isis.viewer.html.context.PersistentRootAdapterMapping.checkVersion(PersistentRootAdapterMapping.java:56)
	at  
org.apache.isis.viewer.html.context.Context.getMappedObject(Context.java:284)
	at  
org.apache.isis.viewer.html.action.view.ObjectViewAbstract.execute(ObjectViewAbstract.java:39)
	at  
org.apache.isis.viewer.html.servlet.internal.WebController.runAction(WebController.java:383)
	at  
org.apache.isis.viewer.html.servlet.internal.WebController.generatePage(WebController.java:286)
	at  
org.apache.isis.viewer.html.servlet.ControllerServlet.processRequest(ControllerServlet.java:129)
	at  
org.apache.isis.viewer.html.servlet.ControllerServlet.processRequest(ControllerServlet.java:104)
	at  
org.apache.isis.viewer.html.servlet.ControllerServlet.doPost(ControllerServlet.java:82)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at  
org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter$SessionState.handle(IsisSessionFilter.java:383)
	at  
org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at  
org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)
	at  
org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at  
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at  
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at  
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at  
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at  
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at  
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at  
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at  
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at  
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at  
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at  
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at  
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)

Re: Oh oh, NullPointerException after switching to isis trunk

Posted by mi...@xup.nl.
Hi Dan,

Also have a look at ISIS-265 that I just created. It also contains a patch.

Regards,

Minto


Quoting Dan Haywood <da...@haywood-associates.co.uk>:

> Thanks for taking the time to document this; I'll look at it hopefully
> later today.
>
>
> On 5 September 2012 09:54, <mi...@xup.nl> wrote:
>
>> Hi folks,
>>
>> The examples in trunk show this exact same behavior.
>>
>> It seems the examples have been neglected a little bit, since I first had
>> to upgrade them from 0.3.0 --> 0.3.1. The attached patch shows the changes
>> I made.
>>
>> Scenario to get to the NPE:
>> 1) apply patch
>> 2) mvn clean install  - compiles claims example till html-viewer (json
>> viewer fails)
>> 3) cd html-viewer
>> 4) mvn jetty:run
>> 5) open browser in  
>> http://localhost:8080/claims-**viewer-html<http://localhost:8080/claims-viewer-html>
>> 6) login
>> 7) click Employees
>> 8) click New Employee
>> 9) Enter a name
>> 10) click save ----> NPE
>>
>> Regards,
>>
>> Minto
>>
>>
>> Quoting minto@xup.nl:
>>
>>  Hi Folks,
>>>
>>> After switching from 0.2.0 to isis trunk (0.3.1 snapshot) I run into an
>>> NPE (See stacktrace below). I probably did something wrong or forgot
>>> something, but I have no clue what. HELP! :-(
>>>
>>> Everything seems to work until I hit the "Ok" button when trying to
>>> create a new object.
>>>
>>> BTW. I switched back to in-memory persistor (from sql). What is required
>>> to get the JDO persistor running or to get the sql persistor back?
>>>
>>> Regards,
>>>
>>> Minto
>>>
>>> java.lang.NullPointerException
>>>         at org.apache.isis.core.**metamodel.adapter.version.**
>>> ConcurrencyException.**buildMessage(**ConcurrencyException.java:36)
>>>         at org.apache.isis.core.**metamodel.adapter.version.**
>>> ConcurrencyException.(**ConcurrencyException.java:50)
>>>         at org.apache.isis.runtimes.dflt.**runtime.persistence.adapter.**
>>> PojoAdapter.checkLock(**PojoAdapter.java:337)
>>>         at org.apache.isis.viewer.html.**context.**
>>> PersistentRootAdapterMapping.**checkVersion(**
>>> PersistentRootAdapterMapping.**java:56)
>>>         at org.apache.isis.viewer.html.**context.Context.**
>>> getMappedObject(Context.java:**284)
>>>         at org.apache.isis.viewer.html.**action.view.**
>>> ObjectViewAbstract.execute(**ObjectViewAbstract.java:39)
>>>         at org.apache.isis.viewer.html.**servlet.internal.**
>>> WebController.runAction(**WebController.java:383)
>>>         at org.apache.isis.viewer.html.**servlet.internal.**
>>> WebController.generatePage(**WebController.java:286)
>>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>>> processRequest(**ControllerServlet.java:129)
>>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>>> processRequest(**ControllerServlet.java:104)
>>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>>> doPost(ControllerServlet.java:**82)
>>>         at javax.servlet.http.**HttpServlet.service(**
>>> HttpServlet.java:641)
>>>         at javax.servlet.http.**HttpServlet.service(**
>>> HttpServlet.java:722)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>>> internalDoFilter(**ApplicationFilterChain.java:**305)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>>> *ApplicationFilterChain.java:**210)
>>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter$**
>>> SessionState.handle(**IsisSessionFilter.java:383)
>>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter.**
>>> doFilter(IsisSessionFilter.**java:404)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>>> internalDoFilter(**ApplicationFilterChain.java:**243)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>>> *ApplicationFilterChain.java:**210)
>>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter$**
>>> SessionState$1.handle(**IsisSessionFilter.java:315)
>>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter.**
>>> doFilter(IsisSessionFilter.**java:404)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>>> internalDoFilter(**ApplicationFilterChain.java:**243)
>>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>>> *ApplicationFilterChain.java:**210)
>>>         at org.apache.catalina.core.**StandardWrapperValve.invoke(**
>>> StandardWrapperValve.java:225)
>>>         at org.apache.catalina.core.**StandardContextValve.invoke(**
>>> StandardContextValve.java:123)
>>>         at org.apache.catalina.**authenticator.**
>>> AuthenticatorBase.invoke(**AuthenticatorBase.java:472)
>>>         at org.apache.catalina.core.**StandardHostValve.invoke(**
>>> StandardHostValve.java:168)
>>>         at org.apache.catalina.valves.**ErrorReportValve.invoke(**
>>> ErrorReportValve.java:98)
>>>         at org.apache.catalina.valves.**AccessLogValve.invoke(**
>>> AccessLogValve.java:927)
>>>         at org.apache.catalina.core.**StandardEngineValve.invoke(**
>>> StandardEngineValve.java:118)
>>>         at org.apache.catalina.connector.**CoyoteAdapter.service(**
>>> CoyoteAdapter.java:407)
>>>         at org.apache.coyote.http11.**AbstractHttp11Processor.**process(*
>>> *AbstractHttp11Processor.java:**1001)
>>>         at org.apache.coyote.**AbstractProtocol$**
>>> AbstractConnectionHandler.**process(AbstractProtocol.java:**585)
>>>         at org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
>>> run(JIoEndpoint.java:312)
>>>         at java.util.concurrent.**ThreadPoolExecutor.runWorker(**
>>> ThreadPoolExecutor.java:1110)
>>>         at java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
>>> ThreadPoolExecutor.java:603)
>>>         at java.lang.Thread.run(Thread.**java:722)
>>>
>>>
>>
>



Re: Oh oh, NullPointerException after switching to isis trunk

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Thanks for taking the time to document this; I'll look at it hopefully
later today.


On 5 September 2012 09:54, <mi...@xup.nl> wrote:

> Hi folks,
>
> The examples in trunk show this exact same behavior.
>
> It seems the examples have been neglected a little bit, since I first had
> to upgrade them from 0.3.0 --> 0.3.1. The attached patch shows the changes
> I made.
>
> Scenario to get to the NPE:
> 1) apply patch
> 2) mvn clean install  - compiles claims example till html-viewer (json
> viewer fails)
> 3) cd html-viewer
> 4) mvn jetty:run
> 5) open browser in http://localhost:8080/claims-**viewer-html<http://localhost:8080/claims-viewer-html>
> 6) login
> 7) click Employees
> 8) click New Employee
> 9) Enter a name
> 10) click save ----> NPE
>
> Regards,
>
> Minto
>
>
> Quoting minto@xup.nl:
>
>  Hi Folks,
>>
>> After switching from 0.2.0 to isis trunk (0.3.1 snapshot) I run into an
>> NPE (See stacktrace below). I probably did something wrong or forgot
>> something, but I have no clue what. HELP! :-(
>>
>> Everything seems to work until I hit the "Ok" button when trying to
>> create a new object.
>>
>> BTW. I switched back to in-memory persistor (from sql). What is required
>> to get the JDO persistor running or to get the sql persistor back?
>>
>> Regards,
>>
>> Minto
>>
>> java.lang.NullPointerException
>>         at org.apache.isis.core.**metamodel.adapter.version.**
>> ConcurrencyException.**buildMessage(**ConcurrencyException.java:36)
>>         at org.apache.isis.core.**metamodel.adapter.version.**
>> ConcurrencyException.(**ConcurrencyException.java:50)
>>         at org.apache.isis.runtimes.dflt.**runtime.persistence.adapter.**
>> PojoAdapter.checkLock(**PojoAdapter.java:337)
>>         at org.apache.isis.viewer.html.**context.**
>> PersistentRootAdapterMapping.**checkVersion(**
>> PersistentRootAdapterMapping.**java:56)
>>         at org.apache.isis.viewer.html.**context.Context.**
>> getMappedObject(Context.java:**284)
>>         at org.apache.isis.viewer.html.**action.view.**
>> ObjectViewAbstract.execute(**ObjectViewAbstract.java:39)
>>         at org.apache.isis.viewer.html.**servlet.internal.**
>> WebController.runAction(**WebController.java:383)
>>         at org.apache.isis.viewer.html.**servlet.internal.**
>> WebController.generatePage(**WebController.java:286)
>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>> processRequest(**ControllerServlet.java:129)
>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>> processRequest(**ControllerServlet.java:104)
>>         at org.apache.isis.viewer.html.**servlet.ControllerServlet.**
>> doPost(ControllerServlet.java:**82)
>>         at javax.servlet.http.**HttpServlet.service(**
>> HttpServlet.java:641)
>>         at javax.servlet.http.**HttpServlet.service(**
>> HttpServlet.java:722)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>> internalDoFilter(**ApplicationFilterChain.java:**305)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>> *ApplicationFilterChain.java:**210)
>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter$**
>> SessionState.handle(**IsisSessionFilter.java:383)
>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter.**
>> doFilter(IsisSessionFilter.**java:404)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>> internalDoFilter(**ApplicationFilterChain.java:**243)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>> *ApplicationFilterChain.java:**210)
>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter$**
>> SessionState$1.handle(**IsisSessionFilter.java:315)
>>         at org.apache.isis.runtimes.dflt.**webapp.IsisSessionFilter.**
>> doFilter(IsisSessionFilter.**java:404)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**
>> internalDoFilter(**ApplicationFilterChain.java:**243)
>>         at org.apache.catalina.core.**ApplicationFilterChain.**doFilter(*
>> *ApplicationFilterChain.java:**210)
>>         at org.apache.catalina.core.**StandardWrapperValve.invoke(**
>> StandardWrapperValve.java:225)
>>         at org.apache.catalina.core.**StandardContextValve.invoke(**
>> StandardContextValve.java:123)
>>         at org.apache.catalina.**authenticator.**
>> AuthenticatorBase.invoke(**AuthenticatorBase.java:472)
>>         at org.apache.catalina.core.**StandardHostValve.invoke(**
>> StandardHostValve.java:168)
>>         at org.apache.catalina.valves.**ErrorReportValve.invoke(**
>> ErrorReportValve.java:98)
>>         at org.apache.catalina.valves.**AccessLogValve.invoke(**
>> AccessLogValve.java:927)
>>         at org.apache.catalina.core.**StandardEngineValve.invoke(**
>> StandardEngineValve.java:118)
>>         at org.apache.catalina.connector.**CoyoteAdapter.service(**
>> CoyoteAdapter.java:407)
>>         at org.apache.coyote.http11.**AbstractHttp11Processor.**process(*
>> *AbstractHttp11Processor.java:**1001)
>>         at org.apache.coyote.**AbstractProtocol$**
>> AbstractConnectionHandler.**process(AbstractProtocol.java:**585)
>>         at org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**
>> run(JIoEndpoint.java:312)
>>         at java.util.concurrent.**ThreadPoolExecutor.runWorker(**
>> ThreadPoolExecutor.java:1110)
>>         at java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
>> ThreadPoolExecutor.java:603)
>>         at java.lang.Thread.run(Thread.**java:722)
>>
>>
>

Re: Oh oh, NullPointerException after switching to isis trunk

Posted by mi...@xup.nl.
Hi folks,

The examples in trunk show this exact same behavior.

It seems the examples have been neglected a little bit, since I first  
had to upgrade them from 0.3.0 --> 0.3.1. The attached patch shows the  
changes I made.

Scenario to get to the NPE:
1) apply patch
2) mvn clean install  - compiles claims example till html-viewer (json  
viewer fails)
3) cd html-viewer
4) mvn jetty:run
5) open browser in http://localhost:8080/claims-viewer-html
6) login
7) click Employees
8) click New Employee
9) Enter a name
10) click save ----> NPE

Regards,

Minto

Quoting minto@xup.nl:

> Hi Folks,
>
> After switching from 0.2.0 to isis trunk (0.3.1 snapshot) I run into  
> an NPE (See stacktrace below). I probably did something wrong or  
> forgot something, but I have no clue what. HELP! :-(
>
> Everything seems to work until I hit the "Ok" button when trying to  
> create a new object.
>
> BTW. I switched back to in-memory persistor (from sql). What is  
> required to get the JDO persistor running or to get the sql  
> persistor back?
>
> Regards,
>
> Minto
>
> java.lang.NullPointerException
> 	at  
> org.apache.isis.core.metamodel.adapter.version.ConcurrencyException.buildMessage(ConcurrencyException.java:36)
> 	at  
> org.apache.isis.core.metamodel.adapter.version.ConcurrencyException.(ConcurrencyException.java:50)
> 	at  
> org.apache.isis.runtimes.dflt.runtime.persistence.adapter.PojoAdapter.checkLock(PojoAdapter.java:337)
> 	at  
> org.apache.isis.viewer.html.context.PersistentRootAdapterMapping.checkVersion(PersistentRootAdapterMapping.java:56)
> 	at  
> org.apache.isis.viewer.html.context.Context.getMappedObject(Context.java:284)
> 	at  
> org.apache.isis.viewer.html.action.view.ObjectViewAbstract.execute(ObjectViewAbstract.java:39)
> 	at  
> org.apache.isis.viewer.html.servlet.internal.WebController.runAction(WebController.java:383)
> 	at  
> org.apache.isis.viewer.html.servlet.internal.WebController.generatePage(WebController.java:286)
> 	at  
> org.apache.isis.viewer.html.servlet.ControllerServlet.processRequest(ControllerServlet.java:129)
> 	at  
> org.apache.isis.viewer.html.servlet.ControllerServlet.processRequest(ControllerServlet.java:104)
> 	at  
> org.apache.isis.viewer.html.servlet.ControllerServlet.doPost(ControllerServlet.java:82)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at  
> org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter$SessionState.handle(IsisSessionFilter.java:383)
> 	at  
> org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at  
> org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:315)
> 	at  
> org.apache.isis.runtimes.dflt.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:404)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at  
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at  
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
> 	at  
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> 	at  
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> 	at  
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> 	at  
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> 	at  
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> 	at  
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> 	at  
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
> 	at  
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
> 	at  
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> 	at  
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 	at  
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> 	at java.lang.Thread.run(Thread.java:722)
>