OpenJPA
  1. OpenJPA
  2. OPENJPA-442

JIRA-407 introduced backward compatibility problem in QueryImpl

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.1.0, 1.2.0
    • Fix Version/s: 1.2.0
    • Component/s: query
    • Labels:
      None

      Description

      In the openjpa-407 patch, it changed the constructor to pass an extra parameter RuntimeExceptionTransaltor,

      public QueryImpl(EntityManagerImpl em, RuntimeExceptionTranslator ret,
      org.apache.openjpa.kernel.Query query)

      { _em = em; _query = new DelegatingQuery(query, ret); }

      However, it did not keep the orginial constructor so the extension of this QueryImpl from other vendor resulted in compiler error. We need to keep the backward compatibilty issue in mind when we change the public interface.
      The solution will be to add the original constructor back and route it to the new constructor:

      public QueryImpl(EntityManagerImpl em, RuntimeExceptionTranslator ret,
      org.apache.openjpa.kernel.Query query)

      { _em = em; if (ret == null) ret = PersistenceExceptions.getRollbackTranslator(em); _query = new DelegatingQuery(query, ret); }

      /**

      • Constructor; supply factory and delegate.
        */
        public QueryImpl(EntityManagerImpl em, org.apache.openjpa.kernel.Query query) { this(em, null, query); }

        Activity

          People

          • Assignee:
            Michael Dick
            Reporter:
            Teresa Kan
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development