blob: 0171d7015b92bb81de05d0da2befa97ace9c0e3a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TestProcedureMember (Apache HBase 3.0.0-alpha-2-SNAPSHOT Test API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="TestProcedureMember (Apache HBase 3.0.0-alpha-2-SNAPSHOT Test API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TestProcedureMember.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">
<li><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.EmptySubprocedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure/TestProcedureMember.html" target="_top">Frames</a></li>
<li><a href="TestProcedureMember.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.procedure</div>
<h2 title="Class TestProcedureMember" class="title">Class TestProcedureMember</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.procedure.TestProcedureMember</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.55">TestProcedureMember</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Test the procedure member, and it's error handling mechanisms.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.EmptySubprocedure.html" title="class in org.apache.hadoop.hbase.procedure">TestProcedureMember.EmptySubprocedure</a></span></code>
<div class="block">Helper <code>Procedure</code> who's phase for each step is just empty</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#data">data</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#dispatcher">dispatcher</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private org.apache.hadoop.hbase.procedure.ProcedureMember</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#member">member</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private org.apache.hadoop.hbase.procedure.SubprocedureFactory</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#mockBuilder">mockBuilder</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#mockListener">mockListener</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#mockMemberComms">mockMemberComms</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#op">op</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#POOL_KEEP_ALIVE">POOL_KEEP_ALIVE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) org.apache.hadoop.hbase.procedure.Subprocedure</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#spySub">spySub</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#TIMEOUT">TIMEOUT</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#WAKE_FREQUENCY">WAKE_FREQUENCY</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#TestProcedureMember--">TestProcedureMember</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#addCommitAnswer--">addCommitAnswer</a></span>()</code>
<div class="block">Add a 'in barrier phase' response to the mock controller when it gets a acquired notification</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private org.apache.hadoop.hbase.procedure.ProcedureMember</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#buildCohortMember--">buildCohortMember</a></span>()</code>
<div class="block">Build a member using the class level mocks</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#buildCohortMemberPair--">buildCohortMemberPair</a></span>()</code>
<div class="block">Setup a procedure member that returns the spied-upon <code>Subprocedure</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#resetTest--">resetTest</a></span>()</code>
<div class="block">Reset all the mock objects</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#testCoordinatorAbort--">testCoordinatorAbort</a></span>()</code>
<div class="block">Fail correctly if coordinator aborts the procedure.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#testMemberCommitCommsFailure--">testMemberCommitCommsFailure</a></span>()</code>
<div class="block">Handle Failures if a member's commit phase succeeds but notification to coordinator fails
NOTE: This is the core difference that makes this different from traditional 2PC.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#testMemberCommitException--">testMemberCommitException</a></span>()</code>
<div class="block">Handle failures if a member's commit phase fails.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#testMemberPrepareException--">testMemberPrepareException</a></span>()</code>
<div class="block">Make sure we call cleanup etc, when we have an exception during
<code>Subprocedure.acquireBarrier()</code>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#testNoTaskToBeRunFromRequest--">testNoTaskToBeRunFromRequest</a></span>()</code>
<div class="block">Test that the cohort member correctly doesn't attempt to start a task when the builder cannot
correctly build a new task for the requested operation</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#testPropagateConnectionErrorBackToManager--">testPropagateConnectionErrorBackToManager</a></span>()</code>
<div class="block">Fail correctly on getting an external error while waiting for the prepared latch</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#testSendMemberAcquiredCommsFailure--">testSendMemberAcquiredCommsFailure</a></span>()</code>
<div class="block">Make sure we call cleanup etc, when we have an exception during prepare.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.html#testSimpleRun--">testSimpleRun</a></span>()</code>
<div class="block">Test the normal sub procedure execution case.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="CLASS_RULE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CLASS_RULE</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.58">CLASS_RULE</a></pre>
</li>
</ul>
<a name="WAKE_FREQUENCY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WAKE_FREQUENCY</h4>
<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.61">WAKE_FREQUENCY</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure.TestProcedureMember.WAKE_FREQUENCY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TIMEOUT</h4>
<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.62">TIMEOUT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure.TestProcedureMember.TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="POOL_KEEP_ALIVE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>POOL_KEEP_ALIVE</h4>
<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.63">POOL_KEEP_ALIVE</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure.TestProcedureMember.POOL_KEEP_ALIVE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="op">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>op</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.65">op</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure.TestProcedureMember.op">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="data">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>data</h4>
<pre>private final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.66">data</a></pre>
</li>
</ul>
<a name="mockListener">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mockListener</h4>
<pre>private final&nbsp;org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.67">mockListener</a></pre>
</li>
</ul>
<a name="mockBuilder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mockBuilder</h4>
<pre>private final&nbsp;org.apache.hadoop.hbase.procedure.SubprocedureFactory <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.69">mockBuilder</a></pre>
</li>
</ul>
<a name="mockMemberComms">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mockMemberComms</h4>
<pre>private final&nbsp;org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.70">mockMemberComms</a></pre>
</li>
</ul>
<a name="member">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>member</h4>
<pre>private&nbsp;org.apache.hadoop.hbase.procedure.ProcedureMember <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.72">member</a></pre>
</li>
</ul>
<a name="dispatcher">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dispatcher</h4>
<pre>private&nbsp;org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.73">dispatcher</a></pre>
</li>
</ul>
<a name="spySub">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>spySub</h4>
<pre>org.apache.hadoop.hbase.procedure.Subprocedure <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.74">spySub</a></pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="TestProcedureMember--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TestProcedureMember</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.55">TestProcedureMember</a>()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="resetTest--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetTest</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.80">resetTest</a>()</pre>
<div class="block">Reset all the mock objects</div>
</li>
</ul>
<a name="buildCohortMember--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildCohortMember</h4>
<pre>private&nbsp;org.apache.hadoop.hbase.procedure.ProcedureMember&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.94">buildCohortMember</a>()</pre>
<div class="block">Build a member using the class level mocks</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>member to use for tests</dd>
</dl>
</li>
</ul>
<a name="buildCohortMemberPair--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildCohortMemberPair</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.103">buildCohortMemberPair</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Setup a procedure member that returns the spied-upon <code>Subprocedure</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="addCommitAnswer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addCommitAnswer</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.119">addCommitAnswer</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Add a 'in barrier phase' response to the mock controller when it gets a acquired notification</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="testSimpleRun--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSimpleRun</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.133">testSimpleRun</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Test the normal sub procedure execution case.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testMemberPrepareException--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testMemberPrepareException</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.164">testMemberPrepareException</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Make sure we call cleanup etc, when we have an exception during
<code>Subprocedure.acquireBarrier()</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testSendMemberAcquiredCommsFailure--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSendMemberAcquiredCommsFailure</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.199">testSendMemberAcquiredCommsFailure</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Make sure we call cleanup etc, when we have an exception during prepare.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testCoordinatorAbort--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testCoordinatorAbort</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.238">testCoordinatorAbort</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Fail correctly if coordinator aborts the procedure. The subprocedure will not interrupt a
running <code>Subprocedure.acquireBarrier()</code> -- prepare needs to finish first, and the the abort
is checked. Thus, the <code>Subprocedure.acquireBarrier()</code> should succeed but later get rolled back
via <code>Subprocedure.cleanup(java.lang.Exception)</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testMemberCommitException--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testMemberCommitException</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.283">testMemberCommitException</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Handle failures if a member's commit phase fails.
NOTE: This is the core difference that makes this different from traditional 2PC. In true
2PC the transaction is committed just before the coordinator sends commit messages to the
member. Members are then responsible for reading its TX log. This implementation actually
rolls back, and thus breaks the normal TX guarantees.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testMemberCommitCommsFailure--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testMemberCommitCommsFailure</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.324">testMemberCommitCommsFailure</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Handle Failures if a member's commit phase succeeds but notification to coordinator fails
NOTE: This is the core difference that makes this different from traditional 2PC. In true
2PC the transaction is committed just before the coordinator sends commit messages to the
member. Members are then responsible for reading its TX log. This implementation actually
rolls back, and thus breaks the normal TX guarantees.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testPropagateConnectionErrorBackToManager--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testPropagateConnectionErrorBackToManager</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.362">testPropagateConnectionErrorBackToManager</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Fail correctly on getting an external error while waiting for the prepared latch</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - on failure</dd>
</dl>
</li>
</ul>
<a name="testNoTaskToBeRunFromRequest--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>testNoTaskToBeRunFromRequest</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/TestProcedureMember.html#line.408">testNoTaskToBeRunFromRequest</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Test that the cohort member correctly doesn't attempt to start a task when the builder cannot
correctly build a new task for the requested operation</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - on failure</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TestProcedureMember.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">
<li><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureMember.EmptySubprocedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure/TestProcedureMember.html" target="_top">Frames</a></li>
<li><a href="TestProcedureMember.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.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>
</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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>