You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by "Paul Sharples (JIRA)" <ji...@apache.org> on 2010/11/28 15:56:38 UTC

[jira] Created: (WOOKIE-168) Cannot remove widget from wookie after it has become an instance.

Cannot remove widget from wookie after it has become an instance.
-----------------------------------------------------------------

                 Key: WOOKIE-168
                 URL: https://issues.apache.org/jira/browse/WOOKIE-168
             Project: Wookie
          Issue Type: Bug
          Components: Server
    Affects Versions: 0.9.0
         Environment: Win Vista (all browsers)
            Reporter: Paul Sharples
            Priority: Critical
             Fix For: 0.9.0


This problem occurs when you import a widget into wookie and you also instantiate it - For example choosing it from the gallery. If you then try to remove it from wookie, a stacktrace appears in the log.

To reproduce...

(1) Start wookie in standalone mode
(2) Go to http://localhost:8080/wookie
(3) Drag 'n drop a .wgt package into the hot deploy folder of wookie
(4) Login to the admin section of wookie & verifiy that it is installed correctly.
(5) Using the 'delete widget' section of the wookie admin, remove the widget (this should work okay)
(6) Repeat steps 3 & 4. only
(7) Go to the gallery page and click on the newly imported widget, so that it becomes an instance.
(8) Return to the admin section of wookie & try to delete the widget (step 5)

The second time an error occurs with the following stacktrace...

   [java] 14:45:41,320 ERROR log:? - /wookie/admin/WidgetAdminServlet
     [java] java.lang.RuntimeException: Persistence commit exception caught for transaction: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
     [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
     [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:80)
     [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
     [java] 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
     [java] 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
     [java] 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
     [java] 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
     [java] 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
     [java] 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
     [java] 	at org.mortbay.jetty.Server.handle(Server.java:285)
     [java] 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
     [java] 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
     [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
     [java] 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
     [java] 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
     [java] 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
     [java] 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
     [java] Caused by: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
     [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
     [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:370)
     [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:64)
     [java] 	... 15 more
     [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
     [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
     [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:583)
     [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:366)
     [java] 	... 16 more
     [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
     [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
     [java] 	at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2302)
     [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
     [java] 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
     [java] 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
     [java] 	at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
     [java] 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
     [java] 	at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
     [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:559)
     [java] 	... 17 more
     [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
     [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
     [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4821)
     [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4787)
     [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
     [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
     [java] 	at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:81)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
     [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:357)
     [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flushGraph(ConstraintUpdateManager.java:349)
     [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:111)
     [java] 	at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
     [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:103)
     [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:76)
     [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:751)
     [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
     [java] 	at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:540)
     [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
     [java] 	... 24 more
     [java] Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
     [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
     [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:233)
     [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
     [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1079)
     [java] 	at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
     [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1722)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
     [java] 	... 37 more


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WOOKIE-168) Cannot remove widget from wookie after it has become an instance.

Posted by "Paul Sharples (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WOOKIE-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966063#action_12966063 ] 

Paul Sharples commented on WOOKIE-168:
--------------------------------------

Also found a similar issue with deleting an instantiated suduku widget...

  [java] Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKSHAREDDATA1' for key (8).  The statement has been rolled back. {prepstmnt 5382017 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 8, (int) 1]} [code=20000, state=23503]
     [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
     [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:233)
     [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
     [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1079)
     [java] 	at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
     [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1722)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
     [java] 	... 37 more



> Cannot remove widget from wookie after it has become an instance.
> -----------------------------------------------------------------
>
>                 Key: WOOKIE-168
>                 URL: https://issues.apache.org/jira/browse/WOOKIE-168
>             Project: Wookie
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 0.9.0
>         Environment: Win Vista (all browsers)
>            Reporter: Paul Sharples
>            Priority: Critical
>             Fix For: 0.9.0
>
>
> This problem occurs when you import a widget into wookie and you also instantiate it - For example choosing it from the gallery. If you then try to remove it from wookie, a stacktrace appears in the log.
> To reproduce...
> (1) Start wookie in standalone mode
> (2) Go to http://localhost:8080/wookie
> (3) Drag 'n drop a .wgt package into the hot deploy folder of wookie
> (4) Login to the admin section of wookie & verifiy that it is installed correctly.
> (5) Using the 'delete widget' section of the wookie admin, remove the widget (this should work okay)
> (6) Repeat steps 3 & 4. only
> (7) Go to the gallery page and click on the newly imported widget, so that it becomes an instance.
> (8) Return to the admin section of wookie & try to delete the widget (step 5)
> The second time an error occurs with the following stacktrace...
>    [java] 14:45:41,320 ERROR log:? - /wookie/admin/WidgetAdminServlet
>      [java] java.lang.RuntimeException: Persistence commit exception caught for transaction: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:80)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
>      [java] 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>      [java] 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>      [java] 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>      [java] 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>      [java] 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>      [java] 	at org.mortbay.jetty.Server.handle(Server.java:285)
>      [java] 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>      [java] 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>      [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
>      [java] 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>      [java] 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>      [java] 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
>      [java] 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>      [java] Caused by: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:370)
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:64)
>      [java] 	... 15 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:583)
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:366)
>      [java] 	... 16 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2302)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
>      [java] 	at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>      [java] 	at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:559)
>      [java] 	... 17 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4821)
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4787)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:81)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:357)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flushGraph(ConstraintUpdateManager.java:349)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:111)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:103)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:76)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:751)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:540)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	... 24 more
>      [java] Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:233)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1079)
>      [java] 	at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1722)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
>      [java] 	... 37 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (WOOKIE-168) Cannot remove widget from wookie after it has become an instance.

Posted by "Paul Sharples (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WOOKIE-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966185#action_12966185 ] 

Paul Sharples edited comment on WOOKIE-168 at 12/3/10 5:00 AM:
---------------------------------------------------------------

Agreed, I don't think removing the constraints is the right way forward as there is still an underlying issue.  

I've been experimenting with the code today, specifically the bean entites where the cascading behaviour is defined, but I've not been able to get to the bottom of it.  I will have to read the manuals in more detail to figure out what is going on properly (i'm not as up on it as i was with hibernate).  However, using an approach similar to Scotts, I have been able to resolve the errors by adding code in the ...

WidgetFactory.destroy(instance)

...method to remove any child records first (we used to do it this way in a similar fashion)

a la....

public static boolean destroy(IWidget widget){
		if(widget==null) return false;
		
		// remove any defaults for this widget
                IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
		IWidgetDefault[] widgetDefault = persistenceManager.findByValue(IWidgetDefault.class, "widget", widget);
		if (widgetDefault.length == 1) persistenceManager.delete(widgetDefault[0]);
		
		// remove any widget instances for this widget
		IWidgetInstance[] instances = persistenceManager.findByValue(IWidgetInstance.class, "widget", widget);	
		for(IWidgetInstance instance : instances){		
			IParticipant[] participants = persistenceManager.findParticipants(instance);
			for (IParticipant participant:participants){
				persistenceManager.delete(participant);
			}
			
			// remove any preferences
			IPreference[] preferences = persistenceManager.findByValue(IPreference.class, "widgetInstance", instance);
			persistenceManager.delete(preferences);
			
			// remove the instance
			WidgetInstanceFactory.destroy(instance);
		}

	// remove any AccessRequests
        IAccessRequest[] accessRequests = persistenceManager.findByValue(IAccessRequest.class, "widget", widget);
        persistenceManager.delete(accessRequests);

        //remove SharedDataEntries
        ISharedData[] sharedData = persistenceManager.findByValue(ISharedData.class, "widget", widget);
        persistenceManager.delete(sharedData);
        
		// remove the widget itself
		persistenceManager.delete(widget);
		return true;
	} 


This stops the error messages we noticed when trying to delete a widget with attached preferences and/or shareddata.  Short term i think i should probably commit this and we flag an issue for a later release explaining the problem. (i.e. cascade deletion not configured correctly)

  
> Cannot remove widget from wookie after it has become an instance.
> -----------------------------------------------------------------
>
>                 Key: WOOKIE-168
>                 URL: https://issues.apache.org/jira/browse/WOOKIE-168
>             Project: Wookie
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 0.9.0
>         Environment: Win Vista (all browsers)
>            Reporter: Paul Sharples
>            Priority: Critical
>             Fix For: 0.9.0
>
>
> This problem occurs when you import a widget into wookie and you also instantiate it - For example choosing it from the gallery. If you then try to remove it from wookie, a stacktrace appears in the log.
> To reproduce...
> (1) Start wookie in standalone mode
> (2) Go to http://localhost:8080/wookie
> (3) Drag 'n drop a .wgt package into the hot deploy folder of wookie
> (4) Login to the admin section of wookie & verifiy that it is installed correctly.
> (5) Using the 'delete widget' section of the wookie admin, remove the widget (this should work okay)
> (6) Repeat steps 3 & 4. only
> (7) Go to the gallery page and click on the newly imported widget, so that it becomes an instance.
> (8) Return to the admin section of wookie & try to delete the widget (step 5)
> The second time an error occurs with the following stacktrace...
>    [java] 14:45:41,320 ERROR log:? - /wookie/admin/WidgetAdminServlet
>      [java] java.lang.RuntimeException: Persistence commit exception caught for transaction: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:80)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
>      [java] 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>      [java] 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>      [java] 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>      [java] 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>      [java] 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>      [java] 	at org.mortbay.jetty.Server.handle(Server.java:285)
>      [java] 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>      [java] 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>      [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
>      [java] 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>      [java] 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>      [java] 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
>      [java] 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>      [java] Caused by: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:370)
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:64)
>      [java] 	... 15 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:583)
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:366)
>      [java] 	... 16 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2302)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
>      [java] 	at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>      [java] 	at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:559)
>      [java] 	... 17 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4821)
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4787)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:81)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:357)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flushGraph(ConstraintUpdateManager.java:349)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:111)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:103)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:76)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:751)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:540)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	... 24 more
>      [java] Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:233)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1079)
>      [java] 	at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1722)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
>      [java] 	... 37 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WOOKIE-168) Cannot remove widget from wookie after it has become an instance.

Posted by "Scott Wilson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WOOKIE-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966474#action_12966474 ] 

Scott Wilson commented on WOOKIE-168:
-------------------------------------

I think that's a good solution.

> Cannot remove widget from wookie after it has become an instance.
> -----------------------------------------------------------------
>
>                 Key: WOOKIE-168
>                 URL: https://issues.apache.org/jira/browse/WOOKIE-168
>             Project: Wookie
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 0.9.0
>         Environment: Win Vista (all browsers)
>            Reporter: Paul Sharples
>            Priority: Critical
>             Fix For: 0.9.0
>
>
> This problem occurs when you import a widget into wookie and you also instantiate it - For example choosing it from the gallery. If you then try to remove it from wookie, a stacktrace appears in the log.
> To reproduce...
> (1) Start wookie in standalone mode
> (2) Go to http://localhost:8080/wookie
> (3) Drag 'n drop a .wgt package into the hot deploy folder of wookie
> (4) Login to the admin section of wookie & verifiy that it is installed correctly.
> (5) Using the 'delete widget' section of the wookie admin, remove the widget (this should work okay)
> (6) Repeat steps 3 & 4. only
> (7) Go to the gallery page and click on the newly imported widget, so that it becomes an instance.
> (8) Return to the admin section of wookie & try to delete the widget (step 5)
> The second time an error occurs with the following stacktrace...
>    [java] 14:45:41,320 ERROR log:? - /wookie/admin/WidgetAdminServlet
>      [java] java.lang.RuntimeException: Persistence commit exception caught for transaction: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:80)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
>      [java] 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>      [java] 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>      [java] 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>      [java] 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>      [java] 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>      [java] 	at org.mortbay.jetty.Server.handle(Server.java:285)
>      [java] 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>      [java] 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>      [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
>      [java] 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>      [java] 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>      [java] 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
>      [java] 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>      [java] Caused by: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:370)
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:64)
>      [java] 	... 15 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:583)
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:366)
>      [java] 	... 16 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2302)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
>      [java] 	at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>      [java] 	at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:559)
>      [java] 	... 17 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4821)
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4787)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:81)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:357)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flushGraph(ConstraintUpdateManager.java:349)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:111)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:103)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:76)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:751)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:540)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	... 24 more
>      [java] Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:233)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1079)
>      [java] 	at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1722)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
>      [java] 	... 37 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WOOKIE-168) Cannot remove widget from wookie after it has become an instance.

Posted by "Scott Wilson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WOOKIE-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12965237#action_12965237 ] 

Scott Wilson commented on WOOKIE-168:
-------------------------------------

I created a simple test case using the existing harness and deleting a Widget causes an error for both JPA and JCR. Deleting the WidgetInstance first has no effect - there is a side effect of instantiation which is not being caught.

> Cannot remove widget from wookie after it has become an instance.
> -----------------------------------------------------------------
>
>                 Key: WOOKIE-168
>                 URL: https://issues.apache.org/jira/browse/WOOKIE-168
>             Project: Wookie
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 0.9.0
>         Environment: Win Vista (all browsers)
>            Reporter: Paul Sharples
>            Priority: Critical
>             Fix For: 0.9.0
>
>
> This problem occurs when you import a widget into wookie and you also instantiate it - For example choosing it from the gallery. If you then try to remove it from wookie, a stacktrace appears in the log.
> To reproduce...
> (1) Start wookie in standalone mode
> (2) Go to http://localhost:8080/wookie
> (3) Drag 'n drop a .wgt package into the hot deploy folder of wookie
> (4) Login to the admin section of wookie & verifiy that it is installed correctly.
> (5) Using the 'delete widget' section of the wookie admin, remove the widget (this should work okay)
> (6) Repeat steps 3 & 4. only
> (7) Go to the gallery page and click on the newly imported widget, so that it becomes an instance.
> (8) Return to the admin section of wookie & try to delete the widget (step 5)
> The second time an error occurs with the following stacktrace...
>    [java] 14:45:41,320 ERROR log:? - /wookie/admin/WidgetAdminServlet
>      [java] java.lang.RuntimeException: Persistence commit exception caught for transaction: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:80)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
>      [java] 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>      [java] 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>      [java] 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>      [java] 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>      [java] 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>      [java] 	at org.mortbay.jetty.Server.handle(Server.java:285)
>      [java] 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>      [java] 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>      [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
>      [java] 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>      [java] 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>      [java] 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
>      [java] 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>      [java] Caused by: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:370)
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:64)
>      [java] 	... 15 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:583)
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:366)
>      [java] 	... 16 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2302)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
>      [java] 	at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>      [java] 	at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:559)
>      [java] 	... 17 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4821)
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4787)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:81)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:357)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flushGraph(ConstraintUpdateManager.java:349)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:111)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:103)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:76)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:751)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:540)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	... 24 more
>      [java] Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:233)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1079)
>      [java] 	at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1722)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
>      [java] 	... 37 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WOOKIE-168) Cannot remove widget from wookie after it has become an instance.

Posted by "Paul Sharples (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WOOKIE-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966058#action_12966058 ] 

Paul Sharples commented on WOOKIE-168:
--------------------------------------

Still problems to do with deleting widgets & instances...

To reproduce...

(1) Start wookie in standalone mode
(2) Go to http://localhost:8080/wookie
(3) Go to the gallery page and click on the API test widget to instantiate it
(4) Login to the admin section of wookie 
(5) Using the 'delete widget' section of the wookie admin, try to remove the widget

I get the following stacktrace...

     [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetInstanceImpl-719
     [java] <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
     [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetInstanceImpl-719
     [java] 	at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2302)
     [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
     [java] 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
     [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1808)
     [java] 	at org.apache.openjpa.kernel.QueryImpl.isInMemory(QueryImpl.java:971)
     [java] 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:851)
     [java] 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:792)
     [java] 	at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
     [java] 	at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:288)
     [java] 	at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:302)
     [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.findParticipants(JPAPersistenceManager.java:690)
     [java] 	at org.apache.wookie.helpers.WidgetFactory.destroy(WidgetFactory.java:261)
     [java] 	at org.apache.wookie.helpers.WidgetFactory.destroy(WidgetFactory.java:230)
     [java] 	at org.apache.wookie.WidgetAdminServlet.removeWidget(WidgetAdminServlet.java:378)
     [java] 	at org.apache.wookie.WidgetAdminServlet.doGet(WidgetAdminServlet.java:202)
     [java] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
     [java] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
     [java] 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
     [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1098)
     [java] 	at org.apache.wookie.server.CharSetFilter.doFilter(CharSetFilter.java:34)
     [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
     [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:63)
     [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
     [java] 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
     [java] 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
     [java] 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
     [java] 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
     [java] 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
     [java] 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
     [java] 	at org.mortbay.jetty.Server.handle(Server.java:285)
     [java] 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
     [java] 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
     [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
     [java] 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
     [java] 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
     [java] 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
     [java] 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
     [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: DELETE on table 'WIDGETINSTANCE' caused a violation of foreign key constraint 'FKPREFERENCE1' for key (719).  The statement has been rolled back. {prepstmnt 24631307 DELETE FROM JAVA.WidgetInstance WHERE ID = ? AND JPA_VERSION = ? [params=(int) 719, (int) 1]} [code=20000, state=23503]
     [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetInstanceImpl-719
     [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4821)
     [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4787)
     [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
     [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
     [java] 	at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:81)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
     [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
     [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:357)
     [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flushGraph(ConstraintUpdateManager.java:349)
     [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:111)
     [java] 	at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
     [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:103)
     [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:76)
     [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:751)
     [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
     [java] 	at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:540)
     [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
     [java] 	... 36 more

> Cannot remove widget from wookie after it has become an instance.
> -----------------------------------------------------------------
>
>                 Key: WOOKIE-168
>                 URL: https://issues.apache.org/jira/browse/WOOKIE-168
>             Project: Wookie
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 0.9.0
>         Environment: Win Vista (all browsers)
>            Reporter: Paul Sharples
>            Priority: Critical
>             Fix For: 0.9.0
>
>
> This problem occurs when you import a widget into wookie and you also instantiate it - For example choosing it from the gallery. If you then try to remove it from wookie, a stacktrace appears in the log.
> To reproduce...
> (1) Start wookie in standalone mode
> (2) Go to http://localhost:8080/wookie
> (3) Drag 'n drop a .wgt package into the hot deploy folder of wookie
> (4) Login to the admin section of wookie & verifiy that it is installed correctly.
> (5) Using the 'delete widget' section of the wookie admin, remove the widget (this should work okay)
> (6) Repeat steps 3 & 4. only
> (7) Go to the gallery page and click on the newly imported widget, so that it becomes an instance.
> (8) Return to the admin section of wookie & try to delete the widget (step 5)
> The second time an error occurs with the following stacktrace...
>    [java] 14:45:41,320 ERROR log:? - /wookie/admin/WidgetAdminServlet
>      [java] java.lang.RuntimeException: Persistence commit exception caught for transaction: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:80)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
>      [java] 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>      [java] 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>      [java] 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>      [java] 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>      [java] 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>      [java] 	at org.mortbay.jetty.Server.handle(Server.java:285)
>      [java] 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>      [java] 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>      [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
>      [java] 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>      [java] 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>      [java] 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
>      [java] 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>      [java] Caused by: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:370)
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:64)
>      [java] 	... 15 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:583)
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:366)
>      [java] 	... 16 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2302)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
>      [java] 	at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>      [java] 	at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:559)
>      [java] 	... 17 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4821)
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4787)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:81)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:357)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flushGraph(ConstraintUpdateManager.java:349)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:111)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:103)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:76)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:751)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:540)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	... 24 more
>      [java] Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:233)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1079)
>      [java] 	at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1722)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
>      [java] 	... 37 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WOOKIE-168) Cannot remove widget from wookie after it has become an instance.

Posted by "Scott Wilson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WOOKIE-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12965647#action_12965647 ] 

Scott Wilson commented on WOOKIE-168:
-------------------------------------

OK, getting a bit deeper into this one now.

I can replicate the error using the management interface as described. I can fix this by adding the following to WidgetInstanceFactory.destroy(instance):

		// Delete all participants
		IParticipant[] participants = persistenceManager.findParticipants(instance);
		for (IParticipant participant:participants){
			persistenceManager.delete(participant);
		}

However I can't replicate the error from within AbstractPersistenceTest: when I add a "delete widget" case, with or without instantiating it, JPA always works, and JCR always fails.

I'm happy to commit the fix for now to close this issue, but I think the JCR implementation needs more testing done, and we need more persistence test cases.

> Cannot remove widget from wookie after it has become an instance.
> -----------------------------------------------------------------
>
>                 Key: WOOKIE-168
>                 URL: https://issues.apache.org/jira/browse/WOOKIE-168
>             Project: Wookie
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 0.9.0
>         Environment: Win Vista (all browsers)
>            Reporter: Paul Sharples
>            Priority: Critical
>             Fix For: 0.9.0
>
>
> This problem occurs when you import a widget into wookie and you also instantiate it - For example choosing it from the gallery. If you then try to remove it from wookie, a stacktrace appears in the log.
> To reproduce...
> (1) Start wookie in standalone mode
> (2) Go to http://localhost:8080/wookie
> (3) Drag 'n drop a .wgt package into the hot deploy folder of wookie
> (4) Login to the admin section of wookie & verifiy that it is installed correctly.
> (5) Using the 'delete widget' section of the wookie admin, remove the widget (this should work okay)
> (6) Repeat steps 3 & 4. only
> (7) Go to the gallery page and click on the newly imported widget, so that it becomes an instance.
> (8) Return to the admin section of wookie & try to delete the widget (step 5)
> The second time an error occurs with the following stacktrace...
>    [java] 14:45:41,320 ERROR log:? - /wookie/admin/WidgetAdminServlet
>      [java] java.lang.RuntimeException: Persistence commit exception caught for transaction: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:80)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
>      [java] 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>      [java] 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>      [java] 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>      [java] 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>      [java] 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>      [java] 	at org.mortbay.jetty.Server.handle(Server.java:285)
>      [java] 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>      [java] 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>      [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
>      [java] 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>      [java] 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>      [java] 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
>      [java] 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>      [java] Caused by: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:370)
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:64)
>      [java] 	... 15 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:583)
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:366)
>      [java] 	... 16 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2302)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
>      [java] 	at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>      [java] 	at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:559)
>      [java] 	... 17 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4821)
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4787)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:81)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:357)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flushGraph(ConstraintUpdateManager.java:349)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:111)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:103)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:76)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:751)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:540)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	... 24 more
>      [java] Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:233)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1079)
>      [java] 	at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1722)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
>      [java] 	... 37 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WOOKIE-168) Cannot remove widget from wookie after it has become an instance.

Posted by "Scott Wilson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WOOKIE-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966078#action_12966078 ] 

Scott Wilson commented on WOOKIE-168:
-------------------------------------

Well, I can get rid of these errors by removing the Foreign Key constraints from the DDL file, in which case the cascading delete proceeds fine (and all the usual test cases pass), but I'm not sure that's actually the correct thing to do..?

> Cannot remove widget from wookie after it has become an instance.
> -----------------------------------------------------------------
>
>                 Key: WOOKIE-168
>                 URL: https://issues.apache.org/jira/browse/WOOKIE-168
>             Project: Wookie
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 0.9.0
>         Environment: Win Vista (all browsers)
>            Reporter: Paul Sharples
>            Priority: Critical
>             Fix For: 0.9.0
>
>
> This problem occurs when you import a widget into wookie and you also instantiate it - For example choosing it from the gallery. If you then try to remove it from wookie, a stacktrace appears in the log.
> To reproduce...
> (1) Start wookie in standalone mode
> (2) Go to http://localhost:8080/wookie
> (3) Drag 'n drop a .wgt package into the hot deploy folder of wookie
> (4) Login to the admin section of wookie & verifiy that it is installed correctly.
> (5) Using the 'delete widget' section of the wookie admin, remove the widget (this should work okay)
> (6) Repeat steps 3 & 4. only
> (7) Go to the gallery page and click on the newly imported widget, so that it becomes an instance.
> (8) Return to the admin section of wookie & try to delete the widget (step 5)
> The second time an error occurs with the following stacktrace...
>    [java] 14:45:41,320 ERROR log:? - /wookie/admin/WidgetAdminServlet
>      [java] java.lang.RuntimeException: Persistence commit exception caught for transaction: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:80)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>      [java] 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
>      [java] 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>      [java] 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>      [java] 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>      [java] 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>      [java] 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>      [java] 	at org.mortbay.jetty.Server.handle(Server.java:285)
>      [java] 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>      [java] 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>      [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
>      [java] 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>      [java] 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>      [java] 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
>      [java] 	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>      [java] Caused by: org.apache.wookie.beans.util.PersistenceCommitException: Transaction commit exception: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:370)
>      [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:64)
>      [java] 	... 15 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.persistence.RollbackException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:583)
>      [java] 	at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(JPAPersistenceManager.java:366)
>      [java] 	... 16 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2302)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2139)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
>      [java] 	at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>      [java] 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>      [java] 	at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
>      [java] 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:559)
>      [java] 	... 17 more
>      [java] Caused by: <openjpa-2.0.0-r422266:935683 fatal general error> org.apache.openjpa.persistence.PersistenceException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] FailedObject: org.apache.wookie.beans.jpa.impl.WidgetImpl-22
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4821)
>      [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4787)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
>      [java] 	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:81)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:357)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flushGraph(ConstraintUpdateManager.java:349)
>      [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:111)
>      [java] 	at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:103)
>      [java] 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:76)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:751)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:540)
>      [java] 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
>      [java] 	... 24 more
>      [java] Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 'WIDGET' caused a violation of foreign key constraint 'FKPARTICIPANT1' for key (22).  The statement has been rolled back. {prepstmnt 32437201 DELETE FROM JAVA.WIDGET WHERE ID = ? AND JPA_VERSION = ? [params=(int) 22, (int) 1]} [code=20000, state=23503]
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:233)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
>      [java] 	at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1079)
>      [java] 	at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
>      [java] 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1722)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
>      [java] 	at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
>      [java] 	... 37 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.