You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jg...@apache.org on 2006/04/30 17:30:11 UTC
svn commit: r398357 -
/geronimo/specs/branches/jee5_exp/geronimo-spec-jpa/src/main/java/javax/persistence/Persistence.java
Author: jgenender
Date: Sun Apr 30 08:30:09 2006
New Revision: 398357
URL: http://svn.apache.org/viewcvs?rev=398357&view=rev
Log:
Fix exceptions in persistence
Modified:
geronimo/specs/branches/jee5_exp/geronimo-spec-jpa/src/main/java/javax/persistence/Persistence.java
Modified: geronimo/specs/branches/jee5_exp/geronimo-spec-jpa/src/main/java/javax/persistence/Persistence.java
URL: http://svn.apache.org/viewcvs/geronimo/specs/branches/jee5_exp/geronimo-spec-jpa/src/main/java/javax/persistence/Persistence.java?rev=398357&r1=398356&r2=398357&view=diff
==============================================================================
--- geronimo/specs/branches/jee5_exp/geronimo-spec-jpa/src/main/java/javax/persistence/Persistence.java (original)
+++ geronimo/specs/branches/jee5_exp/geronimo-spec-jpa/src/main/java/javax/persistence/Persistence.java Sun Apr 30 08:30:09 2006
@@ -44,7 +44,7 @@
static final String PERSISTENCE_PROVIDER_PROPERTY = "javax.persistence.provider";
static final String PERSISTENCE_PROVIDER_SERVICE = "META-INF/services/"
- + PersistenceProvider.class.getName();
+ + PersistenceProvider.class.getName();
/**
* Create and return an EntityManagerFactory for the named persistence unit.
@@ -56,7 +56,7 @@
public static EntityManagerFactory createEntityManagerFactory(
String persistenceUnitName) {
return createEntityManagerFactory(persistenceUnitName, Collections.EMPTY_MAP);
- }
+ }
/**
* Create and return an EntityManagerFactory for the named persistence unit using the
@@ -94,7 +94,7 @@
ClassLoader loader = Thread.currentThread().getContextClassLoader();
try {
Enumeration<URL> providers = loader
- .getResources(PERSISTENCE_PROVIDER_SERVICE);
+ .getResources(PERSISTENCE_PROVIDER_SERVICE);
while (providers.hasMoreElements()) {
String name = getProviderName(providers.nextElement());
@@ -117,13 +117,13 @@
}
return null;
- }
+ }
static String getProviderName(URL url) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(
- url.openStream(),
- "UTF-8"));
+ url.openStream(),
+ "UTF-8"));
String providerName;
@@ -144,18 +144,29 @@
static EntityManagerFactory createFactory(
String providerName,
String persistenceUnitName,
- Map properties) {
+ Map properties)
+ throws PersistenceException {
+
+ 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 {
- Class providerClass = Class.forName(providerName, true, Thread
- .currentThread()
- .getContextClassLoader());
PersistenceProvider provider = (PersistenceProvider) providerClass
- .newInstance();
- return provider.createEntityManagerFactory(persistenceUnitName, properties);
+ .newInstance();
+ return provider.createEntityManagerFactory(persistenceUnitName,
+ properties);
}
catch (Exception e) {
- return null;
+ throw new PersistenceException("Provider error. Provider: "
+ + providerName, e);
}
}
}