[teiid-commits] teiid SVN: r4451 - in trunk/runtime/src: test/java/org/teiid/transport and 1 other directory.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Mon Sep 17 12:29:05 EDT 2012
Author: shawkins
Date: 2012-09-17 12:29:05 -0400 (Mon, 17 Sep 2012)
New Revision: 4451
Modified:
trunk/runtime/src/main/java/org/teiid/transport/LogonImpl.java
trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java
Log:
TEIID-2172 fix for invalid session with load balancing
Modified: trunk/runtime/src/main/java/org/teiid/transport/LogonImpl.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/LogonImpl.java 2012-09-17 15:38:33 UTC (rev 4450)
+++ trunk/runtime/src/main/java/org/teiid/transport/LogonImpl.java 2012-09-17 16:29:05 UTC (rev 4451)
@@ -83,8 +83,8 @@
}
private LogonResult logon(Properties connProps, byte[] krb5ServiceTicket) throws LogonException {
- DQPWorkContext workContext = DQPWorkContext.getWorkContext();
- String oldSessionId = workContext.getSessionId();
+ //DQPWorkContext workContext = DQPWorkContext.getWorkContext();
+ //String oldSessionId = workContext.getSessionId();
String applicationName = connProps.getProperty(TeiidURL.CONNECTION.APP_NAME);
// user may be null if using trustedToken to log on
String user = connProps.getProperty(TeiidURL.CONNECTION.USER_NAME, CoreConstants.DEFAULT_ANON_USERNAME);
@@ -101,12 +101,10 @@
if (DQPWorkContext.getWorkContext().getClientAddress() == null) {
sessionInfo.setEmbedded(true);
}
- if (oldSessionId != null) {
- try {
- this.service.closeSession(oldSessionId);
- } catch (InvalidSessionException e) {
- }
- }
+ //if (oldSessionId != null) {
+ //TODO: we should be smarter about disassociating the old sessions from the client. we'll just rely on
+ //ping based clean up
+ //}
LogonResult result = new LogonResult(sessionInfo.getSessionToken(), sessionInfo.getVDBName(), sessionInfo.getVDBVersion(), clusterName);
if (krb5ServiceTicket != null) {
result.addProperty(ILogon.KRB5TOKEN, krb5ServiceTicket);
Modified: trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java
===================================================================
--- trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java 2012-09-17 15:38:33 UTC (rev 4450)
+++ trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java 2012-09-17 16:29:05 UTC (rev 4451)
@@ -23,7 +23,6 @@
package org.teiid.transport;
import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
import java.io.ByteArrayInputStream;
import java.io.Serializable;
@@ -35,18 +34,10 @@
import org.junit.Before;
import org.junit.Test;
import org.teiid.client.security.ILogon;
-import org.teiid.client.security.InvalidSessionException;
-import org.teiid.client.security.LogonException;
-import org.teiid.client.security.LogonResult;
-import org.teiid.client.security.SessionToken;
-import org.teiid.client.util.ResultsFuture;
import org.teiid.common.buffer.BufferManagerFactory;
import org.teiid.common.buffer.impl.MemoryStorageManager;
-import org.teiid.core.ComponentNotFoundException;
-import org.teiid.core.TeiidComponentException;
import org.teiid.core.crypto.NullCryptor;
import org.teiid.core.util.ObjectConverterUtil;
-import org.teiid.dqp.service.SessionService;
import org.teiid.net.CommunicationException;
import org.teiid.net.ConnectionException;
import org.teiid.net.TeiidURL;
@@ -54,6 +45,7 @@
import org.teiid.net.socket.SocketServerConnectionFactory;
import org.teiid.net.socket.SocketUtil;
import org.teiid.net.socket.UrlServerDiscovery;
+import org.teiid.services.SessionServiceImpl;
import org.teiid.transport.TestSocketRemoting.FakeService;
@@ -64,6 +56,7 @@
private SocketServerConnectionFactory sscf;
private InetSocketAddress addr;
private MemoryStorageManager storageManager;
+ private SessionServiceImpl service;
@Before public void setUp() {
addr = new InetSocketAddress(0);
@@ -165,26 +158,8 @@
return getClass().getClassLoader();
}
};
- server.registerClientService(ILogon.class, new LogonImpl(mock(SessionService.class), "fakeCluster") { //$NON-NLS-1$
- @Override
- public LogonResult logon(Properties connProps)
- throws LogonException, ComponentNotFoundException {
- return new LogonResult(new SessionToken("dummy"), "x", 1, "z");
- }
-
- @Override
- public ResultsFuture<?> ping() throws InvalidSessionException,
- TeiidComponentException {
- return ResultsFuture.NULL_FUTURE;
- }
-
- @Override
- public void assertIdentity(SessionToken checkSession)
- throws InvalidSessionException, TeiidComponentException {
- return;
- }
-
- }, null);
+ service = new SessionServiceImpl();
+ server.registerClientService(ILogon.class, new LogonImpl(service, "fakeCluster"), null);
server.registerClientService(FakeService.class, new TestSocketRemoting.FakeServiceImpl(), null);
storageManager = new MemoryStorageManager();
listener = new SocketListener(addr, 1024, 1024, 1, config, server, storageManager);
@@ -199,6 +174,7 @@
Properties p = new Properties();
String url = new TeiidURL(addr.getHostName(), listener.getPort(), clientSecure).getAppServerURL();
p.setProperty(TeiidURL.CONNECTION.SERVER_URL, url);
+ p.setProperty(TeiidURL.CONNECTION.APP_NAME, "test");
p.setProperty(TeiidURL.CONNECTION.DISCOVERY_STRATEGY, UrlServerDiscovery.class.getName());
if (sscf == null) {
sscf = new SocketServerConnectionFactory();
@@ -254,10 +230,13 @@
assertEquals(2, stats.objectsRead); // handshake response, logon,
assertEquals(1, stats.sockets);
conn.cleanUp();
+ helpEstablishConnection(false, config, p);
+ conn.selectServerInstance(false);
+ assertEquals(2, this.service.getActiveSessions().size());
assertTrue(conn.isOpen(1000));
stats = listener.getStats();
- assertEquals(5, stats.objectsRead); // ping (pool test), assert identity, ping (isOpen)
- assertEquals(1, stats.sockets);
+ assertEquals(7, stats.objectsRead); // ping (pool test), assert identity, ping (isOpen)
+ assertEquals(2, stats.sockets);
conn.close();
}
More information about the teiid-commits
mailing list