blob: 339da6056803019d487d72e104705096b5d1d5e9 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>ConcurrentTestCommandExecutor (Calcite 1.21.0 Test API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ConcurrentTestCommandExecutor (Calcite 1.21.0 Test API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ConcurrentTestCommandExecutor.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.test.concurrent</a></div>
<h2 title="Class ConcurrentTestCommandExecutor" class="title">Class ConcurrentTestCommandExecutor</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>java.lang.Thread</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.test.concurrent.ConcurrentTestCommandExecutor</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.lang.Runnable</code></dd>
</dl>
<hr>
<pre>class <span class="typeNameLabel">ConcurrentTestCommandExecutor</span>
extends java.lang.Thread</pre>
<div class="block">ConcurrentTestCommandExecutor is a thread that executes a sequence of
<a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent"><code>commands</code></a> on a JDBC connection.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ConcurrentTestCommandExecutor.Sync.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandExecutor.Sync</a></span></code></th>
<td class="colLast">
<div class="block">Synchronization object that allows multiple
ConcurrentTestCommandExecutors to execute commands in lock-step.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.java.lang.Thread">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;java.lang.Thread</h3>
<code>java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler</code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.lang.Iterable&lt;<a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#commands">commands</a></span></code></th>
<td class="colLast">
<div class="block">Command sequence for this thread.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.sql.Connection</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connection">connection</a></span></code></th>
<td class="colLast">
<div class="block">JDBC connection for commands.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.io.PrintStream</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#debugPrintStream">debugPrintStream</a></span></code></th>
<td class="colLast">
<div class="block">Debugging print stream.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.lang.Throwable</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#error">error</a></span></code></th>
<td class="colLast">
<div class="block">First exception thrown by the thread.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#errorCommand">errorCommand</a></span></code></th>
<td class="colLast">
<div class="block">Command throwing error *</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Properties</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#jdbcProps">jdbcProps</a></span></code></th>
<td class="colLast">
<div class="block">JDBC Connection properties.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#jdbcURL">jdbcURL</a></span></code></th>
<td class="colLast">
<div class="block">JDBC URL to connect with.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.sql.Statement</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#statement">statement</a></span></code></th>
<td class="colLast">
<div class="block">Current JDBC Statement.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="ConcurrentTestCommandExecutor.Sync.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandExecutor.Sync</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#synchronizer">synchronizer</a></span></code></th>
<td class="colLast">
<div class="block">Used to synchronize command execution.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.lang.Integer</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#threadId">threadId</a></span></code></th>
<td class="colLast">
<div class="block">The id for this thread.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#when">when</a></span></code></th>
<td class="colLast">
<div class="block">Location of <a href="#error"><code>error</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.java.lang.Thread">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;java.lang.Thread</h3>
<code>MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY</code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.lang.String,java.lang.String,java.util.Properties,java.lang.Iterable,org.apache.calcite.test.concurrent.ConcurrentTestCommandExecutor.Sync,java.io.PrintStream)">ConcurrentTestCommandExecutor</a></span>&#8203;(int&nbsp;threadId,
java.lang.String&nbsp;threadName,
java.lang.String&nbsp;jdbcURL,
java.util.Properties&nbsp;jdbcProps,
java.lang.Iterable&lt;<a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a>&gt;&nbsp;commands,
<a href="ConcurrentTestCommandExecutor.Sync.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandExecutor.Sync</a>&nbsp;synchronizer,
java.io.PrintStream&nbsp;debugPrintStream)</code></th>
<td class="colLast">
<div class="block">Constructs a ConcurrentTestCommandExecutor with the given thread
ID, JDBC URL, commands and synchronization object.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearStatement()">clearStatement</a></span>()</code></th>
<td class="colLast">
<div class="block">Clears the thread's current JDBC statement.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.sql.Connection</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConnection()">getConnection</a></span>()</code></th>
<td class="colLast">
<div class="block">Obtains the thread's JDBC connection.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.Throwable</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFailureCause()">getFailureCause</a></span>()</code></th>
<td class="colLast">
<div class="block">Checks whether an exception occurred during execution.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFailureCommand()">getFailureCommand</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFailureLocation()">getFailureLocation</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns location (e.g., command number) for exception returned by
<a href="#getFailureCause()"><code>getFailureCause()</code></a>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.sql.Statement</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatement()">getStatement</a></span>()</code></th>
<td class="colLast">
<div class="block">Obtains the thread's current JDBC statement.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="ConcurrentTestCommandExecutor.Sync.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandExecutor.Sync</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSynchronizer()">getSynchronizer</a></span>()</code></th>
<td class="colLast">
<div class="block">Retrieves the object used to synchronize threads at a point in the list
of commands.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.lang.Integer</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getThreadId()">getThreadId</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleError(java.lang.Throwable,java.lang.String,org.apache.calcite.test.concurrent.ConcurrentTestCommand)">handleError</a></span>&#8203;(java.lang.Throwable&nbsp;error,
java.lang.String&nbsp;when,
<a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a>&nbsp;command)</code></th>
<td class="colLast">
<div class="block">Handles details of an exception during execution.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run()">run</a></span>()</code></th>
<td class="colLast">
<div class="block">Executes the configured commands.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatement(java.sql.Statement)">setStatement</a></span>&#8203;(java.sql.Statement&nbsp;stmt)</code></th>
<td class="colLast">
<div class="block">Sets the thread's current JDBC statement.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Thread">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Thread</h3>
<code>activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="threadId">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>threadId</h4>
<pre>private&nbsp;java.lang.Integer threadId</pre>
<div class="block">The id for this thread.</div>
</li>
</ul>
<a id="jdbcURL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>jdbcURL</h4>
<pre>private&nbsp;java.lang.String jdbcURL</pre>
<div class="block">JDBC URL to connect with.</div>
</li>
</ul>
<a id="jdbcProps">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>jdbcProps</h4>
<pre>private&nbsp;java.util.Properties jdbcProps</pre>
<div class="block">JDBC Connection properties.</div>
</li>
</ul>
<a id="commands">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commands</h4>
<pre>private&nbsp;java.lang.Iterable&lt;<a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a>&gt; commands</pre>
<div class="block">Command sequence for this thread.</div>
</li>
</ul>
<a id="synchronizer">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>synchronizer</h4>
<pre>private&nbsp;<a href="ConcurrentTestCommandExecutor.Sync.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandExecutor.Sync</a> synchronizer</pre>
<div class="block">Used to synchronize command execution.</div>
</li>
</ul>
<a id="connection">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connection</h4>
<pre>private&nbsp;java.sql.Connection connection</pre>
<div class="block">JDBC connection for commands.</div>
</li>
</ul>
<a id="statement">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>statement</h4>
<pre>private&nbsp;java.sql.Statement statement</pre>
<div class="block">Current JDBC Statement. May be null.</div>
</li>
</ul>
<a id="error">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>error</h4>
<pre>private&nbsp;java.lang.Throwable error</pre>
<div class="block">First exception thrown by the thread.</div>
</li>
</ul>
<a id="when">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>when</h4>
<pre>private&nbsp;java.lang.String when</pre>
<div class="block">Location of <a href="#error"><code>error</code></a>.</div>
</li>
</ul>
<a id="debugPrintStream">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>debugPrintStream</h4>
<pre>private final&nbsp;java.io.PrintStream debugPrintStream</pre>
<div class="block">Debugging print stream. May be null.</div>
</li>
</ul>
<a id="errorCommand">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>errorCommand</h4>
<pre>private&nbsp;<a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a> errorCommand</pre>
<div class="block">Command throwing error *</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(int,java.lang.String,java.lang.String,java.util.Properties,java.lang.Iterable,org.apache.calcite.test.concurrent.ConcurrentTestCommandExecutor.Sync,java.io.PrintStream)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ConcurrentTestCommandExecutor</h4>
<pre>ConcurrentTestCommandExecutor&#8203;(int&nbsp;threadId,
java.lang.String&nbsp;threadName,
java.lang.String&nbsp;jdbcURL,
java.util.Properties&nbsp;jdbcProps,
java.lang.Iterable&lt;<a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a>&gt;&nbsp;commands,
<a href="ConcurrentTestCommandExecutor.Sync.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandExecutor.Sync</a>&nbsp;synchronizer,
java.io.PrintStream&nbsp;debugPrintStream)</pre>
<div class="block">Constructs a ConcurrentTestCommandExecutor with the given thread
ID, JDBC URL, commands and synchronization object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>threadId</code> - the thread ID
(see <a href="ConcurrentTestCommandGenerator.html" title="class in org.apache.calcite.test.concurrent"><code>ConcurrentTestCommandGenerator</code></a>)</dd>
<dd><code>threadName</code> - the thread's name</dd>
<dd><code>jdbcURL</code> - the JDBC URL to connect to</dd>
<dd><code>jdbcProps</code> - JDBC Connection properties (user, password, etc.)</dd>
<dd><code>commands</code> - the sequence of commands to execute -- null
elements indicate no-ops</dd>
<dd><code>synchronizer</code> - synchronization object (may not be null);</dd>
<dd><code>debugPrintStream</code> - if non-null a PrintStream to use for debugging
output (may help debugging thread synchronization</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="run()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;run()</pre>
<div class="block">Executes the configured commands.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>run</code>&nbsp;in interface&nbsp;<code>java.lang.Runnable</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>run</code>&nbsp;in class&nbsp;<code>java.lang.Thread</code></dd>
</dl>
</li>
</ul>
<a id="handleError(java.lang.Throwable,java.lang.String,org.apache.calcite.test.concurrent.ConcurrentTestCommand)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleError</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;handleError&#8203;(java.lang.Throwable&nbsp;error,
java.lang.String&nbsp;when,
<a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a>&nbsp;command)</pre>
<div class="block">Handles details of an exception during execution.</div>
</li>
</ul>
<a id="getConnection()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConnection</h4>
<pre class="methodSignature">public&nbsp;java.sql.Connection&nbsp;getConnection()</pre>
<div class="block">Obtains the thread's JDBC connection.</div>
</li>
</ul>
<a id="getStatement()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStatement</h4>
<pre class="methodSignature">public&nbsp;java.sql.Statement&nbsp;getStatement()</pre>
<div class="block">Obtains the thread's current JDBC statement. May return null.</div>
</li>
</ul>
<a id="setStatement(java.sql.Statement)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStatement</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setStatement&#8203;(java.sql.Statement&nbsp;stmt)</pre>
<div class="block">Sets the thread's current JDBC statement. To clear the JDBC statement use
<a href="#clearStatement()"><code>clearStatement()</code></a>.</div>
</li>
</ul>
<a id="clearStatement()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearStatement</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearStatement()</pre>
<div class="block">Clears the thread's current JDBC statement. To set the JDBC statement use
<a href="#setStatement(java.sql.Statement)"><code>setStatement(Statement)</code></a>.</div>
</li>
</ul>
<a id="getSynchronizer()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSynchronizer</h4>
<pre class="methodSignature">public&nbsp;<a href="ConcurrentTestCommandExecutor.Sync.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandExecutor.Sync</a>&nbsp;getSynchronizer()</pre>
<div class="block">Retrieves the object used to synchronize threads at a point in the list
of commands.</div>
</li>
</ul>
<a id="getFailureCause()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFailureCause</h4>
<pre class="methodSignature">public&nbsp;java.lang.Throwable&nbsp;getFailureCause()</pre>
<div class="block">Checks whether an exception occurred during execution. If this method
returns null, the thread's commands all succeeded. If this method returns
non-null, see <a href="#getFailureLocation()"><code>getFailureLocation()</code></a> for details on which command
caused the failure.</div>
</li>
</ul>
<a id="getFailureLocation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFailureLocation</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getFailureLocation()</pre>
<div class="block">Returns location (e.g., command number) for exception returned by
<a href="#getFailureCause()"><code>getFailureCause()</code></a>.</div>
</li>
</ul>
<a id="getFailureCommand()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFailureCommand</h4>
<pre class="methodSignature">public&nbsp;<a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a>&nbsp;getFailureCommand()</pre>
</li>
</ul>
<a id="getThreadId()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getThreadId</h4>
<pre class="methodSignature">public&nbsp;java.lang.Integer&nbsp;getThreadId()</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ConcurrentTestCommandExecutor.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>