I have a use case where there are multiple distinct
        persistence units defined in my persistence xml and each unit
        also has it's own non-default orm-[pu_name].xml file. The
        wrinkle in this scenario, is that there is also META-INF/orm.xml
        file that defines a named query that is only valid for one of my
        persistence units.
        
Everything works as expected for the persistence unit that
          the named query is valid for. The other persistence units are
          unusable as EntityManager creation fails with a
          PersistenceException[1].
        I'm looking into providing a configurable option that would
          allow a user to tell EclipseLink to tolerate invalid/bad JPQL
          at EM creation time. I want a WARNING message to be logged
          when bad JPQL is encountered, but I want the EM to still be
          created/ mostly functional. If a user then attempts to create
          a bad named query at runtime, EclipseLink will throw an
          IllegalArgumentException. 
        I've started to prototype support for this behavior, but am
          not certain if there is a better way to define/access a
          configuration property. The patch attached below seems to work
          if I pass this new property (eclipselink.jpql-tolerate-error)
          to Persistence.createEntityManagerFactory, or as a p.xml
          property. It doesn't work if the property is passed to
          emf.createEntityManager(props) call.
        Thoughts on my approach? Am I heading in the right
          direction, or is there a better way to add this support?
        [1] ...
        
          Caused by: Exception [EclipseLink-28019] (Eclipse
            Persistence Services - @VERSION@.@QUALIFIER@):
            org.eclipse.persistence.exceptions.EntityManagerSetupException
          Exception Description: Deployment of PersistenceUnit
            [invalid-named-query] failed. Close all factories for this
            PersistenceUnit.
          Internal Exception: Exception [EclipseLink-0] (Eclipse
            Persistence Services - @VERSION@.@QUALIFIER@):
            org.eclipse.persistence.exceptions.JPQLException
          Exception Description: Problem compiling [SELECT a FROM
            Alien a]. 
          [14, 19] The abstract schema type 'Alien' is unknown.
           at
org.eclipse.persistence.exceptions.EntityManagerSetupException.deployFailed(EntityManagerSetupException.java:239)
           ... 32
            more
          Caused by: Exception [EclipseLink-0] (Eclipse Persistence
            Services - @VERSION@.@QUALIFIER@):
            org.eclipse.persistence.exceptions.JPQLException
          Exception Description: Problem compiling [SELECT a FROM
            Alien a]. 
          [14, 19] The abstract schema type 'Alien' is unknown.
           at
org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildException(HermesParser.java:155)
           at
org.eclipse.persistence.internal.jpa.jpql.HermesParser.validate(HermesParser.java:347)
           at
org.eclipse.persistence.internal.jpa.jpql.HermesParser.populateQueryImp(HermesParser.java:278)
           at
org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildQuery(HermesParser.java:163)
           at
org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:142)
           at
org.eclipse.persistence.internal.jpa.JPAQuery.processJPQLQuery(JPAQuery.java:221)
           at
            org.eclipse.persistence.internal.jpa.JPAQuery.prepare(JPAQuery.java:182)
           at
org.eclipse.persistence.queries.DatabaseQuery.prepareInternal(DatabaseQuery.java:621)
           at
org.eclipse.persistence.internal.sessions.AbstractSession.processJPAQuery(AbstractSession.java:4348)
           at
org.eclipse.persistence.internal.sessions.AbstractSession.processJPAQueries(AbstractSession.java:4306)
           at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:579)
           at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:799)
           at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:743)
           at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:253)
           at
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:702)
           ... 30
            more
          
          
          -- 
          
Rick Curtis