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/09/21 16:32:10 UTC
tomee git commit: trying to make ejbd more stable on the CI
Repository: tomee
Updated Branches:
refs/heads/master 3de86d019 -> 3a6d014ec
trying to make ejbd more stable on the CI
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3a6d014e
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3a6d014e
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3a6d014e
Branch: refs/heads/master
Commit: 3a6d014ec15f3ef0e0047a03ee98a80913f10a6f
Parents: 3de86d0
Author: rmannibucau <rm...@apache.org>
Authored: Wed Sep 21 18:31:00 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Wed Sep 21 18:31:00 2016 +0200
----------------------------------------------------------------------
.../apache/openejb/core/security/AbstractSecurityService.java | 6 ++++--
.../main/java/org/apache/openejb/server/ejbd/EjbDaemon.java | 7 +++++++
.../org/apache/openejb/server/ejbd/EjbRequestHandler.java | 5 +++--
3 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/3a6d014e/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java b/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
index 1378f98..53634f9 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java
@@ -221,8 +221,10 @@ public abstract class AbstractSecurityService implements DestroyableResource, Se
@Override
public void associate(final UUID securityIdentity) throws LoginException {
- if (clientIdentity.get() != null) {
- throw new LoginException("Thread already associated with a client identity. Refusing to overwrite.");
+ final Identity existing = clientIdentity.get();
+ if (existing != null) {
+ throw new LoginException("Thread already associated with a client identity. Refusing to overwrite. " +
+ "(current=" + existing.getToken() + ", refused=" + securityIdentity + ")");
}
if (securityIdentity == null) {
throw new NullPointerException("The security token passed in is null");
http://git-wip-us.apache.org/repos/asf/tomee/blob/3a6d014e/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
----------------------------------------------------------------------
diff --git a/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
index c0a8e68..c26cd3f 100644
--- a/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
+++ b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbDaemon.java
@@ -34,6 +34,7 @@ import org.apache.openejb.server.context.RequestInfos;
import org.apache.openejb.server.stream.CountingInputStream;
import org.apache.openejb.server.stream.CountingOutputStream;
import org.apache.openejb.spi.ContainerSystem;
+import org.apache.openejb.spi.SecurityService;
import org.apache.openejb.util.Exceptions;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
@@ -70,6 +71,7 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
//Four hours
private int timeout = 14400000;
private boolean countStreams;
+ private SecurityService securityService;
public void init(final Properties props) throws Exception {
containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
@@ -105,6 +107,8 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
}
countStreams = Boolean.parseBoolean(props.getProperty("stream.count", Boolean.toString(jndiHandler.isDebug())));
+
+ securityService = SystemInstance.get().getComponent(SecurityService.class);
}
public void service(final Socket socket) throws IOException {
@@ -336,6 +340,9 @@ public class EjbDaemon implements org.apache.openejb.spi.ApplicationServer {
//Ignore
}
}
+
+ // enforced in case of exception
+ securityService.disassociate();
}
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/3a6d014e/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
----------------------------------------------------------------------
diff --git a/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
index 521f321..b7b7c3a 100644
--- a/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
+++ b/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
@@ -104,9 +104,10 @@ class EjbRequestHandler extends RequestHandler {
boolean failed = false;
final CallContext call;
+ Object clientIdentity = null;
try {
try {
- final Object clientIdentity = req.getClientIdentity();
+ clientIdentity = req.getClientIdentity();
if (clientIdentity != null) {//noinspection unchecked
securityService.associate(clientIdentity);
}
@@ -156,7 +157,7 @@ class EjbRequestHandler extends RequestHandler {
}
} finally {
- if (failed) {
+ if (clientIdentity != null && failed) {
securityService.disassociate();
}
}