OpenJPA
  1. OpenJPA
  2. OPENJPA-1142

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

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0-M3
    • Fix Version/s: 2.0.0-beta
    • Component/s: kernel
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      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();

        Activity

        Hide
        Donald Woods added a comment -

        Code was checked in for this JIRA, so can it be marked as resolved?

        Show
        Donald Woods added a comment - Code was checked in for this JIRA, so can it be marked as resolved?

          People

          • Assignee:
            Albert Lee
            Reporter:
            Albert Lee
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development