Deadlock with openjpa.Multithreaded=true ----------------------------------------
Key: OPENJPA-1716 URL: https://issues.apache.org/jira/browse/OPENJPA-1716 Project: OpenJPA Issue Type: Bug Affects Versions: 2.0.0, 2.0.0-beta3, 2.0.0-beta2, 2.0.0-beta, 2.0.0-M3, 2.0.0-M2, 2.0.0-M1 Reporter: Stefan Wokusch There is a Deadlock by using Multithreaded=true and work with some Threads on the same Entitymanager. After many hours of debugging, i found a solution for that Deadlock: The Problem could be solved by adding another lock into the lock Method of the StateManagerImpl: StateManagerImpl ~line3308 /** * Lock the state manager if the multithreaded option is set. */ protected void lock() { if (_instanceLock != null){ _broker.lock();//<- This is the new Part to fix the Deadlock _instanceLock.lock(); } } Worked for me without Problems for a long time. Some other Configurations: <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"> <persistence-unit name="default" transaction-type="RESOURCE_LOCAL"> <mapping-file>orm.xml</mapping-file> <class>...</class> <class>...</class> <properties> <property name="openjpa.OrphanedKeyAction" value="log(Channel=Orphans, Level=TRACE)" /> <property name="openjpa.ConnectionFactoryProperties" value="PrettyPrint=true, PrettyPrintLineLength=80" /> <property name="openjpa.Multithreaded" value="true" /> <property name="openjpa.InverseManager" value="true" /> <property name="openjpa.LockManager" value="none" /> <property name="openjpa.WriteLockLevel" value="none" /> <property name="openjpa.Compatibility" value=" QuotedNumbersInQueries=true, CopyOnDetach=true, cascadeWithDetach=true, superclassDiscriminatorStrategyByDefault=false " /> <property name="openjpa.DetachState" value="fetch-groups" /> <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" /> <!-- Default DataSource --> <property name="openjpa.ConnectionURL" value="jdbc:h2:db/test" /> <property name="openjpa.ConnectionDriverName" value="org.h2.Driver" /> </properties> </persistence-unit> </persistence> -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.