Can you please attach the patch.  If I copy/paste from this email it chokes.

Thanks,

Jeff

Andrus Adamchik wrote:
> Somebody please apply this patch. It implements better exception
> handling during persistence unit loading.
> 
> Thanks
> Andrus
> 
> 
> Index: geronimo-spec-jpa/src/main/java/javax/persistence/Persistence.java
> ===================================================================
> ---
> geronimo-spec-jpa/src/main/java/javax/persistence/Persistence.java   
> (revision 398209)
> +++
> geronimo-spec-jpa/src/main/java/javax/persistence/Persistence.java   
> (working copy)
> @@ -144,18 +144,29 @@
>      static EntityManagerFactory createFactory(
>              String providerName,
>              String persistenceUnitName,
> -            Map properties) {
> +            Map properties)
> +            throws PersistenceException {
> -        try {
> -            Class providerClass = Class.forName(providerName, true, Thread
> -                    .currentThread()
> -                    .getContextClassLoader());
> -            PersistenceProvider provider = (PersistenceProvider)
> providerClass
> -                    .newInstance();
> -            return
> provider.createEntityManagerFactory(persistenceUnitName, properties);
> -        }
> -        catch (Exception e) {
> -            return null;
> -        }
> -    }
> +        Class providerClass;
> +        try {
> +            providerClass = Class.forName(providerName, true, Thread
> +                    .currentThread().getContextClassLoader());
> +        }
> +        catch (Exception e) {
> +            throw new PersistenceException(
> +                    "Invalid or inaccessible provider class: " +
> providerName,
> +                    e);
> +        }
> +
> +        try {
> +            PersistenceProvider provider = (PersistenceProvider)
> providerClass
> +                    .newInstance();
> +            return
> provider.createEntityManagerFactory(persistenceUnitName,
> +                    properties);
> +        }
> +        catch (Exception e) {
> +            throw new PersistenceException("Provider error. Provider: "
> +                    + providerName, e);
> +        }
> +    }
> }

Reply via email to