[teiid-commits] teiid SVN: r3000 - in trunk: engine/src/main/java/org/teiid/common/buffer/impl and 7 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Thu Mar 17 10:25:04 EDT 2011
Author: shawkins
Date: 2011-03-17 10:25:04 -0400 (Thu, 17 Mar 2011)
New Revision: 3000
Added:
trunk/engine/src/main/java/org/teiid/common/buffer/FileStoreInputStreamFactory.java
Removed:
trunk/engine/src/main/java/org/teiid/query/processor/xml/XMLUtil.java
Modified:
trunk/engine/src/main/java/org/teiid/common/buffer/impl/MemoryStorageManager.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierTupleSource.java
trunk/engine/src/main/java/org/teiid/query/function/aggregate/TextAgg.java
trunk/engine/src/main/java/org/teiid/query/function/source/XMLSystemFunctions.java
trunk/engine/src/main/java/org/teiid/query/processor/xml/DocumentInProgress.java
trunk/engine/src/main/java/org/teiid/query/xquery/saxon/SaxonXQueryExpression.java
trunk/runtime/src/main/java/org/teiid/transport/ObjectDecoder.java
trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java
Log:
TEIID-1511 ensuring that remote streams get proactively cleaned up
Added: trunk/engine/src/main/java/org/teiid/common/buffer/FileStoreInputStreamFactory.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/common/buffer/FileStoreInputStreamFactory.java (rev 0)
+++ trunk/engine/src/main/java/org/teiid/common/buffer/FileStoreInputStreamFactory.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.common.buffer;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.nio.charset.Charset;
+
+import org.teiid.common.buffer.FileStore.FileStoreOutputStream;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.InputStreamFactory;
+
+public final class FileStoreInputStreamFactory extends InputStreamFactory {
+ private final FileStore lobBuffer;
+ private FileStoreOutputStream fsos;
+ private String encoding;
+
+ public FileStoreInputStreamFactory(FileStore lobBuffer, String encoding) {
+ this.encoding = encoding;
+ this.lobBuffer = lobBuffer;
+ this.lobBuffer.setCleanupReference(this);
+ }
+
+ @Override
+ public InputStream getInputStream() throws IOException {
+ if (fsos != null && !fsos.bytesWritten()) {
+ return new ByteArrayInputStream(fsos.getBuffer(), 0, fsos.getCount());
+ }
+ //TODO: adjust the buffer size, and/or develop a shared buffer strategy
+ return new BufferedInputStream(lobBuffer.createInputStream(0));
+ }
+
+ @Override
+ public long getLength() {
+ return lobBuffer.getLength();
+ }
+
+ public Writer getWriter() {
+ return new OutputStreamWriter(getOuputStream(), Charset.forName(encoding));
+ }
+
+ public FileStoreOutputStream getOuputStream() {
+ if (fsos == null) {
+ fsos = lobBuffer.createOutputStream(DataTypeManager.MAX_LOB_MEMORY_BYTES);
+ }
+ return fsos;
+ }
+
+ @Override
+ public void free() throws IOException {
+ lobBuffer.remove();
+ }
+
+ @Override
+ public boolean isPersistent() {
+ return true;
+ }
+}
\ No newline at end of file
Property changes on: trunk/engine/src/main/java/org/teiid/common/buffer/FileStoreInputStreamFactory.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/engine/src/main/java/org/teiid/common/buffer/impl/MemoryStorageManager.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/common/buffer/impl/MemoryStorageManager.java 2011-03-17 14:04:37 UTC (rev 2999)
+++ trunk/engine/src/main/java/org/teiid/common/buffer/impl/MemoryStorageManager.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -23,6 +23,7 @@
package org.teiid.common.buffer.impl;
import java.nio.ByteBuffer;
+import java.util.concurrent.atomic.AtomicInteger;
import org.teiid.common.buffer.FileStore;
import org.teiid.common.buffer.StorageManager;
@@ -31,11 +32,15 @@
public class MemoryStorageManager implements StorageManager {
+ private AtomicInteger created = new AtomicInteger();
+ private AtomicInteger removed = new AtomicInteger();
+
public void initialize() {
}
@Override
public FileStore createFileStore(String name) {
+ created.incrementAndGet();
return new FileStore() {
private ByteBuffer buffer = ByteBuffer.allocate(1 << 16);
@@ -53,6 +58,7 @@
@Override
public synchronized void removeDirect() {
+ removed.incrementAndGet();
buffer = ByteBuffer.allocate(0);
}
@@ -70,4 +76,12 @@
}
};
}
+
+ public int getCreated() {
+ return created.get();
+ }
+
+ public int getRemoved() {
+ return removed.get();
+ }
}
\ No newline at end of file
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierTupleSource.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierTupleSource.java 2011-03-17 14:04:37 UTC (rev 2999)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierTupleSource.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -35,6 +35,7 @@
import org.teiid.client.SourceWarning;
import org.teiid.common.buffer.BlockedException;
import org.teiid.common.buffer.FileStore;
+import org.teiid.common.buffer.FileStoreInputStreamFactory;
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
@@ -55,8 +56,7 @@
import org.teiid.dqp.internal.process.DQPCore.FutureWork;
import org.teiid.dqp.message.AtomicRequestMessage;
import org.teiid.dqp.message.AtomicResultsMessage;
-import org.teiid.query.processor.xml.XMLUtil;
-import org.teiid.query.processor.xml.XMLUtil.FileStoreInputStreamFactory;
+import org.teiid.query.function.source.XMLSystemFunctions;
import org.teiid.query.sql.symbol.SingleElementSymbol;
import org.teiid.translator.DataNotAvailableException;
import org.teiid.translator.TranslatorException;
@@ -192,7 +192,7 @@
StandardXMLTranslator sxt = new StandardXMLTranslator((Source)value);
SQLXMLImpl sqlxml;
try {
- sqlxml = XMLUtil.saveToBufferManager(dtm.getBufferManager(), sxt);
+ sqlxml = XMLSystemFunctions.saveToBufferManager(dtm.getBufferManager(), sxt);
} catch (TeiidComponentException e) {
throw new TeiidRuntimeException(e);
} catch (TeiidProcessingException e) {
Modified: trunk/engine/src/main/java/org/teiid/query/function/aggregate/TextAgg.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/function/aggregate/TextAgg.java 2011-03-17 14:04:37 UTC (rev 2999)
+++ trunk/engine/src/main/java/org/teiid/query/function/aggregate/TextAgg.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -31,13 +31,13 @@
import javax.sql.rowset.serial.SerialBlob;
import org.teiid.common.buffer.FileStore;
+import org.teiid.common.buffer.FileStoreInputStreamFactory;
import org.teiid.common.buffer.FileStore.FileStoreOutputStream;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
import org.teiid.core.types.BlobImpl;
import org.teiid.core.types.BlobType;
import org.teiid.core.types.Streamable;
-import org.teiid.query.processor.xml.XMLUtil.FileStoreInputStreamFactory;
import org.teiid.query.sql.symbol.DerivedColumn;
import org.teiid.query.sql.symbol.ElementSymbol;
import org.teiid.query.sql.symbol.TextLine;
Modified: trunk/engine/src/main/java/org/teiid/query/function/source/XMLSystemFunctions.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/function/source/XMLSystemFunctions.java 2011-03-17 14:04:37 UTC (rev 2999)
+++ trunk/engine/src/main/java/org/teiid/query/function/source/XMLSystemFunctions.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -78,17 +78,20 @@
import org.json.simple.parser.ContentHandler;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
+import org.teiid.common.buffer.BufferManager;
+import org.teiid.common.buffer.FileStore;
+import org.teiid.common.buffer.FileStoreInputStreamFactory;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidProcessingException;
import org.teiid.core.types.ClobImpl;
import org.teiid.core.types.ClobType;
import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.Streamable;
import org.teiid.core.types.XMLTranslator;
import org.teiid.core.types.XMLType;
import org.teiid.core.types.XMLType.Type;
import org.teiid.query.eval.Evaluator;
import org.teiid.query.function.CharsetUtils;
-import org.teiid.query.processor.xml.XMLUtil;
import org.teiid.query.util.CommandContext;
import org.teiid.translator.WSConnection.Util;
@@ -245,7 +248,7 @@
final Transformer transformer = factory.newTransformer(styleSource);
//this creates a non-validated sqlxml - it may not be valid xml/root-less xml
- SQLXMLImpl result = XMLUtil.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
+ SQLXMLImpl result = XMLSystemFunctions.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
@Override
public void translate(Writer writer) throws TransformerException {
@@ -273,7 +276,7 @@
return null;
}
- XMLType result = new XMLType(XMLUtil.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
+ XMLType result = new XMLType(XMLSystemFunctions.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
@Override
public void translate(Writer writer) throws TransformerException,
@@ -309,7 +312,7 @@
*/
public static XMLType xmlElement(CommandContext context, final String name,
final Evaluator.NameValuePair<String>[] namespaces, final Evaluator.NameValuePair<?>[] attributes, final List<?> contents) throws TeiidComponentException, TeiidProcessingException {
- XMLType result = new XMLType(XMLUtil.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
+ XMLType result = new XMLType(XMLSystemFunctions.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
@Override
public void translate(Writer writer) throws TransformerException,
@@ -383,7 +386,7 @@
return singleValue;
}
- XMLType result = new XMLType(XMLUtil.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
+ XMLType result = new XMLType(XMLSystemFunctions.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
@Override
public void translate(Writer writer) throws TransformerException,
@@ -671,7 +674,7 @@
private static SQLXML jsonToXml(CommandContext context,
final String rootName, final Reader r) throws TeiidComponentException,
TeiidProcessingException {
- XMLType result = new XMLType(XMLUtil.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
+ XMLType result = new XMLType(XMLSystemFunctions.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
@Override
public void translate(Writer writer) throws TransformerException,
@@ -700,9 +703,31 @@
result.setType(Type.DOCUMENT);
return result;
}
+
+ /**
+ * This method saves the given XML object to the buffer manager's disk process
+ * Documents less than the maxMemorySize will be held directly in memory
+ */
+ public static SQLXMLImpl saveToBufferManager(BufferManager bufferMgr, XMLTranslator translator)
+ throws TeiidComponentException, TeiidProcessingException {
+ boolean success = false;
+ final FileStore lobBuffer = bufferMgr.createFileStore("xml"); //$NON-NLS-1$
+ FileStoreInputStreamFactory fsisf = new FileStoreInputStreamFactory(lobBuffer, Streamable.ENCODING);
+ try{
+ Writer writer = fsisf.getWriter();
+ translator.translate(writer);
+ writer.close();
+ success = true;
+ return new SQLXMLImpl(fsisf);
+ } catch(IOException e) {
+ throw new TeiidComponentException(e);
+ } catch(TransformerException e) {
+ throw new TeiidProcessingException(e);
+ } finally {
+ if (!success && lobBuffer != null) {
+ lobBuffer.remove();
+ }
+ }
+ }
- public static void main(String[] args) {
- System.out.println(Charset.availableCharsets());
- }
-
}
Modified: trunk/engine/src/main/java/org/teiid/query/processor/xml/DocumentInProgress.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/xml/DocumentInProgress.java 2011-03-17 14:04:37 UTC (rev 2999)
+++ trunk/engine/src/main/java/org/teiid/query/processor/xml/DocumentInProgress.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -33,12 +33,12 @@
import net.sf.saxon.TransformerFactoryImpl;
import org.teiid.common.buffer.FileStore;
+import org.teiid.common.buffer.FileStoreInputStreamFactory;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.types.SQLXMLImpl;
import org.teiid.logging.LogManager;
import org.teiid.logging.MessageLevel;
import org.teiid.query.mapping.xml.MappingNodeConstants;
-import org.teiid.query.processor.xml.XMLUtil.FileStoreInputStreamFactory;
import org.xml.sax.SAXException;
Deleted: trunk/engine/src/main/java/org/teiid/query/processor/xml/XMLUtil.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/xml/XMLUtil.java 2011-03-17 14:04:37 UTC (rev 2999)
+++ trunk/engine/src/main/java/org/teiid/query/processor/xml/XMLUtil.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -1,122 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package org.teiid.query.processor.xml;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.nio.charset.Charset;
-
-import javax.xml.transform.TransformerException;
-
-import org.teiid.common.buffer.BufferManager;
-import org.teiid.common.buffer.FileStore;
-import org.teiid.common.buffer.FileStore.FileStoreOutputStream;
-import org.teiid.core.TeiidComponentException;
-import org.teiid.core.TeiidProcessingException;
-import org.teiid.core.types.DataTypeManager;
-import org.teiid.core.types.InputStreamFactory;
-import org.teiid.core.types.SQLXMLImpl;
-import org.teiid.core.types.Streamable;
-import org.teiid.core.types.XMLTranslator;
-
-/**
- * Utility methods to be used with the XML and XQuery processing.
- */
-public class XMLUtil {
-
- public static final class FileStoreInputStreamFactory extends InputStreamFactory {
- private final FileStore lobBuffer;
- private final FileStoreOutputStream fsos;
- private String encoding;
-
- public FileStoreInputStreamFactory(FileStore lobBuffer, String encoding) {
- this.encoding = encoding;
- this.lobBuffer = lobBuffer;
- fsos = lobBuffer.createOutputStream(DataTypeManager.MAX_LOB_MEMORY_BYTES);
- this.lobBuffer.setCleanupReference(this);
- }
-
- @Override
- public InputStream getInputStream() throws IOException {
- if (!fsos.bytesWritten()) {
- return new ByteArrayInputStream(fsos.getBuffer(), 0, fsos.getCount());
- }
- //TODO: adjust the buffer size, and/or develop a shared buffer strategy
- return new BufferedInputStream(lobBuffer.createInputStream(0));
- }
-
- @Override
- public long getLength() {
- return lobBuffer.getLength();
- }
-
- public Writer getWriter() {
- return new OutputStreamWriter(fsos, Charset.forName(encoding));
- }
-
- public FileStoreOutputStream getOuputStream() {
- return fsos;
- }
-
- @Override
- public void free() throws IOException {
- lobBuffer.remove();
- }
-
- @Override
- public boolean isPersistent() {
- return true;
- }
- }
-
- /**
- * This method saves the given XML object to the buffer manager's disk process
- * Documents less than the maxMemorySize will be held directly in memory
- */
- public static SQLXMLImpl saveToBufferManager(BufferManager bufferMgr, XMLTranslator translator)
- throws TeiidComponentException, TeiidProcessingException {
- boolean success = false;
- final FileStore lobBuffer = bufferMgr.createFileStore("xml"); //$NON-NLS-1$
- FileStoreInputStreamFactory fsisf = new FileStoreInputStreamFactory(lobBuffer, Streamable.ENCODING);
- try{
- Writer writer = fsisf.getWriter();
- translator.translate(writer);
- writer.close();
- success = true;
- return new SQLXMLImpl(fsisf);
- } catch(IOException e) {
- throw new TeiidComponentException(e);
- } catch(TransformerException e) {
- throw new TeiidProcessingException(e);
- } finally {
- if (!success && lobBuffer != null) {
- lobBuffer.remove();
- }
- }
- }
-
-}
\ No newline at end of file
Modified: trunk/engine/src/main/java/org/teiid/query/xquery/saxon/SaxonXQueryExpression.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/xquery/saxon/SaxonXQueryExpression.java 2011-03-17 14:04:37 UTC (rev 2999)
+++ trunk/engine/src/main/java/org/teiid/query/xquery/saxon/SaxonXQueryExpression.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -83,7 +83,6 @@
import org.teiid.query.QueryPlugin;
import org.teiid.query.analysis.AnalysisRecord;
import org.teiid.query.function.source.XMLSystemFunctions;
-import org.teiid.query.processor.xml.XMLUtil;
import org.teiid.query.sql.lang.XMLTable;
import org.teiid.query.sql.lang.XMLTable.XMLColumn;
import org.teiid.query.sql.symbol.DerivedColumn;
@@ -446,7 +445,7 @@
if (next != null) {
type = Type.CONTENT;
}
- SQLXMLImpl xml = XMLUtil.saveToBufferManager(bufferManager, new XMLTranslator() {
+ SQLXMLImpl xml = XMLSystemFunctions.saveToBufferManager(bufferManager, new XMLTranslator() {
@Override
public void translate(Writer writer) throws TransformerException,
Modified: trunk/runtime/src/main/java/org/teiid/transport/ObjectDecoder.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/ObjectDecoder.java 2011-03-17 14:04:37 UTC (rev 2999)
+++ trunk/runtime/src/main/java/org/teiid/transport/ObjectDecoder.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -22,10 +22,7 @@
*/
package org.teiid.transport;
-import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.StreamCorruptedException;
@@ -40,8 +37,9 @@
import org.jboss.netty.handler.codec.serialization.CompatibleObjectEncoder;
import org.jboss.netty.handler.codec.serialization.ObjectEncoder;
import org.teiid.common.buffer.FileStore;
+import org.teiid.common.buffer.FileStoreInputStreamFactory;
import org.teiid.common.buffer.StorageManager;
-import org.teiid.core.types.InputStreamFactory;
+import org.teiid.core.types.Streamable;
import org.teiid.core.types.InputStreamFactory.StreamFactoryReference;
import org.teiid.core.util.ExternalizeUtil;
import org.teiid.netty.handler.codec.serialization.CompactObjectInputStream;
@@ -144,14 +142,7 @@
if (stream == null) {
store = storageManager.createFileStore("temp-stream"); //$NON-NLS-1$
StreamFactoryReference sfr = streams.get(streamIndex);
- store.setCleanupReference(sfr);
- sfr.setStreamFactory(new InputStreamFactory() {
- FileStore fs = store;
- @Override
- public InputStream getInputStream() throws IOException {
- return new BufferedInputStream(fs.createInputStream(0));
- }
- });
+ sfr.setStreamFactory(new FileStoreInputStreamFactory(store, Streamable.ENCODING));
this.stream = new BufferedOutputStream(store.createOutputStream());
}
if (dataLen == 0) {
Modified: trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java
===================================================================
--- trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java 2011-03-17 14:04:37 UTC (rev 2999)
+++ trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java 2011-03-17 14:25:04 UTC (rev 3000)
@@ -41,6 +41,7 @@
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;
@@ -62,6 +63,7 @@
SocketListener listener;
private SocketServerConnectionFactory sscf;
private InetSocketAddress addr;
+ private MemoryStorageManager storageManager;
@Before public void setUp() {
addr = new InetSocketAddress(0);
@@ -125,8 +127,14 @@
SocketServerConnection conn = helpEstablishConnection(false);
FakeService fs = conn.getService(FakeService.class);
assertEquals(150, fs.lobMethod(new ByteArrayInputStream(new byte[100]), new StringReader(new String(new char[50]))));
+ assertEquals(2, storageManager.getCreated());
+ assertEquals(2, storageManager.getRemoved());
assertEquals(0, fs.lobMethod(new ByteArrayInputStream(new byte[0]), new StringReader(new String(new char[0]))));
+ assertEquals(4, storageManager.getCreated());
+ assertEquals(4, storageManager.getRemoved());
assertEquals((1 << 17) + 50, fs.lobMethod(new ByteArrayInputStream(new byte[1 << 17]), new StringReader(new String(new char[50]))));
+ assertEquals(6, storageManager.getCreated());
+ assertEquals(6, storageManager.getRemoved());
}
@Test public void testServerRemoteStreaming() throws Exception {
@@ -173,7 +181,8 @@
}, null);
server.registerClientService(FakeService.class, new TestSocketRemoting.FakeServiceImpl(), null);
- listener = new SocketListener(addr.getPort(), addr.getAddress().getHostAddress(), 1024, 1024, 1, config, server, BufferManagerFactory.getStandaloneBufferManager());
+ storageManager = new MemoryStorageManager();
+ listener = new SocketListener(addr.getPort(), addr.getAddress().getHostAddress(), 1024, 1024, 1, config, server, storageManager);
SocketListenerStats stats = listener.getStats();
assertEquals(0, stats.maxSockets);
More information about the teiid-commits
mailing list