<!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>LayoutDynamicMBean xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/jmx/LayoutDynamicMBean.html">View Javadoc</a></div><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.jmx;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Constructor;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Logger;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Level;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Layout;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.OptionConverter;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.OptionHandler;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Vector;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Hashtable;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.InvocationTargetException;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanAttributeInfo;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanConstructorInfo;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanNotificationInfo;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanInfo;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> javax.management.Attribute;
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanException;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> javax.management.AttributeNotFoundException;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.management.RuntimeOperationsException;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.management.ReflectionException;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.management.InvalidAttributeValueException;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanOperationInfo;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanParameterInfo;
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> java.beans.Introspector;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> java.beans.BeanInfo;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> java.beans.PropertyDescriptor;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> java.beans.IntrospectionException;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> java.io.InterruptedIOException;
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/jmx/LayoutDynamicMBean.html">LayoutDynamicMBean</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/log4j/jmx/AbstractDynamicMBean.html">AbstractDynamicMBean</a> {
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>    <strong class="jxr_keyword">private</strong> MBeanConstructorInfo[] dConstructors = <strong class="jxr_keyword">new</strong> MBeanConstructorInfo[1];
<a name="54" href="#54">54</a>    <strong class="jxr_keyword">private</strong> Vector dAttributes = <strong class="jxr_keyword">new</strong> Vector();
<a name="55" href="#55">55</a>    <strong class="jxr_keyword">private</strong> String dClassName = <strong class="jxr_keyword">this</strong>.getClass().getName();
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>    <strong class="jxr_keyword">private</strong> Hashtable dynamicProps = <strong class="jxr_keyword">new</strong> Hashtable(5);
<a name="58" href="#58">58</a>    <strong class="jxr_keyword">private</strong> MBeanOperationInfo[] dOperations = <strong class="jxr_keyword">new</strong> MBeanOperationInfo[1];
<a name="59" href="#59">59</a>    <strong class="jxr_keyword">private</strong> String dDescription =
<a name="60" href="#60">60</a>       <span class="jxr_string">"This MBean acts as a management facade for log4j layouts."</span>;
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>    <em class="jxr_comment">// This category instance is for logging.</em>
<a name="63" href="#63">63</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/log4j/Logger.html">Logger</a> cat = Logger.getLogger(LayoutDynamicMBean.<strong class="jxr_keyword">class</strong>);
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>    <em class="jxr_comment">// We wrap this layout instance.</em>
<a name="66" href="#66">66</a>    <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/Layout.html">Layout</a> layout;
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>    <strong class="jxr_keyword">public</strong>  LayoutDynamicMBean(Layout layout) <strong class="jxr_keyword">throws</strong> IntrospectionException {
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">this</strong>.layout = layout;
<a name="70" href="#70">70</a>      buildDynamicMBeanInfo();
<a name="71" href="#71">71</a>    }
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>    <strong class="jxr_keyword">private</strong>
<a name="74" href="#74">74</a>    <strong class="jxr_keyword">void</strong> buildDynamicMBeanInfo() <strong class="jxr_keyword">throws</strong> IntrospectionException {
<a name="75" href="#75">75</a>      Constructor[] constructors = <strong class="jxr_keyword">this</strong>.getClass().getConstructors();
<a name="76" href="#76">76</a>      dConstructors[0] = <strong class="jxr_keyword">new</strong> MBeanConstructorInfo(
<a name="77" href="#77">77</a>               <span class="jxr_string">"LayoutDynamicMBean(): Constructs a LayoutDynamicMBean instance"</span>,
<a name="78" href="#78">78</a>  	     constructors[0]);
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>      BeanInfo bi = Introspector.getBeanInfo(layout.getClass());
<a name="82" href="#82">82</a>      PropertyDescriptor[] pd = bi.getPropertyDescriptors();
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>      <strong class="jxr_keyword">int</strong> size = pd.length;
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>      <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 0; i &lt; size; i++) {
<a name="87" href="#87">87</a>        String name = pd[i].getName();
<a name="88" href="#88">88</a>        Method readMethod =  pd[i].getReadMethod();
<a name="89" href="#89">89</a>        Method writeMethod =  pd[i].getWriteMethod();
<a name="90" href="#90">90</a>        <strong class="jxr_keyword">if</strong>(readMethod != <strong class="jxr_keyword">null</strong>) {
<a name="91" href="#91">91</a>  	Class returnClass = readMethod.getReturnType();
<a name="92" href="#92">92</a>  	<strong class="jxr_keyword">if</strong>(isSupportedType(returnClass)) {
<a name="93" href="#93">93</a>  	  String returnClassName;
<a name="94" href="#94">94</a>  	  <strong class="jxr_keyword">if</strong>(returnClass.isAssignableFrom(Level.<strong class="jxr_keyword">class</strong>)) {
<a name="95" href="#95">95</a>  	    returnClassName = <span class="jxr_string">"java.lang.String"</span>;
<a name="96" href="#96">96</a>  	  } <strong class="jxr_keyword">else</strong> {
<a name="97" href="#97">97</a>  	    returnClassName = returnClass.getName();
<a name="98" href="#98">98</a>  	  }
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a> 	  dAttributes.add(<strong class="jxr_keyword">new</strong> MBeanAttributeInfo(name,
<a name="101" href="#101">101</a> 						 returnClassName,
<a name="102" href="#102">102</a> 						 <span class="jxr_string">"Dynamic"</span>,
<a name="103" href="#103">103</a> 						 <strong class="jxr_keyword">true</strong>,
<a name="104" href="#104">104</a> 						 writeMethod != <strong class="jxr_keyword">null</strong>,
<a name="105" href="#105">105</a> 						 false));
<a name="106" href="#106">106</a> 	  dynamicProps.put(name, <strong class="jxr_keyword">new</strong> MethodUnion(readMethod, writeMethod));
<a name="107" href="#107">107</a> 	}
<a name="108" href="#108">108</a>       }
<a name="109" href="#109">109</a>     }
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>     MBeanParameterInfo[] params = <strong class="jxr_keyword">new</strong> MBeanParameterInfo[0];
<a name="112" href="#112">112</a> 
<a name="113" href="#113">113</a>     dOperations[0] = <strong class="jxr_keyword">new</strong> MBeanOperationInfo(<span class="jxr_string">"activateOptions"</span>,
<a name="114" href="#114">114</a> 					    <span class="jxr_string">"activateOptions(): add an layout"</span>,
<a name="115" href="#115">115</a> 					    params,
<a name="116" href="#116">116</a> 					    <span class="jxr_string">"void"</span>,
<a name="117" href="#117">117</a> 					    MBeanOperationInfo.ACTION);
<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">private</strong>
<a name="121" href="#121">121</a>   <strong class="jxr_keyword">boolean</strong> isSupportedType(Class clazz) {
<a name="122" href="#122">122</a>     <strong class="jxr_keyword">if</strong>(clazz.isPrimitive()) {
<a name="123" href="#123">123</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="124" href="#124">124</a>     }
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>     <strong class="jxr_keyword">if</strong>(clazz == String.<strong class="jxr_keyword">class</strong>) {
<a name="127" href="#127">127</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="128" href="#128">128</a>     }
<a name="129" href="#129">129</a>     <strong class="jxr_keyword">if</strong>(clazz.isAssignableFrom(Level.<strong class="jxr_keyword">class</strong>)) {
<a name="130" href="#130">130</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="131" href="#131">131</a>     }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>     <strong class="jxr_keyword">return</strong> false;
<a name="134" href="#134">134</a>   }
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a> 
<a name="138" href="#138">138</a>   <strong class="jxr_keyword">public</strong>
<a name="139" href="#139">139</a>   MBeanInfo getMBeanInfo() {
<a name="140" href="#140">140</a>     cat.debug(<span class="jxr_string">"getMBeanInfo called."</span>);
<a name="141" href="#141">141</a> 
<a name="142" href="#142">142</a>     MBeanAttributeInfo[] attribs = <strong class="jxr_keyword">new</strong> MBeanAttributeInfo[dAttributes.size()];
<a name="143" href="#143">143</a>     dAttributes.toArray(attribs);
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> MBeanInfo(dClassName,
<a name="146" href="#146">146</a> 			 dDescription,
<a name="147" href="#147">147</a> 			 attribs,
<a name="148" href="#148">148</a> 			 dConstructors,
<a name="149" href="#149">149</a> 			 dOperations,
<a name="150" href="#150">150</a> 			 <strong class="jxr_keyword">new</strong> MBeanNotificationInfo[0]);
<a name="151" href="#151">151</a>   }
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>   <strong class="jxr_keyword">public</strong>
<a name="154" href="#154">154</a>   Object invoke(String operationName, Object params[], String signature[])
<a name="155" href="#155">155</a>     <strong class="jxr_keyword">throws</strong> MBeanException,
<a name="156" href="#156">156</a>     ReflectionException {
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>     <strong class="jxr_keyword">if</strong>(operationName.equals(<span class="jxr_string">"activateOptions"</span>) &amp;&amp;
<a name="159" href="#159">159</a>                      layout instanceof <a href="../../../../org/apache/log4j/spi/OptionHandler.html">OptionHandler</a>) {
<a name="160" href="#160">160</a>       <a href="../../../../org/apache/log4j/spi/OptionHandler.html">OptionHandler</a> oh = (OptionHandler) layout;
<a name="161" href="#161">161</a>       oh.activateOptions();
<a name="162" href="#162">162</a>       <strong class="jxr_keyword">return</strong> <span class="jxr_string">"Options activated."</span>;
<a name="163" href="#163">163</a>     }
<a name="164" href="#164">164</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="165" href="#165">165</a>   }
<a name="166" href="#166">166</a> 
<a name="167" href="#167">167</a>   <strong class="jxr_keyword">protected</strong>
<a name="168" href="#168">168</a>   <a href="../../../../org/apache/log4j/Logger.html">Logger</a>  getLogger() {
<a name="169" href="#169">169</a>     <strong class="jxr_keyword">return</strong> cat;
<a name="170" href="#170">170</a>   }
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a>   <strong class="jxr_keyword">public</strong>
<a name="174" href="#174">174</a>   Object getAttribute(String attributeName) <strong class="jxr_keyword">throws</strong> AttributeNotFoundException,
<a name="175" href="#175">175</a>                                                    MBeanException,
<a name="176" href="#176">176</a>                                                    ReflectionException {
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>        <em class="jxr_comment">// Check attributeName is not null to avoid NullPointerException later on</em>
<a name="179" href="#179">179</a>     <strong class="jxr_keyword">if</strong> (attributeName == <strong class="jxr_keyword">null</strong>) {
<a name="180" href="#180">180</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(<strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="181" href="#181">181</a> 			<span class="jxr_string">"Attribute name cannot be null"</span>),
<a name="182" href="#182">182</a>        <span class="jxr_string">"Cannot invoke a getter of "</span> + dClassName + <span class="jxr_string">" with null attribute name"</span>);
<a name="183" href="#183">183</a>     }
<a name="184" href="#184">184</a> 
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>     <a href="../../../../org/apache/log4j/jmx/MethodUnion.html">MethodUnion</a> mu = (MethodUnion) dynamicProps.get(attributeName);
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>     cat.debug(<span class="jxr_string">"----name="</span>+attributeName+<span class="jxr_string">", mu="</span>+mu);
<a name="189" href="#189">189</a> 
<a name="190" href="#190">190</a>     <strong class="jxr_keyword">if</strong>(mu != <strong class="jxr_keyword">null</strong> &amp;&amp; mu.readMethod != <strong class="jxr_keyword">null</strong>) {
<a name="191" href="#191">191</a>       <strong class="jxr_keyword">try</strong> {
<a name="192" href="#192">192</a> 	<strong class="jxr_keyword">return</strong> mu.readMethod.invoke(layout, <strong class="jxr_keyword">null</strong>);
<a name="193" href="#193">193</a>       } <strong class="jxr_keyword">catch</strong>(InvocationTargetException e) {
<a name="194" href="#194">194</a>           <strong class="jxr_keyword">if</strong> (e.getTargetException() instanceof InterruptedException
<a name="195" href="#195">195</a>                   || e.getTargetException() instanceof InterruptedIOException) {
<a name="196" href="#196">196</a>               Thread.currentThread().interrupt();
<a name="197" href="#197">197</a>           }
<a name="198" href="#198">198</a> 	    <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="199" href="#199">199</a>       } <strong class="jxr_keyword">catch</strong>(IllegalAccessException e) {
<a name="200" href="#200">200</a> 	    <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="201" href="#201">201</a>       } <strong class="jxr_keyword">catch</strong>(RuntimeException e) {
<a name="202" href="#202">202</a> 	    <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="203" href="#203">203</a>       }
<a name="204" href="#204">204</a>     }
<a name="205" href="#205">205</a> 
<a name="206" href="#206">206</a> 
<a name="207" href="#207">207</a> 
<a name="208" href="#208">208</a>     <em class="jxr_comment">// If attributeName has not been recognized throw an AttributeNotFoundException</em>
<a name="209" href="#209">209</a>     <strong class="jxr_keyword">throw</strong>(<strong class="jxr_keyword">new</strong> AttributeNotFoundException(<span class="jxr_string">"Cannot find "</span> + attributeName +
<a name="210" href="#210">210</a> 					 <span class="jxr_string">" attribute in "</span> + dClassName));
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a>   }
<a name="213" href="#213">213</a> 
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>   <strong class="jxr_keyword">public</strong>
<a name="216" href="#216">216</a>   <strong class="jxr_keyword">void</strong> setAttribute(Attribute attribute) <strong class="jxr_keyword">throws</strong> AttributeNotFoundException,
<a name="217" href="#217">217</a>                                                 InvalidAttributeValueException,
<a name="218" href="#218">218</a>                                                 MBeanException,
<a name="219" href="#219">219</a>                                                 ReflectionException {
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>     <em class="jxr_comment">// Check attribute is not null to avoid NullPointerException later on</em>
<a name="222" href="#222">222</a>     <strong class="jxr_keyword">if</strong> (attribute == <strong class="jxr_keyword">null</strong>) {
<a name="223" href="#223">223</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(
<a name="224" href="#224">224</a>                   <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Attribute cannot be null"</span>),
<a name="225" href="#225">225</a> 		  <span class="jxr_string">"Cannot invoke a setter of "</span> + dClassName +
<a name="226" href="#226">226</a> 		  <span class="jxr_string">" with null attribute"</span>);
<a name="227" href="#227">227</a>     }
<a name="228" href="#228">228</a>     String name = attribute.getName();
<a name="229" href="#229">229</a>     Object value = attribute.getValue();
<a name="230" href="#230">230</a> 
<a name="231" href="#231">231</a>     <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a name="232" href="#232">232</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(
<a name="233" href="#233">233</a>                     <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Attribute name cannot be null"</span>),
<a name="234" href="#234">234</a> 		    <span class="jxr_string">"Cannot invoke the setter of "</span>+dClassName+
<a name="235" href="#235">235</a> 		    <span class="jxr_string">" with null attribute name"</span>);
<a name="236" href="#236">236</a>     }
<a name="237" href="#237">237</a> 
<a name="238" href="#238">238</a> 
<a name="239" href="#239">239</a> 
<a name="240" href="#240">240</a>     <a href="../../../../org/apache/log4j/jmx/MethodUnion.html">MethodUnion</a> mu = (MethodUnion) dynamicProps.get(name);
<a name="241" href="#241">241</a> 
<a name="242" href="#242">242</a>     <strong class="jxr_keyword">if</strong>(mu != <strong class="jxr_keyword">null</strong> &amp;&amp; mu.writeMethod != <strong class="jxr_keyword">null</strong>) {
<a name="243" href="#243">243</a>       Object[] o = <strong class="jxr_keyword">new</strong> Object[1];
<a name="244" href="#244">244</a> 
<a name="245" href="#245">245</a>       Class[] params = mu.writeMethod.getParameterTypes();
<a name="246" href="#246">246</a>       <strong class="jxr_keyword">if</strong>(params[0] == org.apache.log4j.Priority.<strong class="jxr_keyword">class</strong>) {
<a name="247" href="#247">247</a> 	value = OptionConverter.toLevel((String) value,
<a name="248" href="#248">248</a> 					(<a href="../../../../org/apache/log4j/Level.html">Level</a>) getAttribute(name));
<a name="249" href="#249">249</a>       }
<a name="250" href="#250">250</a>       o[0] = value;
<a name="251" href="#251">251</a> 
<a name="252" href="#252">252</a>       <strong class="jxr_keyword">try</strong> {
<a name="253" href="#253">253</a> 	mu.writeMethod.invoke(layout,  o);
<a name="254" href="#254">254</a> 
<a name="255" href="#255">255</a>       } <strong class="jxr_keyword">catch</strong>(InvocationTargetException e) {
<a name="256" href="#256">256</a>           <strong class="jxr_keyword">if</strong> (e.getTargetException() instanceof InterruptedException
<a name="257" href="#257">257</a>                   || e.getTargetException() instanceof InterruptedIOException) {
<a name="258" href="#258">258</a>               Thread.currentThread().interrupt();
<a name="259" href="#259">259</a>           }
<a name="260" href="#260">260</a> 	    cat.error(<span class="jxr_string">"FIXME"</span>, e);
<a name="261" href="#261">261</a>       } <strong class="jxr_keyword">catch</strong>(IllegalAccessException e) {
<a name="262" href="#262">262</a> 	    cat.error(<span class="jxr_string">"FIXME"</span>, e);
<a name="263" href="#263">263</a>       } <strong class="jxr_keyword">catch</strong>(RuntimeException e) {
<a name="264" href="#264">264</a> 	    cat.error(<span class="jxr_string">"FIXME"</span>, e);
<a name="265" href="#265">265</a>       }
<a name="266" href="#266">266</a>     } <strong class="jxr_keyword">else</strong> {
<a name="267" href="#267">267</a>       <strong class="jxr_keyword">throw</strong>(<strong class="jxr_keyword">new</strong> AttributeNotFoundException(<span class="jxr_string">"Attribute "</span> + name +
<a name="268" href="#268">268</a> 					   <span class="jxr_string">" not found in "</span> +
<a name="269" href="#269">269</a> 					   <strong class="jxr_keyword">this</strong>.getClass().getName()));
<a name="270" href="#270">270</a>     }
<a name="271" href="#271">271</a>   }
<a name="272" href="#272">272</a> }
<a name="273" href="#273">273</a> 
<a name="274" href="#274">274</a> 
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

