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 13:17:38 UTC

[jira] Created: (WOOKIE-156) API Test widget causes DB errors when opened in two browsers at the same time

API Test widget causes DB errors when opened in two browsers at the same time
-----------------------------------------------------------------------------

                 Key: WOOKIE-156
                 URL: https://issues.apache.org/jira/browse/WOOKIE-156
             Project: Wookie
          Issue Type: Bug
          Components: Server
    Affects Versions: 0.9.0
         Environment: Windows Vista SP2, (tested with IE 8 and Firefox 3.6.12 and Chrome 7.0.517.44)
            Reporter: Paul Sharples
             Fix For: 0.9.0


This error happens around 90% of the time i try to recreate it (but not always). It happens when you start the server and try to load the widget in question. I haven't been able to reproduce it with any other widget.

To reproduce...

(1) Start wookie in standalone mode
(2) Go to http://localhost:8080/wookie and click on 'view widget gallery' in browser one (either IE, Firefox or Chrome)
(3) Choose the API test widget (leave it open)
(4) Repeat steps 2-3 in another browser

A javascript alert box opens when the second browser load the page...

Persistence_commit_exception_caught_for_transaction_orgapachewookiebeansutilPersistenceCommitException_Transaction_commit_exception_openjpa200r422266935683_fatal_store_error_orgapacheopenjpapersistenceRollbackException_The_transaction_has_been_rolled_back__See_the_nested_exceptions_for_details_on_the_errors_that_occurred__FailedObject_orgapachewookiebeansjpaimplPreferenceImpl11e725

...also the console reports...

   [java] 12:07:30,561 ERROR log:? - /wookie/dwr/call/plaincall/WidgetImpl.setPreferenceForKey.dwr
     [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.PreferenceImpl@18fea98
     [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.content(HttpConnection.java:835)
     [java] 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:641)
     [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.PreferenceImpl@18fea98
     [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.PreferenceImpl@18fea98
     [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 store error> org.apache.openjpa.persistence.EntityExistsException: 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.PreferenceImpl@18fea98
     [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 store error> org.apache.openjpa.persistence.EntityExistsException: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'UNPREFERENCE1' defined on 'PREFERENCE'. {prepstmnt 860799 INSERT INTO JAVA.Preference (ID, JPA_VERSION, WIDGET_INSTANCE_ID, DKEY, DVALUE, READONLY) VALUES (?, ?, ?, ?, ?, ?) [params=(int) 815, (int) 1, (int) 738, (String) nice, (Reader) java.io.StringReader@11ba57a, (String) ]} [code=20000, state=23505]
     [java] FailedObject: org.apache.wookie.beans.jpa.impl.PreferenceImpl@18fea98
     [java] 	at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4812)
     [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:550)
     [java] 	at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:106)
     [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

In google chrome, the stacktrace was slightly different however...

[java] 12:02:41,700 ERROR log:? - /wookie/wservices/www.getwookie.org/widgets/test/test.js
     [java] java.lang.RuntimeException: Exception caught for transaction: java.lang.ClassCastException: com.ibm.icu.impl.locale.BaseLocale cannot be cast to java.lang.String
     [java] 	at org.apache.wookie.server.MainFilter.doFilter(MainFilter.java:85)
     [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: java.lang.ClassCastException: com.ibm.icu.impl.locale.BaseLocale cannot be cast to java.lang.String
     [java] 	at com.ibm.icu.impl.locale.LocaleObjectCache.put(LocaleObjectCache.java:51)
     [java] 	at com.ibm.icu.impl.locale.BaseLocale.getInstance(BaseLocale.java:55)
     [java] 	at com.ibm.icu.util.ULocale.base(ULocale.java:4321)
     [java] 	at com.ibm.icu.util.ULocale.toLanguageTag(ULocale.java:3872)
     [java] 	at org.apache.wookie.server.LocalizedResourceFilter.getLocalizedResource(LocalizedResourceFilter.java:165)
     [java] 	at org.apache.wookie.server.LocalizedResourceFilter.doFilter(LocalizedResourceFilter.java:88)
     [java] 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
     [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] 	... 15 more



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