You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2016/12/03 16:41:01 UTC
tomee git commit: backporting basic specific code which can be reused
Repository: tomee
Updated Branches:
refs/heads/tomee-1.7.x 1f4b821b9 -> 4e1527ed4
backporting basic specific code which can be reused
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/4e1527ed
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/4e1527ed
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/4e1527ed
Branch: refs/heads/tomee-1.7.x
Commit: 4e1527ed49757841860ce9313f6b0d63309c4b20
Parents: 1f4b821
Author: rmannibucau <rm...@apache.org>
Authored: Sat Dec 3 17:40:51 2016 +0100
Committer: rmannibucau <rm...@apache.org>
Committed: Sat Dec 3 17:40:51 2016 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/openejb/client/Client.java | 4 ++++
.../org/apache/openejb/client/HttpConnectionFactory.java | 4 ++++
.../main/java/org/apache/openejb/client/JNDIContext.java | 10 +++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/4e1527ed/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java b/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
index 1559e37..90c2ac7 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/Client.java
@@ -26,6 +26,7 @@ import org.apache.openejb.client.event.RetryingRequest;
import org.apache.openejb.client.event.ServerAdded;
import org.apache.openejb.client.event.ServerRemoved;
+import javax.naming.AuthenticationException;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
@@ -262,6 +263,9 @@ public class Client {
in = conn.getInputStream();
} catch (final IOException e) {
+ if (AuthenticationException.class.isInstance(e.getCause())) {
+ throw e.getCause();
+ }
throw newIOException("Cannot open input stream to server: ", e);
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/4e1527ed/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java b/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java
index a93fdcb..f100378 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/HttpConnectionFactory.java
@@ -16,6 +16,7 @@
*/
package org.apache.openejb.client;
+import javax.naming.AuthenticationException;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSocketFactory;
import java.io.IOException;
@@ -196,6 +197,9 @@ public class HttpConnectionFactory implements ConnectionFactory {
@Override
public InputStream getInputStream() throws IOException {
if (inputStream == null) {
+ if (httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_UNAUTHORIZED) {
+ throw new IOException(new AuthenticationException());
+ }
inputStream = httpURLConnection.getInputStream();
}
return inputStream;
http://git-wip-us.apache.org/repos/asf/tomee/blob/4e1527ed/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
----------------------------------------------------------------------
diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java b/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
index 2e2cfef..d5549e2 100644
--- a/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
+++ b/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
@@ -398,9 +398,13 @@ public class JNDIContext implements InitialContextFactory, Context {
try {
res = request(req);
} catch (Exception e) {
- if (e instanceof RemoteException && e.getCause() instanceof ConnectException) {
- e = (Exception) e.getCause();
- throw (ServiceUnavailableException) new ServiceUnavailableException("Cannot lookup '" + name + "'.").initCause(e);
+ if (e instanceof RemoteException) {
+ if (e.getCause() instanceof ConnectException) {
+ e = (Exception) e.getCause();
+ throw (ServiceUnavailableException) new ServiceUnavailableException("Cannot lookup '" + name + "'.").initCause(e);
+ } else if (AuthenticationException.class.isInstance(e.getCause())) {
+ throw AuthenticationException.class.cast(e.getCause());
+ }
}
throw (NamingException) new NamingException("Cannot lookup '" + name + "'.").initCause(e);
}