<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>AsyncAppenderTestCase xref</title>
<link type="text/css" rel="stylesheet" href="../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * </em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * </em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  
<a name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Vector;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEvent;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment">/**</em>
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">   A superficial but general test of log4j.</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> */</em>
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">AsyncAppenderTestCase</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>    <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">AsyncAppenderTestCase</a>(String name) {
<a name="32" href="#32">32</a>      <strong class="jxr_keyword">super</strong>(name);
<a name="33" href="#33">33</a>    }
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp() {
<a name="36" href="#36">36</a>    }
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> tearDown() {
<a name="39" href="#39">39</a>      LogManager.shutdown();
<a name="40" href="#40">40</a>    }
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>    <em class="jxr_comment">// this test checks whether it is possible to write to a closed AsyncAppender</em>
<a name="43" href="#43">43</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> closeTest() <strong class="jxr_keyword">throws</strong> Exception {    
<a name="44" href="#44">44</a>      Logger root = Logger.getRootLogger();
<a name="45" href="#45">45</a>      <a href="../../../org/apache/log4j/VectorAppender.html">VectorAppender</a> vectorAppender = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/VectorAppender.html">VectorAppender</a>();
<a name="46" href="#46">46</a>      AsyncAppender asyncAppender = <strong class="jxr_keyword">new</strong> AsyncAppender();
<a name="47" href="#47">47</a>      asyncAppender.setName(<span class="jxr_string">"async-CloseTest"</span>);
<a name="48" href="#48">48</a>      asyncAppender.addAppender(vectorAppender);
<a name="49" href="#49">49</a>      root.addAppender(asyncAppender); 
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      root.debug(<span class="jxr_string">"m1"</span>);
<a name="52" href="#52">52</a>      asyncAppender.close();
<a name="53" href="#53">53</a>      root.debug(<span class="jxr_string">"m2"</span>);
<a name="54" href="#54">54</a>      
<a name="55" href="#55">55</a>      Vector v = vectorAppender.getVector();
<a name="56" href="#56">56</a>      assertEquals(v.size(), 1);
<a name="57" href="#57">57</a>    }
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>    <em class="jxr_comment">// this test checks whether appenders embedded within an AsyncAppender are also </em>
<a name="60" href="#60">60</a>    <em class="jxr_comment">// closed </em>
<a name="61" href="#61">61</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> test2() {
<a name="62" href="#62">62</a>      Logger root = Logger.getRootLogger();
<a name="63" href="#63">63</a>      <a href="../../../org/apache/log4j/VectorAppender.html">VectorAppender</a> vectorAppender = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/VectorAppender.html">VectorAppender</a>();
<a name="64" href="#64">64</a>      AsyncAppender asyncAppender = <strong class="jxr_keyword">new</strong> AsyncAppender();
<a name="65" href="#65">65</a>      asyncAppender.setName(<span class="jxr_string">"async-test2"</span>);
<a name="66" href="#66">66</a>      asyncAppender.addAppender(vectorAppender);
<a name="67" href="#67">67</a>      root.addAppender(asyncAppender); 
<a name="68" href="#68">68</a>  
<a name="69" href="#69">69</a>      root.debug(<span class="jxr_string">"m1"</span>);
<a name="70" href="#70">70</a>      asyncAppender.close();
<a name="71" href="#71">71</a>      root.debug(<span class="jxr_string">"m2"</span>);
<a name="72" href="#72">72</a>      
<a name="73" href="#73">73</a>      Vector v = vectorAppender.getVector();
<a name="74" href="#74">74</a>      assertEquals(v.size(), 1);
<a name="75" href="#75">75</a>      assertTrue(vectorAppender.isClosed());
<a name="76" href="#76">76</a>    }
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>    <em class="jxr_comment">// this test checks whether appenders embedded within an AsyncAppender are also </em>
<a name="79" href="#79">79</a>    <em class="jxr_comment">// closed </em>
<a name="80" href="#80">80</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> test3() {
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">int</strong> LEN = 200;
<a name="82" href="#82">82</a>      Logger root = Logger.getRootLogger();
<a name="83" href="#83">83</a>      <a href="../../../org/apache/log4j/VectorAppender.html">VectorAppender</a> vectorAppender = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/VectorAppender.html">VectorAppender</a>();
<a name="84" href="#84">84</a>      AsyncAppender asyncAppender = <strong class="jxr_keyword">new</strong> AsyncAppender();
<a name="85" href="#85">85</a>      asyncAppender.setName(<span class="jxr_string">"async-test3"</span>);
<a name="86" href="#86">86</a>      asyncAppender.addAppender(vectorAppender);
<a name="87" href="#87">87</a>      root.addAppender(asyncAppender); 
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>      <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 0; i &lt; LEN; i++) {
<a name="90" href="#90">90</a>        root.debug(<span class="jxr_string">"message"</span>+i);
<a name="91" href="#91">91</a>      }
<a name="92" href="#92">92</a>      
<a name="93" href="#93">93</a>      System.out.println(<span class="jxr_string">"Done loop."</span>);
<a name="94" href="#94">94</a>      System.out.flush();
<a name="95" href="#95">95</a>      asyncAppender.close();
<a name="96" href="#96">96</a>      root.debug(<span class="jxr_string">"m2"</span>);
<a name="97" href="#97">97</a>      
<a name="98" href="#98">98</a>      Vector v = vectorAppender.getVector();
<a name="99" href="#99">99</a>      assertEquals(v.size(), LEN);
<a name="100" href="#100">100</a>     assertTrue(vectorAppender.isClosed());
<a name="101" href="#101">101</a>   }
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">NullPointerAppender</a> <strong class="jxr_keyword">extends</strong> AppenderSkeleton {
<a name="104" href="#104">104</a>           <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">NullPointerAppender</a>() {
<a name="105" href="#105">105</a>           }
<a name="106" href="#106">106</a> 
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>           <em class="jxr_javadoccomment">/**</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">             This method is called by the {@link org.apache.log4j.AppenderSkeleton#doAppend}</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">             method.</em>
<a name="111" href="#111">111</a> 
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">          */</em>
<a name="113" href="#113">113</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> append(org.apache.log4j.spi.LoggingEvent event) {
<a name="114" href="#114">114</a>               <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException();
<a name="115" href="#115">115</a>           }
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() {
<a name="118" href="#118">118</a>           }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>           <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> requiresLayout() {
<a name="121" href="#121">121</a>             <strong class="jxr_keyword">return</strong> false;
<a name="122" href="#122">122</a>           }
<a name="123" href="#123">123</a>     }
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>     <em class="jxr_javadoccomment">/**</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * Tests that a bad appender will switch async back to sync.</em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * See bug 23021</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @since 1.2.12</em>
<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * @throws Exception thrown if Thread.sleep is interrupted</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     */</em>
<a name="132" href="#132">132</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBadAppender() <strong class="jxr_keyword">throws</strong> Exception {
<a name="133" href="#133">133</a>         Appender nullPointerAppender = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">NullPointerAppender</a>();
<a name="134" href="#134">134</a>         AsyncAppender asyncAppender = <strong class="jxr_keyword">new</strong> AsyncAppender();
<a name="135" href="#135">135</a>         asyncAppender.addAppender(nullPointerAppender);
<a name="136" href="#136">136</a>         asyncAppender.setBufferSize(5);
<a name="137" href="#137">137</a>         asyncAppender.activateOptions();
<a name="138" href="#138">138</a>         Logger root = Logger.getRootLogger();
<a name="139" href="#139">139</a>         root.addAppender(nullPointerAppender);
<a name="140" href="#140">140</a>         <strong class="jxr_keyword">try</strong> {
<a name="141" href="#141">141</a>            root.info(<span class="jxr_string">"Message"</span>);
<a name="142" href="#142">142</a>            Thread.sleep(10);
<a name="143" href="#143">143</a>            root.info(<span class="jxr_string">"Message"</span>);
<a name="144" href="#144">144</a>            fail(<span class="jxr_string">"Should have thrown exception"</span>);
<a name="145" href="#145">145</a>         } <strong class="jxr_keyword">catch</strong>(NullPointerException ex) {
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>         }
<a name="148" href="#148">148</a>     }
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>     <em class="jxr_javadoccomment">/**</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * Tests location processing when buffer is full and locationInfo=true.</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * See bug 41186.</em>
<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLocationInfoTrue() {
<a name="155" href="#155">155</a>         <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">BlockableVectorAppender</a> blockableAppender = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">BlockableVectorAppender</a>();
<a name="156" href="#156">156</a>         AsyncAppender async = <strong class="jxr_keyword">new</strong> AsyncAppender();
<a name="157" href="#157">157</a>         async.addAppender(blockableAppender);
<a name="158" href="#158">158</a>         async.setBufferSize(5);
<a name="159" href="#159">159</a>         async.setLocationInfo(<strong class="jxr_keyword">true</strong>);
<a name="160" href="#160">160</a>         async.setBlocking(false);
<a name="161" href="#161">161</a>         async.activateOptions();
<a name="162" href="#162">162</a>         Logger rootLogger = Logger.getRootLogger();
<a name="163" href="#163">163</a>         rootLogger.addAppender(async);
<a name="164" href="#164">164</a>         <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">Greeter</a> greeter = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">Greeter</a>(rootLogger, 100);
<a name="165" href="#165">165</a>         <strong class="jxr_keyword">synchronized</strong>(blockableAppender.getMonitor()) {
<a name="166" href="#166">166</a>             greeter.run();
<a name="167" href="#167">167</a>             rootLogger.error(<span class="jxr_string">"That's all folks."</span>);
<a name="168" href="#168">168</a>         }
<a name="169" href="#169">169</a>         async.close();
<a name="170" href="#170">170</a>         Vector events = blockableAppender.getVector();
<a name="171" href="#171">171</a>         LoggingEvent initialEvent = (LoggingEvent) events.get(0);
<a name="172" href="#172">172</a>         LoggingEvent discardEvent = (LoggingEvent) events.get(events.size() - 1);
<a name="173" href="#173">173</a>         PatternLayout layout = <strong class="jxr_keyword">new</strong> PatternLayout();
<a name="174" href="#174">174</a>         layout.setConversionPattern(<span class="jxr_string">"%C:%L %m%n"</span>);
<a name="175" href="#175">175</a>         layout.activateOptions();
<a name="176" href="#176">176</a>         String initialStr = layout.format(initialEvent);
<a name="177" href="#177">177</a>         assertEquals(AsyncAppenderTestCase.<strong class="jxr_keyword">class</strong>.getName(),
<a name="178" href="#178">178</a>                 initialStr.substring(0, AsyncAppenderTestCase.<strong class="jxr_keyword">class</strong>.getName().length()));
<a name="179" href="#179">179</a>         String discardStr = layout.format(discardEvent);
<a name="180" href="#180">180</a>         assertEquals(<span class="jxr_string">"?:? "</span>, discardStr.substring(0, 4));
<a name="181" href="#181">181</a>     }
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>     <em class="jxr_javadoccomment">/**</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * Tests location processing when buffer is full and locationInfo=false.</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * See bug 41186.</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     */</em>
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testLocationInfoFalse() {
<a name="189" href="#189">189</a>         <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">BlockableVectorAppender</a> blockableAppender = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">BlockableVectorAppender</a>();
<a name="190" href="#190">190</a>         AsyncAppender async = <strong class="jxr_keyword">new</strong> AsyncAppender();
<a name="191" href="#191">191</a>         async.addAppender(blockableAppender);
<a name="192" href="#192">192</a>         async.setBufferSize(5);
<a name="193" href="#193">193</a>         async.setLocationInfo(false);
<a name="194" href="#194">194</a>         async.setBlocking(false);
<a name="195" href="#195">195</a>         async.activateOptions();
<a name="196" href="#196">196</a>         Logger rootLogger = Logger.getRootLogger();
<a name="197" href="#197">197</a>         rootLogger.addAppender(async);
<a name="198" href="#198">198</a>         <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">Greeter</a> greeter = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">Greeter</a>(rootLogger, 100);
<a name="199" href="#199">199</a>         <strong class="jxr_keyword">synchronized</strong>(blockableAppender.getMonitor()) {
<a name="200" href="#200">200</a>             greeter.run();
<a name="201" href="#201">201</a>             rootLogger.error(<span class="jxr_string">"That's all folks."</span>);
<a name="202" href="#202">202</a>         }
<a name="203" href="#203">203</a>         async.close();
<a name="204" href="#204">204</a>         Vector events = blockableAppender.getVector();
<a name="205" href="#205">205</a>         LoggingEvent initialEvent = (LoggingEvent) events.get(0);
<a name="206" href="#206">206</a>         LoggingEvent discardEvent = (LoggingEvent) events.get(events.size() - 1);
<a name="207" href="#207">207</a>         PatternLayout layout = <strong class="jxr_keyword">new</strong> PatternLayout();
<a name="208" href="#208">208</a>         layout.setConversionPattern(<span class="jxr_string">"%C:%L %m%n"</span>);
<a name="209" href="#209">209</a>         layout.activateOptions();
<a name="210" href="#210">210</a>         String initialStr = layout.format(initialEvent);
<a name="211" href="#211">211</a>         assertEquals(<span class="jxr_string">"?:? "</span>, initialStr.substring(0, 4));
<a name="212" href="#212">212</a>         String discardStr = layout.format(discardEvent);
<a name="213" href="#213">213</a>         assertEquals(<span class="jxr_string">"?:? "</span>, discardStr.substring(0, 4));
<a name="214" href="#214">214</a>     }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>     <em class="jxr_javadoccomment">/**</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     *  Logging request runnable.</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     */</em>
<a name="219" href="#219">219</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">Greeter</a> implements Runnable {
<a name="220" href="#220">220</a>       <em class="jxr_javadoccomment">/**</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">       * Logger.</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">       */</em>
<a name="223" href="#223">223</a>       <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Logger logger;
<a name="224" href="#224">224</a> 
<a name="225" href="#225">225</a>       <em class="jxr_javadoccomment">/**</em>
<a name="226" href="#226">226</a> <em class="jxr_javadoccomment">       * Repetitions.</em>
<a name="227" href="#227">227</a> <em class="jxr_javadoccomment">       */</em>
<a name="228" href="#228">228</a>       <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> repetitions;
<a name="229" href="#229">229</a> 
<a name="230" href="#230">230</a>       <em class="jxr_javadoccomment">/**</em>
<a name="231" href="#231">231</a> <em class="jxr_javadoccomment">       * Create new instance.</em>
<a name="232" href="#232">232</a> <em class="jxr_javadoccomment">       * @param logger logger, may not be null.</em>
<a name="233" href="#233">233</a> <em class="jxr_javadoccomment">       * @param repetitions repetitions.</em>
<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">       */</em>
<a name="235" href="#235">235</a>       <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">Greeter</a>(<strong class="jxr_keyword">final</strong> Logger logger, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> repetitions) {
<a name="236" href="#236">236</a>         <strong class="jxr_keyword">if</strong> (logger == <strong class="jxr_keyword">null</strong>) {
<a name="237" href="#237">237</a>           <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"logger"</span>);
<a name="238" href="#238">238</a>         }
<a name="239" href="#239">239</a> 
<a name="240" href="#240">240</a>         <strong class="jxr_keyword">this</strong>.logger = logger;
<a name="241" href="#241">241</a>         <strong class="jxr_keyword">this</strong>.repetitions = repetitions;
<a name="242" href="#242">242</a>       }
<a name="243" href="#243">243</a> 
<a name="244" href="#244">244</a>       <em class="jxr_javadoccomment">/**</em>
<a name="245" href="#245">245</a> <em class="jxr_javadoccomment">       * {@inheritDoc}</em>
<a name="246" href="#246">246</a> <em class="jxr_javadoccomment">       */</em>
<a name="247" href="#247">247</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a name="248" href="#248">248</a>         <strong class="jxr_keyword">try</strong> {
<a name="249" href="#249">249</a>           <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; repetitions; i++) {
<a name="250" href="#250">250</a>             logger.info(<span class="jxr_string">"Hello, World"</span>);
<a name="251" href="#251">251</a>             Thread.sleep(1);
<a name="252" href="#252">252</a>           }
<a name="253" href="#253">253</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException ex) {
<a name="254" href="#254">254</a>           Thread.currentThread().interrupt();
<a name="255" href="#255">255</a>         }
<a name="256" href="#256">256</a>       }
<a name="257" href="#257">257</a>     }
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a> 
<a name="260" href="#260">260</a> 
<a name="261" href="#261">261</a>     <em class="jxr_javadoccomment">/**</em>
<a name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * Vector appender that can be explicitly blocked.</em>
<a name="263" href="#263">263</a> <em class="jxr_javadoccomment">     */</em>
<a name="264" href="#264">264</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">BlockableVectorAppender</a> <strong class="jxr_keyword">extends</strong> <a href="../../../org/apache/log4j/VectorAppender.html">VectorAppender</a> {
<a name="265" href="#265">265</a>       <em class="jxr_javadoccomment">/**</em>
<a name="266" href="#266">266</a> <em class="jxr_javadoccomment">       * Monitor object used to block appender.</em>
<a name="267" href="#267">267</a> <em class="jxr_javadoccomment">       */</em>
<a name="268" href="#268">268</a>       <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Object monitor = <strong class="jxr_keyword">new</strong> Object();
<a name="269" href="#269">269</a> 
<a name="270" href="#270">270</a> 
<a name="271" href="#271">271</a>       <em class="jxr_javadoccomment">/**</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">       * Create new instance.</em>
<a name="273" href="#273">273</a> <em class="jxr_javadoccomment">       */</em>
<a name="274" href="#274">274</a>       <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">BlockableVectorAppender</a>() {
<a name="275" href="#275">275</a>         <strong class="jxr_keyword">super</strong>();
<a name="276" href="#276">276</a>       }
<a name="277" href="#277">277</a> 
<a name="278" href="#278">278</a>       <em class="jxr_javadoccomment">/**</em>
<a name="279" href="#279">279</a> <em class="jxr_javadoccomment">       * {@inheritDoc}</em>
<a name="280" href="#280">280</a> <em class="jxr_javadoccomment">       */</em>
<a name="281" href="#281">281</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> append(<strong class="jxr_keyword">final</strong> LoggingEvent event) {
<a name="282" href="#282">282</a>         <strong class="jxr_keyword">synchronized</strong> (monitor) {
<a name="283" href="#283">283</a>           <strong class="jxr_keyword">super</strong>.append(event);
<a name="284" href="#284">284</a>             <em class="jxr_comment">//</em>
<a name="285" href="#285">285</a>             <em class="jxr_comment">//   if fatal, echo messages for testLoggingInDispatcher</em>
<a name="286" href="#286">286</a>             <em class="jxr_comment">//</em>
<a name="287" href="#287">287</a>             <strong class="jxr_keyword">if</strong> (event.getLevel() == Level.FATAL) {
<a name="288" href="#288">288</a>                 Logger logger = Logger.getLogger(event.getLoggerName());
<a name="289" href="#289">289</a>                 logger.error(event.getMessage().toString());
<a name="290" href="#290">290</a>                 logger.warn(event.getMessage().toString());
<a name="291" href="#291">291</a>                 logger.info(event.getMessage().toString());
<a name="292" href="#292">292</a>                 logger.debug(event.getMessage().toString());
<a name="293" href="#293">293</a>             }
<a name="294" href="#294">294</a>         }
<a name="295" href="#295">295</a>       }
<a name="296" href="#296">296</a> 
<a name="297" href="#297">297</a>       <em class="jxr_javadoccomment">/**</em>
<a name="298" href="#298">298</a> <em class="jxr_javadoccomment">       * Get monitor object.</em>
<a name="299" href="#299">299</a> <em class="jxr_javadoccomment">       * @return monitor.</em>
<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">       */</em>
<a name="301" href="#301">301</a>       <strong class="jxr_keyword">public</strong> Object getMonitor() {
<a name="302" href="#302">302</a>         <strong class="jxr_keyword">return</strong> monitor;
<a name="303" href="#303">303</a>       }
<a name="304" href="#304">304</a> 
<a name="305" href="#305">305</a>     }
<a name="306" href="#306">306</a> 
<a name="307" href="#307">307</a> 
<a name="308" href="#308">308</a>     <em class="jxr_javadoccomment">/**</em>
<a name="309" href="#309">309</a> <em class="jxr_javadoccomment">     * Test that a mutable message object is evaluated before</em>
<a name="310" href="#310">310</a> <em class="jxr_javadoccomment">     * being placed in the async queue.</em>
<a name="311" href="#311">311</a> <em class="jxr_javadoccomment">     * See bug 43559.</em>
<a name="312" href="#312">312</a> <em class="jxr_javadoccomment">     */</em>
<a name="313" href="#313">313</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMutableMessage() {
<a name="314" href="#314">314</a>         <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">BlockableVectorAppender</a> blockableAppender = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/AsyncAppenderTestCase.html">BlockableVectorAppender</a>();
<a name="315" href="#315">315</a>         AsyncAppender async = <strong class="jxr_keyword">new</strong> AsyncAppender();
<a name="316" href="#316">316</a>         async.addAppender(blockableAppender);
<a name="317" href="#317">317</a>         async.setBufferSize(5);
<a name="318" href="#318">318</a>         async.setLocationInfo(false);
<a name="319" href="#319">319</a>         async.activateOptions();
<a name="320" href="#320">320</a>         Logger rootLogger = Logger.getRootLogger();
<a name="321" href="#321">321</a>         rootLogger.addAppender(async);
<a name="322" href="#322">322</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer(<span class="jxr_string">"Hello"</span>);
<a name="323" href="#323">323</a>         <strong class="jxr_keyword">synchronized</strong>(blockableAppender.getMonitor()) {
<a name="324" href="#324">324</a>             rootLogger.info(buf);
<a name="325" href="#325">325</a>             buf.append(<span class="jxr_string">", World."</span>);
<a name="326" href="#326">326</a>         }
<a name="327" href="#327">327</a>         async.close();
<a name="328" href="#328">328</a>         Vector events = blockableAppender.getVector();
<a name="329" href="#329">329</a>         LoggingEvent event = (LoggingEvent) events.get(0);
<a name="330" href="#330">330</a>         PatternLayout layout = <strong class="jxr_keyword">new</strong> PatternLayout();
<a name="331" href="#331">331</a>         layout.setConversionPattern(<span class="jxr_string">"%m"</span>);
<a name="332" href="#332">332</a>         layout.activateOptions();
<a name="333" href="#333">333</a>         String msg = layout.format(event);
<a name="334" href="#334">334</a>         assertEquals(<span class="jxr_string">"Hello"</span>, msg);
<a name="335" href="#335">335</a>     }
<a name="336" href="#336">336</a> 
<a name="337" href="#337">337</a> 
<a name="338" href="#338">338</a> 
<a name="339" href="#339">339</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

