[ 
https://issues.apache.org/jira/browse/ISIS-494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13741522#comment-13741522
 ] 

Oscar Bou commented on ISIS-494:
--------------------------------

I think that the example with the ToDoItem class didn't reflect exactly what we 
were finding on our domain. So it's a different case.
For the ToDoItem example, seems that you are correct and that the 
ExceptionRecognizer must be improved to detect NOT NULL constraints as 
Mandatory checks. So that would be needed.

But what I was trying to reproduce with that example (and I didn't achieve :-) 
was a different case.

We have in our domain class a "String" field named "name" defined as:

@Column(allowsNull = "false")
public String getName() {
   return name;
};

On the "creator" method we forgot to initialize it. Despite that, when we 
persisted the entity, all seemed ok (no exception was shown on the Wicket 
viewer), but when we looked at the log we found that an exception was raised 
"at the DN level", and that Isis just "ate" it somewhere (as the Wicket viewer 
showed the message "No Results", meaning that the action was executed and it 
returned "null").

Perhaps it's clearer on this email [1].

I think the reason is the one I exposed at the end of the first email [1] (we 
didn't expect that implementing the onFailure() method of the 
TransactionalClosureWithReturnAbstract was mandatory (for properly handling 
failures).

Quoting the proposed solutions at the end of that email:

- It would imply to change IsisTransactionManager current implementation.
- If no code should be broken for avoiding major version update if semantic
versioning is followed, a descendant of TransactionalClosureWithReturn  could be
defined with a new method "onFailureWithReason(RuntimeException
runtimeException)".
- Also, if an exception can be raised on any "onFailureXXX()" implementation,
protect the abortTransaction(); code inside a try - finally block). 
- I don't expect that any corrective action will need a transaction. If that can
be expected in other use cases, the "onFailure()" method could return a Boolean
parameter to indicate if the Isis transaction must also be aborted and the
current IsisTransactionManager should be modify in accordance.


But the root-cause is the next one. This was the way we found to "integrate" an 
Isis transaction in our viewer, and you mentioned on follow-ups that you were 
thinking about not supporting (i.e. perhaps removing) that closure and that you 
implemented on the RESTFul Objects viewer a new class for Isis session 
handling. Could it be "generalized" or "abstract" to be able to use it on 
"custom viewers" like ours?

In other follow-ups (like [2]) I mentioned the need to have fully-supported API 
classes for integrating Isis session and transaction handling on custom 
viewers. As said on that email:
"* Support for migrating existing projects to Apache Isis. There is a high and
fast growth vector for the community by being adopted by currently existing
applications. But for that, official APIs should be provided for:
- "Custom viewers support": easing the interaction with custom-made pre-existing
User Interfaces (through the REST API, but also through Java APIs). It should
include fully-supported API classes or interfaces for Apache Isis session
handling, transaction management, etc."

Thanks,

Oscar



[1] 
http://apache.markmail.org/message/mwsuv6jnsnckwhku?q=BDD+-+Domain+Object+property+not+validated+after+%22persist%22+%3F&page=1
[2] 
http://apache.markmail.org/message/ekkqcktvxfnfpiwm?q=from:%22GESCONSULTOR+-+%C3%93scar+Bou%22

                
> Wicket viewer/JDO is "eating" an exception
> ------------------------------------------
>
>                 Key: ISIS-494
>                 URL: https://issues.apache.org/jira/browse/ISIS-494
>             Project: Isis
>          Issue Type: Bug
>          Components: Core, Objectstore: JDO, Viewer: Wicket
>    Affects Versions: viewer-wicket-1.1.0, objectstore-jdo-1.1.0, core-1.2.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>             Fix For: viewer-wicket-1.3.0, objectstore-jdo-1.2.0, core-1.3.0
>
>
> Raised by Oscar Bou on mailing list:
> We have tried to create a new persistent object on a Factory Method. 
> The object has a not-null field (called "name").
> By error (we have "unnamed" entities), we were not providing any value to 
> name (passing "null").
> The fact is that the wicket viewer showed: "No results"
> But on the log the following trace could be found.
> Trace:
>      [exec] 14:25:01,631  [sqlonly              qtp1236443008-29 DEBUG]   
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec] 2. INSERT INTO BUSINESSCONTINUITYMANAGEMENTSYSTEM 
> (UPDATEDBYUSER,DATECREATED,ID,DESCRIPTION,"NAME",SCOPE_BUSINESSCONTINUITYMANAGEMENTSYSTEMSCOPE_ID_OID,CREATEDBYUSER,TENANTID,DATEUPDATED)
>  
>      [exec] VALUES ('sven','06/13/2013 
> 14:25:01.288','081CF6E0-9329-42BC-AB00-2307266F1CE2',NULL,NULL,NULL,'sven','TENANT','06/13/2013
>  
>      [exec] 14:25:01.288') 
>      [exec] 14:25:01,634  [audit                qtp1236443008-29 ERROR]  2. 
> PreparedStatement.executeUpdate() INSERT INTO 
> BUSINESSCONTINUITYMANAGEMENTSYSTEM 
> (UPDATEDBYUSER,DATECREATED,ID,DESCRIPTION,"NAME",SCOPE_BUSINESSCONTINUITYMANAGEMENTSYSTEMSCOPE_ID_OID,CREATEDBYUSER,TENANTID,DATEUPDATED)
>  VALUES ('sven','06/13/2013 
> 14:25:01.288','081CF6E0-9329-42BC-AB00-2307266F1CE2',NULL,NULL,NULL,'sven','TENANT','06/13/2013
>  14:25:01.288')
>      [exec] java.sql.SQLIntegrityConstraintViolationException: violación del 
> restricción de integridad: restricción ('check') NOT NULL; SYS_CT_10482 
> table: BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
>      [exec]   at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
>      [exec]   at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
>      [exec]   at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown 
> Source)
>      [exec]   at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown 
> Source)
>      [exec]   at 
> net.sf.log4jdbc.PreparedStatementSpy.executeUpdate(PreparedStatementSpy.java:1022)
>      [exec]   at 
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec]   at 
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec]   at 
> org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:399)
>      [exec]   at 
> org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:439)
>      [exec]   at 
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:409)
>      [exec]   at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>      [exec]   at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>      [exec]   at 
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3774)
>      [exec]   at 
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3750)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2125)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1973)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1821)
>      [exec]   at 
> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>      [exec]   at 
> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand.java:53)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.executeCommands(DataNucleusObjectStore.java:360)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:354)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:367)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:333)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:301)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionOnTargetAndProcessResults(ActionPanel.java:182)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionAndProcessResults(ActionPanel.java:138)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.buildGui(ActionPanel.java:96)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.<init>(ActionPanel.java:89)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanelFactory.createComponent(ActionPanelFactory.java:49)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract.createComponent(ComponentFactoryAbstract.java:82)
>      [exec]   at 
> org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.createComponent(ComponentFactoryRegistryDefault.java:120)
>      [exec]   at 
> org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.addOrReplaceComponent(ComponentFactoryRegistryDefault.java:105)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addComponent(PageAbstract.java:263)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addChildComponents(PageAbstract.java:258)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.action.ActionPage.<init>(ActionPage.java:54)
>      [exec]   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>      [exec]   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>      [exec]   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>      [exec]   at 
> java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>      [exec]   at 
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170)
>      [exec]   at 
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:98)
>      [exec]   at 
> org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137)
>      [exec]   at 
> org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:268)
>      [exec]   at 
> org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166)
>      [exec]   at 
> org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78)
>      [exec]   at 
> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:94)
>      [exec]   at 
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:196)
>      [exec]   at 
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:854)
>      [exec]   at 
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:254)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:211)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:282)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>      [exec]   at 
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>      [exec]   at 
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>      [exec]   at 
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>      [exec]   at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
>      [exec]   at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
>      [exec]   at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:940)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
>      [exec]   at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:874)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
>      [exec]   at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
>      [exec]   at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
>      [exec]   at org.eclipse.jetty.server.Server.handle(Server.java:349)
>      [exec]   at 
> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
>      [exec]   at 
> org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:904)
>      [exec]   at 
> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565)
>      [exec]   at 
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217)
>      [exec]   at 
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46)
>      [exec]   at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
>      [exec]   at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
>      [exec]   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
>      [exec]   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
>      [exec]   at java.lang.Thread.run(Thread.java:680)
>      [exec] Caused by: org.hsqldb.HsqlException: violación del restricción de 
> integridad: restricción ('check') NOT NULL; SYS_CT_10482 table: 
> BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
>      [exec]   at org.hsqldb.error.Error.error(Unknown Source)
>      [exec]   at org.hsqldb.Table.enforceRowConstraints(Unknown Source)
>      [exec]   at org.hsqldb.Table.insertSingleRow(Unknown Source)
>      [exec]   at org.hsqldb.StatementDML.insertRowSet(Unknown Source)
>      [exec]   at org.hsqldb.StatementInsert.getResult(Unknown Source)
>      [exec]   at org.hsqldb.StatementDMQL.execute(Unknown Source)
>      [exec]   at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
>      [exec]   at org.hsqldb.Session.execute(Unknown Source)
>      [exec]   ... 87 more
>      [exec] 14:25:01,640  [sqlonly              qtp1236443008-29 ERROR]   
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec] 2. INSERT INTO BUSINESSCONTINUITYMANAGEMENTSYSTEM 
> (UPDATEDBYUSER,DATECREATED,ID,DESCRIPTION,"NAME",SCOPE_BUSINESSCONTINUITYMANAGEMENTSYSTEMSCOPE_ID_OID,CREATEDBYUSER,TENANTID,DATEUPDATED)
>  VALUES ('sven','06/13/2013 
> 14:25:01.288','081CF6E0-9329-42BC-AB00-2307266F1CE2',NULL,NULL,NULL,'sven','TENANT','06/13/2013
>  14:25:01.288')
>      [exec] java.sql.SQLIntegrityConstraintViolationException: violación del 
> restricción de integridad: restricción ('check') NOT NULL; SYS_CT_10482 
> table: BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
>      [exec]   at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
>      [exec]   at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
>      [exec]   at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown 
> Source)
>      [exec]   at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown 
> Source)
>      [exec]   at 
> net.sf.log4jdbc.PreparedStatementSpy.executeUpdate(PreparedStatementSpy.java:1022)
>      [exec]   at 
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec]   at 
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec]   at 
> org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:399)
>      [exec]   at 
> org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:439)
>      [exec]   at 
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:409)
>      [exec]   at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>      [exec]   at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>      [exec]   at 
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3774)
>      [exec]   at 
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3750)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2125)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1973)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1821)
>      [exec]   at 
> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>      [exec]   at 
> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand.java:53)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.executeCommands(DataNucleusObjectStore.java:360)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:354)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:367)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:333)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:301)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionOnTargetAndProcessResults(ActionPanel.java:182)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionAndProcessResults(ActionPanel.java:138)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.buildGui(ActionPanel.java:96)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.<init>(ActionPanel.java:89)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanelFactory.createComponent(ActionPanelFactory.java:49)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract.createComponent(ComponentFactoryAbstract.java:82)
>      [exec]   at 
> org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.createComponent(ComponentFactoryRegistryDefault.java:120)
>      [exec]   at 
> org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.addOrReplaceComponent(ComponentFactoryRegistryDefault.java:105)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addComponent(PageAbstract.java:263)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addChildComponents(PageAbstract.java:258)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.action.ActionPage.<init>(ActionPage.java:54)
>      [exec]   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>      [exec]   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>      [exec]   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>      [exec]   at 
> java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>      [exec]   at 
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170)
>      [exec]   at 
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:98)
>      [exec]   at 
> org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137)
>      [exec]   at 
> org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:268)
>      [exec]   at 
> org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166)
>      [exec]   at 
> org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78)
>      [exec]   at 
> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:94)
>      [exec]   at 
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:196)
>      [exec]   at 
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:854)
>      [exec]   at 
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:254)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:211)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:282)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>      [exec]   at 
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>      [exec]   at 
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>      [exec]   at 
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>      [exec]   at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
>      [exec]   at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
>      [exec]   at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:940)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
>      [exec]   at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:874)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
>      [exec]   at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
>      [exec]   at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
>      [exec]   at org.eclipse.jetty.server.Server.handle(Server.java:349)
>      [exec]   at 
> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
>      [exec]   at 
> org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:904)
>      [exec]   at 
> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565)
>      [exec]   at 
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217)
>      [exec]   at 
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46)
>      [exec]   at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
>      [exec]   at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
>      [exec]   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
>      [exec]   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
>      [exec]   at java.lang.Thread.run(Thread.java:680)
>      [exec] Caused by: org.hsqldb.HsqlException: violación del restricción de 
> integridad: restricción ('check') NOT NULL; SYS_CT_10482 table: 
> BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
>      [exec]   at org.hsqldb.error.Error.error(Unknown Source)
>      [exec]   at org.hsqldb.Table.enforceRowConstraints(Unknown Source)
>      [exec]   at org.hsqldb.Table.insertSingleRow(Unknown Source)
>      [exec]   at org.hsqldb.StatementDML.insertRowSet(Unknown Source)
>      [exec]   at org.hsqldb.StatementInsert.getResult(Unknown Source)
>      [exec]   at org.hsqldb.StatementDMQL.execute(Unknown Source)
>      [exec]   at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
>      [exec]   at org.hsqldb.Session.execute(Unknown Source)
>      [exec]   ... 87 more
>      [exec] 14:25:01,644  [Persist              qtp1236443008-29 WARN ]  
> Persistencia del objeto 
> "com.xms.framework.risk.domain.model.continuity.BusinessContinuityManagementSystem@47febf99"
>  con SQL "INSERT INTO BUSINESSCONTINUITYMANAGEMENTSYSTEM 
> (UPDATEDBYUSER,DATECREATED,ID,DESCRIPTION,"NAME",SCOPE_BUSINESSCONTINUITYMANAGEMENTSYSTEMSCOPE_ID_OID,CREATEDBYUSER,TENANTID,DATEUPDATED)
>  VALUES (?,?,?,?,?,?,?,?,?)" ha tirado un error : violación del restricción 
> de integridad: restricción ('check') NOT NULL; SYS_CT_10482 table: 
> BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
>      [exec] 14:25:05,540  [sqlonly              qtp1236443008-31 DEBUG]   
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
>      [exec] 2. SELECT 
> 'com.xms.framework.risk.domain.model.continuity.BusinessContinuityManagementSystem'
>  
>      [exec] FROM BUSINESSCONTINUITYMANAGEMENTSYSTEM A0 WHERE A0.TENANTID = 
> 'n/a' 
>      [exec] 14:25:05,542  [resultsettable       qtp1236443008-31 INFO ]  |---|
>      [exec] 14:25:05,542  [resultsettable       qtp1236443008-31 INFO ]  |C1 |
>      [exec] 14:25:05,542  [resultsettable       qtp1236443008-31 INFO ]  |---|
>      [exec] 14:25:05,542  [resultsettable       qtp1236443008-31 INFO ]  |---|
>      [exec] 14:25:05,546  [sqlonly              qtp1236443008-31 DEBUG]   
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec] 2. INSERT INTO BUSINESSCONTINUITYMANAGEMENTSYSTEM 
> (UPDATEDBYUSER,DATECREATED,ID,DESCRIPTION,"NAME",SCOPE_BUSINESSCONTINUITYMANAGEMENTSYSTEMSCOPE_ID_OID,CREATEDBYUSER,TENANTID,DATEUPDATED)
>  
>      [exec] VALUES ('sven','06/13/2013 
> 14:25:05.543','29F3CC48-0253-4E27-B487-F509E038F5E0',NULL,NULL,NULL,'sven','TENANT','06/13/2013
>  
>      [exec] 14:25:05.543') 
>      [exec] 14:25:05,546  [audit                qtp1236443008-31 ERROR]  2. 
> PreparedStatement.executeUpdate() INSERT INTO 
> BUSINESSCONTINUITYMANAGEMENTSYSTEM 
> (UPDATEDBYUSER,DATECREATED,ID,DESCRIPTION,"NAME",SCOPE_BUSINESSCONTINUITYMANAGEMENTSYSTEMSCOPE_ID_OID,CREATEDBYUSER,TENANTID,DATEUPDATED)
>  VALUES ('sven','06/13/2013 
> 14:25:05.543','29F3CC48-0253-4E27-B487-F509E038F5E0',NULL,NULL,NULL,'sven','TENANT','06/13/2013
>  14:25:05.543')
>      [exec] java.sql.SQLIntegrityConstraintViolationException: violación del 
> restricción de integridad: restricción ('check') NOT NULL; SYS_CT_10482 
> table: BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
>      [exec]   at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
>      [exec]   at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
>      [exec]   at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown 
> Source)
>      [exec]   at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown 
> Source)
>      [exec]   at 
> net.sf.log4jdbc.PreparedStatementSpy.executeUpdate(PreparedStatementSpy.java:1022)
>      [exec]   at 
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec]   at 
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec]   at 
> org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:399)
>      [exec]   at 
> org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:439)
>      [exec]   at 
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:409)
>      [exec]   at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>      [exec]   at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>      [exec]   at 
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3774)
>      [exec]   at 
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3750)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2125)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1973)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1821)
>      [exec]   at 
> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>      [exec]   at 
> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand.java:53)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.executeCommands(DataNucleusObjectStore.java:360)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:354)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:367)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:333)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:301)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionOnTargetAndProcessResults(ActionPanel.java:182)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionAndProcessResults(ActionPanel.java:138)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.buildGui(ActionPanel.java:96)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.<init>(ActionPanel.java:89)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanelFactory.createComponent(ActionPanelFactory.java:49)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract.createComponent(ComponentFactoryAbstract.java:82)
>      [exec]   at 
> org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.createComponent(ComponentFactoryRegistryDefault.java:120)
>      [exec]   at 
> org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.addOrReplaceComponent(ComponentFactoryRegistryDefault.java:105)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addComponent(PageAbstract.java:263)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addChildComponents(PageAbstract.java:258)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.action.ActionPage.<init>(ActionPage.java:54)
>      [exec]   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>      [exec]   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>      [exec]   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>      [exec]   at 
> java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>      [exec]   at 
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170)
>      [exec]   at 
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:98)
>      [exec]   at 
> org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137)
>      [exec]   at 
> org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:268)
>      [exec]   at 
> org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166)
>      [exec]   at 
> org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78)
>      [exec]   at 
> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:94)
>      [exec]   at 
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:196)
>      [exec]   at 
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:854)
>      [exec]   at 
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:254)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:211)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:282)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>      [exec]   at 
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>      [exec]   at 
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>      [exec]   at 
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>      [exec]   at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
>      [exec]   at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
>      [exec]   at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:940)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
>      [exec]   at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:874)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
>      [exec]   at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
>      [exec]   at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
>      [exec]   at org.eclipse.jetty.server.Server.handle(Server.java:349)
>      [exec]   at 
> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
>      [exec]   at 
> org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:904)
>      [exec]   at 
> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565)
>      [exec]   at 
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217)
>      [exec]   at 
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46)
>      [exec]   at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
>      [exec]   at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
>      [exec]   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
>      [exec]   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
>      [exec]   at java.lang.Thread.run(Thread.java:680)
>      [exec] Caused by: org.hsqldb.HsqlException: violación del restricción de 
> integridad: restricción ('check') NOT NULL; SYS_CT_10482 table: 
> BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
>      [exec]   at org.hsqldb.error.Error.error(Unknown Source)
>      [exec]   at org.hsqldb.Table.enforceRowConstraints(Unknown Source)
>      [exec]   at org.hsqldb.Table.insertSingleRow(Unknown Source)
>      [exec]   at org.hsqldb.StatementDML.insertRowSet(Unknown Source)
>      [exec]   at org.hsqldb.StatementInsert.getResult(Unknown Source)
>      [exec]   at org.hsqldb.StatementDMQL.execute(Unknown Source)
>      [exec]   at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
>      [exec]   at org.hsqldb.Session.execute(Unknown Source)
>      [exec]   ... 87 more
>      [exec] 14:25:05,550  [sqlonly              qtp1236443008-31 ERROR]   
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec] 2. INSERT INTO BUSINESSCONTINUITYMANAGEMENTSYSTEM 
> (UPDATEDBYUSER,DATECREATED,ID,DESCRIPTION,"NAME",SCOPE_BUSINESSCONTINUITYMANAGEMENTSYSTEMSCOPE_ID_OID,CREATEDBYUSER,TENANTID,DATEUPDATED)
>  VALUES ('sven','06/13/2013 
> 14:25:05.543','29F3CC48-0253-4E27-B487-F509E038F5E0',NULL,NULL,NULL,'sven','TENANT','06/13/2013
>  14:25:05.543')
>      [exec] java.sql.SQLIntegrityConstraintViolationException: violación del 
> restricción de integridad: restricción ('check') NOT NULL; SYS_CT_10482 
> table: BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
>      [exec]   at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
>      [exec]   at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
>      [exec]   at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown 
> Source)
>      [exec]   at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown 
> Source)
>      [exec]   at 
> net.sf.log4jdbc.PreparedStatementSpy.executeUpdate(PreparedStatementSpy.java:1022)
>      [exec]   at 
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec]   at 
> org.datanucleus.store.rdbms.datasource.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
>      [exec]   at 
> org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:399)
>      [exec]   at 
> org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:439)
>      [exec]   at 
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:409)
>      [exec]   at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>      [exec]   at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>      [exec]   at 
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3774)
>      [exec]   at 
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3750)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2125)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1973)
>      [exec]   at 
> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1821)
>      [exec]   at 
> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>      [exec]   at 
> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand.java:53)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.executeCommands(DataNucleusObjectStore.java:360)
>      [exec]   at 
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:354)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:367)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:333)
>      [exec]   at 
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:301)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionOnTargetAndProcessResults(ActionPanel.java:182)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionAndProcessResults(ActionPanel.java:138)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.buildGui(ActionPanel.java:96)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.<init>(ActionPanel.java:89)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanelFactory.createComponent(ActionPanelFactory.java:49)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract.createComponent(ComponentFactoryAbstract.java:82)
>      [exec]   at 
> org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.createComponent(ComponentFactoryRegistryDefault.java:120)
>      [exec]   at 
> org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.addOrReplaceComponent(ComponentFactoryRegistryDefault.java:105)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addComponent(PageAbstract.java:263)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addChildComponents(PageAbstract.java:258)
>      [exec]   at 
> org.apache.isis.viewer.wicket.ui.pages.action.ActionPage.<init>(ActionPage.java:54)
>      [exec]   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>      [exec]   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>      [exec]   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>      [exec]   at 
> java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>      [exec]   at 
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170)
>      [exec]   at 
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:98)
>      [exec]   at 
> org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137)
>      [exec]   at 
> org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:268)
>      [exec]   at 
> org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166)
>      [exec]   at 
> org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78)
>      [exec]   at 
> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:94)
>      [exec]   at 
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:196)
>      [exec]   at 
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:854)
>      [exec]   at 
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:254)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:211)
>      [exec]   at 
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:282)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
>      [exec]   at 
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>      [exec]   at 
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>      [exec]   at 
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>      [exec]   at 
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>      [exec]   at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>      [exec]   at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
>      [exec]   at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
>      [exec]   at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:940)
>      [exec]   at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
>      [exec]   at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:874)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
>      [exec]   at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
>      [exec]   at 
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
>      [exec]   at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
>      [exec]   at org.eclipse.jetty.server.Server.handle(Server.java:349)
>      [exec]   at 
> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
>      [exec]   at 
> org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:904)
>      [exec]   at 
> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565)
>      [exec]   at 
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217)
>      [exec]   at 
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46)
>      [exec]   at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
>      [exec]   at 
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
>      [exec]   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
>      [exec]   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
>      [exec]   at java.lang.Thread.run(Thread.java:680)
>      [exec] Caused by: org.hsqldb.HsqlException: violación del restricción de 
> integridad: restricción ('check') NOT NULL; SYS_CT_10482 table: 
> BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
>      [exec]   at org.hsqldb.error.Error.error(Unknown Source)
>      [exec]   at org.hsqldb.Table.enforceRowConstraints(Unknown Source)
>      [exec]   at org.hsqldb.Table.insertSingleRow(Unknown Source)
>      [exec]   at org.hsqldb.StatementDML.insertRowSet(Unknown Source)
>      [exec]   at org.hsqldb.StatementInsert.getResult(Unknown Source)
>      [exec]   at org.hsqldb.StatementDMQL.execute(Unknown Source)
>      [exec]   at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
>      [exec]   at org.hsqldb.Session.execute(Unknown Source)
>      [exec]   ... 87 more
>      [exec] 14:25:05,553  [Persist              qtp1236443008-31 WARN ]  
> Persistencia del objeto 
> "com.xms.framework.risk.domain.model.continuity.BusinessContinuityManagementSystem@34940a15"
>  con SQL "INSERT INTO BUSINESSCONTINUITYMANAGEMENTSYSTEM 
> (UPDATEDBYUSER,DATECREATED,ID,DESCRIPTION,"NAME",SCOPE_BUSINESSCONTINUITYMANAGEMENTSYSTEMSCOPE_ID_OID,CREATEDBYUSER,TENANTID,DATEUPDATED)
>  VALUES (?,?,?,?,?,?,?,?,?)" ha tirado un error : violación del restricción 
> de integridad: restricción ('check') NOT NULL; SYS_CT_10482 table: 
> BUSINESSCONTINUITYMANAGEMENTSYSTEM column: "NAME"
> So seems that Isis is "eating" this exception. In this case is due to an 
> error by ourselves, but the fact is that in other cases it could originate 
> "bad business logic", as the object "seems to be persisted".
> The only thing we have made is annotate the "name" property with 
> @Column(allowsNull = "false")
> But, if I modify the Quickstart archetype "ToDoItem.java" from this:
>     @Column(allowsNull = "false", scale = 2)
>     @Optional
>     @MemberOrder(sequence = "4.1")
>     public BigDecimal getCost() {
>         return cost;
>     }
> to this:
>     @Column(scale = 2)
>     @Optional
>     @MemberOrder(sequence = "4.1")
>     public BigDecimal getCost() {
>         return cost;
>     }
> And try to create a new instance with the newToDoItem action, it detects it 
> properly showing, as per attached screenshot.
> What can be have not properly configured?
> On isis.services we are including the 
> "org.apache.isis.objectstore.jdo.applib.service.exceprecog.ExceptionRecognizerCompositeForJdoObjectStore"
> isis.services = 
> org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl,
>  \
>                 
> org.apache.isis.core.metamodel.services.bookmarks.BookmarkServiceDefault,\
>                 org.apache.isis.objectstore.jdo.service.RegisterEntities,\
>                 
> org.apache.isis.objectstore.jdo.applib.service.exceprecog.ExceptionRecognizerCompositeForJdoObjectStore,\
>                 
> org.apache.isis.viewer.restfulobjects.rendering.eventserializer.RestfulObjectsSpecEventSerializer,\
>                 org.apache.isis.applib.services.audit.AuditingService$Stderr,\
>                 
> org.apache.isis.applib.services.publish.PublishingService$Stderr ,\
>       ....

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to