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);
         }