You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/07/10 21:18:16 UTC
svn commit: r555049 - in
/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client:
Client.java JNDIContext.java SocketConnectionFactory.java
Author: dblevins
Date: Tue Jul 10 12:18:15 2007
New Revision: 555049
URL: http://svn.apache.org/viewvc?view=rev&rev=555049
Log:
Majorly cleaned up exception handling around server that cannot be contacted
Modified:
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/SocketConnectionFactory.java
Modified: openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java?view=diff&rev=555049&r1=555048&r2=555049
==============================================================================
--- openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java (original)
+++ openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java Tue Jul 10 12:18:15 2007
@@ -59,9 +59,13 @@
try {
conn = ConnectionManager.getConnection(uri);
} catch (IOException e) {
- logger.log(Level.WARNING, "Cannot access server(s): " + uri.getHost() + ":" + uri.getPort() + " Exception: ", e);
+ if (uris.length == 1){
+ throw new RemoteException("Cannot connect to server '"+uri+'"', e);
+ } else {
+ logger.log(Level.WARNING, "Cannot connect to server(s): " + uri.getHost() + ":" + uri.getPort() + " Exception: ", e);
+ }
} catch (Throwable e) {
- throw new RemoteException("Cannot access server: " + uri.getHost() + ":" + uri.getPort() + " due to an unkown exception in the OpenEJB client: ", e);
+ throw new RemoteException("Cannot connect to server: " + uri.getHost() + ":" + uri.getPort() + " due to an unkown exception in the OpenEJB client: ", e);
}
}
@@ -72,7 +76,7 @@
URI uri = uris[i];
buffer.append((i != 0 ? ", " : "") + "Server #" + i + ": " + uri);
}
- throw new RemoteException("Cannot access servers: " + buffer.toString());
+ throw new RemoteException("Cannot connect to any servers: " + buffer.toString());
}
/*----------------------------------*/
@@ -165,6 +169,8 @@
throw new RemoteException("Error reading response from server: ", e);
}
+ } catch (RemoteException e) {
+ throw e;
} catch (Throwable error) {
throw new RemoteException("Error while communicating with server: ", error);
Modified: openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java?view=diff&rev=555049&r1=555048&r2=555049
==============================================================================
--- openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java (original)
+++ openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java Tue Jul 10 12:18:15 2007
@@ -21,6 +21,7 @@
import java.io.Serializable;
import java.net.URI;
import java.net.URISyntaxException;
+import java.net.ConnectException;
import java.rmi.RemoteException;
import java.util.Hashtable;
import java.util.Properties;
@@ -35,6 +36,7 @@
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.OperationNotSupportedException;
+import javax.naming.ServiceUnavailableException;
import javax.naming.spi.InitialContextFactory;
import javax.sql.DataSource;
@@ -194,7 +196,11 @@
try {
res = request(req);
} catch (Exception e) {
- throw (NamingException) new NamingException("Cannot lookup " + name + ": Received error: " + e.getMessage()).initCause(e);
+ if (e instanceof RemoteException && e.getCause() instanceof ConnectException) {
+ e = (Exception) e.getCause();
+ throw (ServiceUnavailableException) new ServiceUnavailableException("Cannot lookup '" + name + "'.").initCause(e);
+ }
+ throw (NamingException) new NamingException("Cannot lookup '" + name + "'.").initCause(e);
}
switch (res.getResponseCode()) {
Modified: openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/SocketConnectionFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/SocketConnectionFactory.java?view=diff&rev=555049&r1=555048&r2=555049
==============================================================================
--- openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/SocketConnectionFactory.java (original)
+++ openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/SocketConnectionFactory.java Tue Jul 10 12:18:15 2007
@@ -22,6 +22,7 @@
import java.io.StreamCorruptedException;
import java.net.Socket;
import java.net.URI;
+import java.net.ConnectException;
import java.util.Properties;
public class SocketConnectionFactory implements ConnectionFactory {
@@ -50,14 +51,17 @@
try {
socket = new Socket(uri.getHost(), uri.getPort());
socket.setTcpNoDelay(true);
+ } catch (ConnectException e) {
+ throw new ConnectException("Cannot connect to server '"+uri.toString()+"'. Check that the server is started and that the specified serverURL is correct.");
+
} catch (IOException e) {
- throw new IOException("Cannot access server: " + uri.getHost() + ":" + uri.getPort() + " Exception: " + e.getClass().getName() + " : " + e.getMessage());
+ throw new IOException("Cannot connect to server: '"+uri.toString()+"'. Exception: " + e.getClass().getName() + " : " + e.getMessage());
} catch (SecurityException e) {
- throw new IOException("Cannot access server: " + uri.getHost() + ":" + uri.getPort() + " due to security restrictions in the current VM: " + e.getClass().getName() + " : " + e.getMessage());
+ throw new IOException("Cannot access server: '"+uri.toString()+"' due to security restrictions in the current VM: " + e.getClass().getName() + " : " + e.getMessage());
} catch (Throwable e) {
- throw new IOException("Cannot access server: " + uri.getHost() + ":" + uri.getPort() + " due to an unkown exception in the OpenEJB client: " + e.getClass().getName() + " : " + e.getMessage());
+ throw new IOException("Cannot connect to server: '"+uri.toString()+"' due to an unkown exception in the OpenEJB client: " + e.getClass().getName() + " : " + e.getMessage());
}
}