OptimisticLockException thrown on Query.getResultList() when Pessimistic Lock 
is applied
----------------------------------------------------------------------------------------

                 Key: OPENJPA-1142
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1142
             Project: OpenJPA
          Issue Type: Bug
          Components: kernel
    Affects Versions: 2.0.0-M2, 2.0.0
            Reporter: Albert Lee
            Assignee: Albert Lee
             Fix For: 2.0.0


The following sample code snippet may yield a OptimisticLockException.

    Query tc_query = 
itemManager.createNamedQuery("TypeCategory.find_tc").setParameter("product_id", 
new Integer(product_id));          
    tc_query.setLockMode(LockModeType.PESSIMISTIC_READ);
    Collection typeCat = tc_query.getResultList();

This is a incorrect behavior per JPA 2.0 spec:

public interface Query {
  /**
   * Execute a SELECT query and return the query results
   * as an untyped List.
   * @return a list of the results
   * @throws IllegalStateException if called for a Java Persistence query 
language UPDATE or DELETE statement
   * @throws QueryTimeoutException if the query execution exceeds the query 
timeout value set
   * @throws TransactionRequiredException if a lock mode has been set and there 
is no transaction
   * @throws PessimisticLockException if pessimistic locking fails and the 
transaction is rolled back
   * @throws LockTimeoutException if pessimistic locking fails and only the 
statement is rolled back
   */
  List getResultList();


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

Reply via email to