<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<head>
<style>.content {
  padding: 20px;
  height: 100%;
  width: 944px;
  margin-left: auto;
  margin-right: auto;
}
.fold {
  width: 20px;
  float: left;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.number {
  width: 45px;
  float: left;
  margin-right: 10px;
  text-align: right;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.line {
}
.content {
  font-family: "Monospace";
  font-size: 1em;
  background: #3f3f3f;
  color: White;
  width: 944px;
  padding: 20px;
  height: 100%;
  margin-left: auto;
  margin-right: auto;
}
font.Alert {
	color: Yellow;
	font-weight: bold;
}
font.Annotation {
   color: Yellow;
	font-style: italic;
}
font.Attribute {
   color: LightPink;
}
font.BaseN {
   color: Gold;
}
font.BuiltIn {
   color: Coral;
}
font.Char {
   color: Cyan;
}
font.Comment {
   color: Beige;
	font-style: italic;
}
font.CommentVar {
   color: LightBlue;
	font-style: italic;
}
font.Constant {
   color: White;
	font-weight: bold;
}
font.ControlFlow {
   color: DeepPink;
}
font.DataType {
   color: CadetBlue;
}
font.DecVal {
   color: MediumPurple;
	font-weight: bold;
}
font.Documentation {
   color: Gold;
	font-style: italic;
}
font.Error {
   color: Red;
	font-weight: bold;
}
font.Extension {
   color: DarkGray;
	font-weight: bold;
}
font.Float {
   color: DarkViolet;
	font-weight: bold;
}
font.Function {
   color: RosyBrown;
}
font.Import {
   color: PaleVioletRed;
}
font.Information {
   color: LightGreen;
	font-style: italic;
}
font.Keyword {
   color: LightGreen;
	font-weight: bold;
}
font.Normal {
   color: White;
}
font.Operator {
   color: Magenta;
}
font.Others {
   color: GreenYellow;
}
font.Preprocessor {
   color: DarkSeaGreen ;
	font-weight: bold;
}
font.RegionMarker {
   color: Plum;
}
font.SpecialChar {
   color: Plum;
	font-weight: bold;
}
font.SpecialString {
   color: LightBlue;
}
font.String {
   color: MediumAquaMarine;
}
font.Variable {
   color: Turquoise;
	font-weight: bold;
}
font.VerbatimString {
   color: LightSkyBlue;
}
font.Warning {
   color: Brown;
	font-weight: bold;
}

</style>
<title>Kamelon output</title>
</head>
<body>

<div class="content">
<div id="1" class="line"><font class="Comment">/*</font></br></div>
<div id="2" class="line"><font class="Comment">&nbsp;*&nbsp;Copyright&nbsp;(c)&nbsp;2006&nbsp;Sun&nbsp;Microsystems,&nbsp;Inc.&nbsp;&nbsp;All&nbsp;rights&nbsp;reserved.&nbsp;&nbsp;U.S.</font></br></div>
<div id="3" class="line"><font class="Comment">&nbsp;*&nbsp;Government&nbsp;Rights&nbsp;-&nbsp;Commercial&nbsp;software.&nbsp;&nbsp;Government&nbsp;users&nbsp;are&nbsp;subject</font></br></div>
<div id="4" class="line"><font class="Comment">&nbsp;*&nbsp;to&nbsp;the&nbsp;Sun&nbsp;Microsystems,&nbsp;Inc.&nbsp;standard&nbsp;license&nbsp;agreement&nbsp;and</font></br></div>
<div id="5" class="line"><font class="Comment">&nbsp;*&nbsp;applicable&nbsp;provisions&nbsp;of&nbsp;the&nbsp;FAR&nbsp;and&nbsp;its&nbsp;supplements.&nbsp;&nbsp;Use&nbsp;is&nbsp;subject</font></br></div>
<div id="6" class="line"><font class="Comment">&nbsp;*&nbsp;to&nbsp;license&nbsp;terms.</font></br></div>
<div id="7" class="line"><font class="Comment">&nbsp;*</font></br></div>
<div id="8" class="line"><font class="Comment">&nbsp;*&nbsp;This&nbsp;distribution&nbsp;may&nbsp;include&nbsp;materials&nbsp;developed&nbsp;by&nbsp;third&nbsp;parties.</font></br></div>
<div id="9" class="line"><font class="Comment">&nbsp;*&nbsp;Sun,&nbsp;Sun&nbsp;Microsystems,&nbsp;the&nbsp;Sun&nbsp;logo,&nbsp;Java&nbsp;and&nbsp;J2EE&nbsp;are&nbsp;trademarks</font></br></div>
<div id="10" class="line"><font class="Comment">&nbsp;*&nbsp;or&nbsp;registered&nbsp;trademarks&nbsp;of&nbsp;Sun&nbsp;Microsystems,&nbsp;Inc.&nbsp;in&nbsp;the&nbsp;U.S.&nbsp;and</font></br></div>
<div id="11" class="line"><font class="Comment">&nbsp;*&nbsp;other&nbsp;countries.</font></br></div>
<div id="12" class="line"><font class="Comment">&nbsp;*</font></br></div>
<div id="13" class="line"><font class="Comment">&nbsp;*&nbsp;Copyright&nbsp;(c)&nbsp;2006&nbsp;Sun&nbsp;Microsystems,&nbsp;Inc.&nbsp;Tous&nbsp;droits&nbsp;reserves.</font></br></div>
<div id="14" class="line"><font class="Comment">&nbsp;*</font></br></div>
<div id="15" class="line"><font class="Comment">&nbsp;*&nbsp;Droits&nbsp;du&nbsp;gouvernement&nbsp;americain,&nbsp;utilisateurs&nbsp;gouvernementaux&nbsp;-&nbsp;logiciel</font></br></div>
<div id="16" class="line"><font class="Comment">&nbsp;*&nbsp;commercial.&nbsp;Les&nbsp;utilisateurs&nbsp;gouvernementaux&nbsp;sont&nbsp;soumis&nbsp;au&nbsp;contrat&nbsp;de</font></br></div>
<div id="17" class="line"><font class="Comment">&nbsp;*&nbsp;licence&nbsp;standard&nbsp;de&nbsp;Sun&nbsp;Microsystems,&nbsp;Inc.,&nbsp;ainsi&nbsp;qu'aux&nbsp;dispositions</font></br></div>
<div id="18" class="line"><font class="Comment">&nbsp;*&nbsp;en&nbsp;vigueur&nbsp;de&nbsp;la&nbsp;FAR&nbsp;(Federal&nbsp;Acquisition&nbsp;Regulations)&nbsp;et&nbsp;des</font></br></div>
<div id="19" class="line"><font class="Comment">&nbsp;*&nbsp;supplements&nbsp;a&nbsp;celles-ci.&nbsp;&nbsp;Distribue&nbsp;par&nbsp;des&nbsp;licences&nbsp;qui&nbsp;en</font></br></div>
<div id="20" class="line"><font class="Comment">&nbsp;*&nbsp;restreignent&nbsp;l'utilisation.</font></br></div>
<div id="21" class="line"><font class="Comment">&nbsp;*</font></br></div>
<div id="22" class="line"><font class="Comment">&nbsp;*&nbsp;Cette&nbsp;distribution&nbsp;peut&nbsp;comprendre&nbsp;des&nbsp;composants&nbsp;developpes&nbsp;par&nbsp;des</font></br></div>
<div id="23" class="line"><font class="Comment">&nbsp;*&nbsp;tierces&nbsp;parties.&nbsp;Sun,&nbsp;Sun&nbsp;Microsystems,&nbsp;le&nbsp;logo&nbsp;Sun,&nbsp;Java&nbsp;et&nbsp;J2EE</font></br></div>
<div id="24" class="line"><font class="Comment">&nbsp;*&nbsp;sont&nbsp;des&nbsp;marques&nbsp;de&nbsp;fabrique&nbsp;ou&nbsp;des&nbsp;marques&nbsp;deposees&nbsp;de&nbsp;Sun</font></br></div>
<div id="25" class="line"><font class="Comment">&nbsp;*&nbsp;Microsystems,&nbsp;Inc.&nbsp;aux&nbsp;Etats-Unis&nbsp;et&nbsp;dans&nbsp;d'autres&nbsp;pays.</font></br></div>
<div id="26" class="line"><font class="Comment">&nbsp;*/</font></br></div>
<div id="27" class="line"></br></div>
<div id="28" class="line"></br></div>
<div id="29" class="line"><font class="Keyword">import</font><font class="Import">&nbsp;javax.jms.ConnectionFactory;</font></br></div>
<div id="30" class="line"><font class="Keyword">import</font><font class="Import">&nbsp;javax.jms.Queue;</font></br></div>
<div id="31" class="line"><font class="Keyword">import</font><font class="Import">&nbsp;javax.jms.Topic;</font></br></div>
<div id="32" class="line"><font class="Keyword">import</font><font class="Import">&nbsp;javax.jms.Connection;</font></br></div>
<div id="33" class="line"><font class="Keyword">import</font><font class="Import">&nbsp;javax.jms.Session;</font></br></div>
<div id="34" class="line"><font class="Keyword">import</font><font class="Import">&nbsp;javax.jms.MessageProducer;</font></br></div>
<div id="35" class="line"><font class="Keyword">import</font><font class="Import">&nbsp;javax.jms.MessageConsumer;</font></br></div>
<div id="36" class="line"><font class="Keyword">import</font><font class="Import">&nbsp;javax.jms.TextMessage;</font></br></div>
<div id="37" class="line"><font class="Keyword">import</font><font class="Import">&nbsp;javax.jms.JMSException;</font></br></div>
<div id="38" class="line"></br></div>
<div id="39" class="line"></br></div>
<div id="40" class="line"><font class="Keyword">public</font><font class="Normal">&nbsp;</font><font class="Keyword">class</font><font class="Normal">&nbsp;SampleUtilities&nbsp;{</font></br></div>
<div id="41" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">/**</font></br></div>
<div id="42" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;Waits&nbsp;for&nbsp;</font><font class="Documentation">'count'</font><font class="Normal">&nbsp;messages&nbsp;on&nbsp;controlQueue&nbsp;before</font></br></div>
<div id="43" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;continuing</font><font class="Documentation">.&nbsp;</font><font class="Normal">&nbsp;Called&nbsp;by&nbsp;a&nbsp;publisher&nbsp;to&nbsp;make&nbsp;sure&nbsp;that</font></br></div>
<div id="44" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;subscribers&nbsp;have&nbsp;started&nbsp;before&nbsp;it&nbsp;begins&nbsp;publishing</font></br></div>
<div id="45" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;messages</font><font class="Comment">.</font></br></div>
<div id="46" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font></br></div>
<div id="47" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;If&nbsp;controlQueue&nbsp;does&nbsp;not&nbsp;exist</font><font class="Comment">,</font><font class="Normal">&nbsp;the&nbsp;method&nbsp;throws&nbsp;an</font></br></div>
<div id="48" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;exception</font><font class="Comment">.</font></br></div>
<div id="49" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font></br></div>
<div id="50" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;</font><font class="Char">@param&nbsp;</font><font class="Keyword">prefix&nbsp;</font><font class="Normal">&nbsp;&nbsp;&nbsp;prefix&nbsp;</font><font class="Comment">(</font><font class="Normal">publisher&nbsp;or&nbsp;subscriber</font><font class="Comment">)</font><font class="Normal">&nbsp;to&nbsp;be</font></br></div>
<div id="51" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayed</font></br></div>
<div id="52" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;</font><font class="Char">@param&nbsp;</font><font class="Keyword">controlQueue&nbsp;</font><font class="Normal">&nbsp;&nbsp;control&nbsp;queue</font></br></div>
<div id="53" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;</font><font class="Char">@param&nbsp;</font><font class="Keyword">count&nbsp;</font><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;number&nbsp;of&nbsp;messages&nbsp;to&nbsp;receive</font></br></div>
<div id="54" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*/</font></br></div>
<div id="55" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">public</font><font class="Normal">&nbsp;</font><font class="DataType">static</font><font class="Normal">&nbsp;</font><font class="DataType">void</font><font class="Normal">&nbsp;</font><font class="Function">receiveSynchronizeMessages</font><font class="Normal">(</font><font class="BuiltIn">String</font><font class="Normal">&nbsp;prefix,</font></br></div>
<div id="56" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConnectionFactory&nbsp;connectionFactory,&nbsp;</font><font class="BuiltIn">Queue</font><font class="Normal">&nbsp;controlQueue,&nbsp;</font><font class="DataType">int</font><font class="Normal">&nbsp;count)</font></br></div>
<div id="57" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">throws</font><font class="Normal">&nbsp;</font><font class="BuiltIn">Exception</font><font class="Normal">&nbsp;{</font></br></div>
<div id="58" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="BuiltIn">Connection</font><font class="Normal">&nbsp;connection&nbsp;=&nbsp;</font><font class="Keyword">null</font><font class="Normal">;</font></br></div>
<div id="59" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;=&nbsp;</font><font class="Keyword">null</font><font class="Normal">;</font></br></div>
<div id="60" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageConsumer&nbsp;receiver&nbsp;=&nbsp;</font><font class="Keyword">null</font><font class="Normal">;</font></br></div>
<div id="61" class="line"></br></div>
<div id="62" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">try</font><font class="Normal">&nbsp;{</font></br></div>
<div id="63" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection&nbsp;=&nbsp;connectionFactory.</font><font class="Function">createConnection</font><font class="Normal">();</font></br></div>
<div id="64" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session&nbsp;=&nbsp;connection.</font><font class="Function">createSession</font><font class="Normal">(</font><font class="Keyword">false</font><font class="Normal">,&nbsp;Session.</font><font class="Function">AUTO_ACKNOWLEDGE</font><font class="Normal">);</font></br></div>
<div id="65" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection.</font><font class="Function">start</font><font class="Normal">();</font></br></div>
<div id="66" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">catch</font><font class="Normal">&nbsp;(</font><font class="BuiltIn">Exception</font><font class="Normal">&nbsp;e)&nbsp;{</font></br></div>
<div id="67" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="BuiltIn">System</font><font class="Normal">.</font><font class="Function">err</font><font class="Normal">.</font><font class="Function">println</font><font class="Normal">(</font></br></div>
<div id="68" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="String">&quot;receiveSynchronizeMessages&nbsp;connection&nbsp;problem:&nbsp;&quot;</font><font class="Normal">&nbsp;+</font></br></div>
<div id="69" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.</font><font class="Function">toString</font><font class="Normal">());</font></br></div>
<div id="70" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.</font><font class="Function">printStackTrace</font><font class="Normal">();</font></br></div>
<div id="71" class="line"></br></div>
<div id="72" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">if</font><font class="Normal">&nbsp;(connection&nbsp;!=&nbsp;</font><font class="Keyword">null</font><font class="Normal">)&nbsp;{</font></br></div>
<div id="73" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">try</font><font class="Normal">&nbsp;{</font></br></div>
<div id="74" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection.</font><font class="Function">close</font><font class="Normal">();</font></br></div>
<div id="75" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">catch</font><font class="Normal">&nbsp;(JMSException&nbsp;ee)&nbsp;{</font></br></div>
<div id="76" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="77" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="78" class="line"></br></div>
<div id="79" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">throw</font><font class="Normal">&nbsp;e;</font></br></div>
<div id="80" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="81" class="line"></br></div>
<div id="82" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">try</font><font class="Normal">&nbsp;{</font></br></div>
<div id="83" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="BuiltIn">System</font><font class="Normal">.</font><font class="Function">out</font><font class="Normal">.</font><font class="Function">println</font><font class="Normal">(prefix&nbsp;+&nbsp;</font><font class="String">&quot;Receiving&nbsp;synchronize&nbsp;messages&nbsp;from&nbsp;&quot;</font><font class="Normal">&nbsp;+</font></br></div>
<div id="84" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="String">&quot;control&nbsp;queue;&nbsp;count&nbsp;=&nbsp;&quot;</font><font class="Normal">&nbsp;+&nbsp;count);</font></br></div>
<div id="85" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;receiver&nbsp;=&nbsp;session.</font><font class="Function">createConsumer</font><font class="Normal">(controlQueue);</font></br></div>
<div id="86" class="line"></br></div>
<div id="87" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">while</font><font class="Normal">&nbsp;(count&nbsp;&gt;&nbsp;</font><font class="Float">0</font><font class="Normal">)&nbsp;{</font></br></div>
<div id="88" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;receiver.</font><font class="Function">receive</font><font class="Normal">();</font></br></div>
<div id="89" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count--;</font></br></div>
<div id="90" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="BuiltIn">System</font><font class="Normal">.</font><font class="Function">out</font><font class="Normal">.</font><font class="Function">println</font><font class="Normal">(prefix&nbsp;+&nbsp;</font><font class="String">&quot;Received&nbsp;synchronize&nbsp;message;&nbsp;&quot;</font><font class="Normal">&nbsp;+</font></br></div>
<div id="91" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="String">&quot;&nbsp;expect&nbsp;&quot;</font><font class="Normal">&nbsp;+&nbsp;count&nbsp;+&nbsp;</font><font class="String">&quot;&nbsp;more&quot;</font><font class="Normal">);</font></br></div>
<div id="92" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="93" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">catch</font><font class="Normal">&nbsp;(JMSException&nbsp;e)&nbsp;{</font></br></div>
<div id="94" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="BuiltIn">System</font><font class="Normal">.</font><font class="Function">err</font><font class="Normal">.</font><font class="Function">println</font><font class="Normal">(</font><font class="String">&quot;Exception&nbsp;occurred:&nbsp;&quot;</font><font class="Normal">&nbsp;+&nbsp;e.</font><font class="Function">toString</font><font class="Normal">());</font></br></div>
<div id="95" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">throw</font><font class="Normal">&nbsp;e;</font></br></div>
<div id="96" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">finally</font><font class="Normal">&nbsp;{</font></br></div>
<div id="97" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">if</font><font class="Normal">&nbsp;(connection&nbsp;!=&nbsp;</font><font class="Keyword">null</font><font class="Normal">)&nbsp;{</font></br></div>
<div id="98" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">try</font><font class="Normal">&nbsp;{</font></br></div>
<div id="99" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection.</font><font class="Function">close</font><font class="Normal">();</font></br></div>
<div id="100" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">catch</font><font class="Normal">&nbsp;(JMSException&nbsp;e)&nbsp;{</font></br></div>
<div id="101" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="102" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="103" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="104" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="105" class="line"></br></div>
<div id="106" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">/**</font></br></div>
<div id="107" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;Sends&nbsp;a&nbsp;message&nbsp;to&nbsp;controlQueue</font><font class="Documentation">.&nbsp;</font><font class="Normal">&nbsp;Called&nbsp;by&nbsp;a&nbsp;subscriber</font></br></div>
<div id="108" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;to&nbsp;notify&nbsp;a&nbsp;publisher&nbsp;that&nbsp;it&nbsp;is&nbsp;ready&nbsp;to&nbsp;receive</font></br></div>
<div id="109" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;messages</font><font class="Comment">.</font></br></div>
<div id="110" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;</font><font class="Keyword">&lt;p&gt;</font></br></div>
<div id="111" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;If&nbsp;controlQueue&nbsp;doesn</font><font class="Comment">'t</font><font class="Normal">&nbsp;exist</font><font class="Comment">,</font><font class="Normal">&nbsp;the&nbsp;method&nbsp;throws&nbsp;an</font></br></div>
<div id="112" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;exception</font><font class="Comment">.</font></br></div>
<div id="113" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font></br></div>
<div id="114" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;</font><font class="Char">@param&nbsp;</font><font class="Keyword">prefix&nbsp;</font><font class="Normal">&nbsp;&nbsp;&nbsp;prefix&nbsp;</font><font class="Comment">(</font><font class="Normal">publisher&nbsp;or&nbsp;subscriber</font><font class="Comment">)</font><font class="Normal">&nbsp;to&nbsp;be</font></br></div>
<div id="115" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayed</font></br></div>
<div id="116" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;</font><font class="Char">@param&nbsp;</font><font class="Keyword">controlQueue&nbsp;</font><font class="Normal">&nbsp;control&nbsp;queue</font></br></div>
<div id="117" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*/</font></br></div>
<div id="118" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">public</font><font class="Normal">&nbsp;</font><font class="DataType">static</font><font class="Normal">&nbsp;</font><font class="DataType">void</font><font class="Normal">&nbsp;</font><font class="Function">sendSynchronizeMessage</font><font class="Normal">(</font><font class="BuiltIn">String</font><font class="Normal">&nbsp;prefix,</font></br></div>
<div id="119" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConnectionFactory&nbsp;connectionFactory,&nbsp;</font><font class="BuiltIn">Queue</font><font class="Normal">&nbsp;controlQueue)</font></br></div>
<div id="120" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">throws</font><font class="Normal">&nbsp;</font><font class="BuiltIn">Exception</font><font class="Normal">&nbsp;{</font></br></div>
<div id="121" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="BuiltIn">Connection</font><font class="Normal">&nbsp;connection&nbsp;=&nbsp;</font><font class="Keyword">null</font><font class="Normal">;</font></br></div>
<div id="122" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;=&nbsp;</font><font class="Keyword">null</font><font class="Normal">;</font></br></div>
<div id="123" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageProducer&nbsp;producer&nbsp;=&nbsp;</font><font class="Keyword">null</font><font class="Normal">;</font></br></div>
<div id="124" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextMessage&nbsp;message&nbsp;=&nbsp;</font><font class="Keyword">null</font><font class="Normal">;</font></br></div>
<div id="125" class="line"></br></div>
<div id="126" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">try</font><font class="Normal">&nbsp;{</font></br></div>
<div id="127" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection&nbsp;=&nbsp;connectionFactory.</font><font class="Function">createConnection</font><font class="Normal">();</font></br></div>
<div id="128" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session&nbsp;=&nbsp;connection.</font><font class="Function">createSession</font><font class="Normal">(</font><font class="Keyword">false</font><font class="Normal">,&nbsp;Session.</font><font class="Function">AUTO_ACKNOWLEDGE</font><font class="Normal">);</font></br></div>
<div id="129" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">catch</font><font class="Normal">&nbsp;(</font><font class="BuiltIn">Exception</font><font class="Normal">&nbsp;e)&nbsp;{</font></br></div>
<div id="130" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="BuiltIn">System</font><font class="Normal">.</font><font class="Function">err</font><font class="Normal">.</font><font class="Function">println</font><font class="Normal">(</font><font class="String">&quot;sendSynchronizeMessage&nbsp;connection&nbsp;problem:&nbsp;&quot;</font><font class="Normal">&nbsp;+</font></br></div>
<div id="131" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.</font><font class="Function">toString</font><font class="Normal">());</font></br></div>
<div id="132" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.</font><font class="Function">printStackTrace</font><font class="Normal">();</font></br></div>
<div id="133" class="line"></br></div>
<div id="134" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">if</font><font class="Normal">&nbsp;(connection&nbsp;!=&nbsp;</font><font class="Keyword">null</font><font class="Normal">)&nbsp;{</font></br></div>
<div id="135" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">try</font><font class="Normal">&nbsp;{</font></br></div>
<div id="136" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection.</font><font class="Function">close</font><font class="Normal">();</font></br></div>
<div id="137" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">catch</font><font class="Normal">&nbsp;(JMSException&nbsp;ee)&nbsp;{</font></br></div>
<div id="138" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="139" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="140" class="line"></br></div>
<div id="141" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">throw</font><font class="Normal">&nbsp;e;</font></br></div>
<div id="142" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="143" class="line"></br></div>
<div id="144" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">try</font><font class="Normal">&nbsp;{</font></br></div>
<div id="145" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;producer&nbsp;=&nbsp;session.</font><font class="Function">createProducer</font><font class="Normal">(controlQueue);</font></br></div>
<div id="146" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;=&nbsp;session.</font><font class="Function">createTextMessage</font><font class="Normal">();</font></br></div>
<div id="147" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message.</font><font class="Function">setText</font><font class="Normal">(</font><font class="String">&quot;synchronize&quot;</font><font class="Normal">);</font></br></div>
<div id="148" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="BuiltIn">System</font><font class="Normal">.</font><font class="Function">out</font><font class="Normal">.</font><font class="Function">println</font><font class="Normal">(prefix&nbsp;+&nbsp;</font><font class="String">&quot;Sending&nbsp;synchronize&nbsp;message&nbsp;to&nbsp;&quot;</font><font class="Normal">&nbsp;+</font></br></div>
<div id="149" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="String">&quot;control&nbsp;queue&quot;</font><font class="Normal">);</font></br></div>
<div id="150" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;producer.</font><font class="Function">send</font><font class="Normal">(message);</font></br></div>
<div id="151" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">catch</font><font class="Normal">&nbsp;(JMSException&nbsp;e)&nbsp;{</font></br></div>
<div id="152" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="BuiltIn">System</font><font class="Normal">.</font><font class="Function">err</font><font class="Normal">.</font><font class="Function">println</font><font class="Normal">(</font><font class="String">&quot;Exception&nbsp;occurred:&nbsp;&quot;</font><font class="Normal">&nbsp;+&nbsp;e.</font><font class="Function">toString</font><font class="Normal">());</font></br></div>
<div id="153" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">throw</font><font class="Normal">&nbsp;e;</font></br></div>
<div id="154" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">finally</font><font class="Normal">&nbsp;{</font></br></div>
<div id="155" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">if</font><font class="Normal">&nbsp;(connection&nbsp;!=&nbsp;</font><font class="Keyword">null</font><font class="Normal">)&nbsp;{</font></br></div>
<div id="156" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">try</font><font class="Normal">&nbsp;{</font></br></div>
<div id="157" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection.</font><font class="Function">close</font><font class="Normal">();</font></br></div>
<div id="158" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">catch</font><font class="Normal">&nbsp;(JMSException&nbsp;e)&nbsp;{</font></br></div>
<div id="159" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="160" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="161" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="162" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="163" class="line"></br></div>
<div id="164" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">/**</font></br></div>
<div id="165" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;Monitor&nbsp;class&nbsp;for&nbsp;asynchronous&nbsp;examples</font><font class="Documentation">.&nbsp;</font><font class="Normal">&nbsp;Producer&nbsp;signals</font></br></div>
<div id="166" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;end&nbsp;of&nbsp;message&nbsp;stream</font><font class="Comment">;</font><font class="Normal">&nbsp;listener&nbsp;calls&nbsp;allDone</font><font class="Comment">()</font><font class="Normal">&nbsp;to&nbsp;notify</font></br></div>
<div id="167" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;consumer&nbsp;that&nbsp;the&nbsp;signal&nbsp;has&nbsp;arrived</font><font class="Comment">,</font><font class="Normal">&nbsp;while&nbsp;consumer&nbsp;calls</font></br></div>
<div id="168" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;waitTillDone</font><font class="Comment">()</font><font class="Normal">&nbsp;to&nbsp;wait&nbsp;for&nbsp;this&nbsp;notification</font><font class="Comment">.</font></br></div>
<div id="169" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*/</font></br></div>
<div id="170" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="DataType">static</font><font class="Normal">&nbsp;</font><font class="Keyword">public</font><font class="Normal">&nbsp;</font><font class="Keyword">class</font><font class="Normal">&nbsp;DoneLatch&nbsp;{</font></br></div>
<div id="171" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="DataType">boolean</font><font class="Normal">&nbsp;done&nbsp;=&nbsp;</font><font class="Keyword">false</font><font class="Normal">;</font></br></div>
<div id="172" class="line"></br></div>
<div id="173" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">/**</font></br></div>
<div id="174" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;Waits&nbsp;until&nbsp;done&nbsp;is&nbsp;set&nbsp;to&nbsp;true</font><font class="Documentation">.</font></br></div>
<div id="175" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*/</font></br></div>
<div id="176" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">public</font><font class="Normal">&nbsp;</font><font class="DataType">void</font><font class="Normal">&nbsp;</font><font class="Function">waitTillDone</font><font class="Normal">()&nbsp;{</font></br></div>
<div id="177" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">synchronized</font><font class="Normal">&nbsp;(</font><font class="Keyword">this</font><font class="Normal">)&nbsp;{</font></br></div>
<div id="178" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">while</font><font class="Normal">&nbsp;(!done)&nbsp;{</font></br></div>
<div id="179" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">try</font><font class="Normal">&nbsp;{</font></br></div>
<div id="180" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">this</font><font class="Normal">.</font><font class="Function">wait</font><font class="Normal">();</font></br></div>
<div id="181" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><font class="Keyword">catch</font><font class="Normal">&nbsp;(</font><font class="BuiltIn">InterruptedException</font><font class="Normal">&nbsp;ie)&nbsp;{</font></br></div>
<div id="182" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="183" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="184" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="185" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="186" class="line"></br></div>
<div id="187" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">/**</font></br></div>
<div id="188" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*</font><font class="Normal">&nbsp;Sets&nbsp;done&nbsp;to&nbsp;true</font><font class="Documentation">.</font></br></div>
<div id="189" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Documentation">*/</font></br></div>
<div id="190" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">public</font><font class="Normal">&nbsp;</font><font class="DataType">void</font><font class="Normal">&nbsp;</font><font class="Function">allDone</font><font class="Normal">()&nbsp;{</font></br></div>
<div id="191" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">synchronized</font><font class="Normal">&nbsp;(</font><font class="Keyword">this</font><font class="Normal">)&nbsp;{</font></br></div>
<div id="192" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done&nbsp;=&nbsp;</font><font class="Keyword">true</font><font class="Normal">;</font></br></div>
<div id="193" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font class="Keyword">this</font><font class="Normal">.</font><font class="Function">notify</font><font class="Normal">();</font></br></div>
<div id="194" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="195" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="196" class="line"><font class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;}</font></br></div>
<div id="197" class="line"><font class="Normal">}</font></br></div>
</div>
</body>
</html>