<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-292</id>
	<title>Nabble - Apache Commons</title>
	<updated>2009-12-01T12:27:41Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/Apache-Commons-f292.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Apache-Commons-f292.html" />
	<subtitle type="html">The Commons is a Jakarta subproject focused on all aspects of reusable Java components. Jakarta Commons home is &lt;a href=&quot;http://jakarta.apache.org/commons/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26598528</id>
	<title>svn commit: r885913 - in /commons/proper/lang/trunk/src: java/org/apache/commons/lang/Validate.java test/org/apache/commons/lang/ValidateTest.java</title>
	<published>2009-12-01T12:27:41Z</published>
	<updated>2009-12-01T12:27:41Z</updated>
	<author>
		<name>niallp</name>
	</author>
	<content type="html">Author: niallp
&lt;br&gt;Date: Tue Dec &amp;nbsp;1 20:27:40 2009
&lt;br&gt;New Revision: 885913
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885913&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885913&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;LANG-508 Fix tests broken by r885195
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java?rev=885913&amp;r1=885912&amp;r2=885913&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java?rev=885913&amp;r1=885912&amp;r2=885913&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java (original)
&lt;br&gt;+++ commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java Tue Dec &amp;nbsp;1 20:27:40 2009
&lt;br&gt;@@ -58,7 +58,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final String DEFAULT_NOT_EMPTY_COLLECTION_EXCEPTION_MESSAGE = &amp;quot;The validated collection is empty&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final String DEFAULT_NOT_EMPTY_MAP_EXCEPTION_MESSAGE = &amp;quot;The validated map is empty&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final String DEFAULT_VALID_INDEX_ARRAY_EXCEPTION_MESSAGE = &amp;quot;The validated array index is invalid: %d&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static final String DEFAULT_VALID_INDEX_CHAR_SEQUENCE_EXCEPTION_MESSAGE = &amp;quot;The validated character sequence is invalid: %d&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_VALID_INDEX_CHAR_SEQUENCE_EXCEPTION_MESSAGE = &amp;quot;The validated character sequence index is invalid: %d&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final String DEFAULT_VALID_INDEX_COLLECTION_EXCEPTION_MESSAGE = &amp;quot;The validated collection index is invalid: %d&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&lt;br&gt;Modified: commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java?rev=885913&amp;r1=885912&amp;r2=885913&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java?rev=885913&amp;r1=885912&amp;r2=885913&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java (original)
&lt;br&gt;+++ commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java Tue Dec &amp;nbsp;1 20:27:40 2009
&lt;br&gt;@@ -93,7 +93,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.isTrue(false, &amp;quot;MSG&amp;quot;, new Integer(6));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG6&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -104,7 +104,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.isTrue(false, &amp;quot;MSG&amp;quot;, 7);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG7&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -115,7 +115,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.isTrue(false, &amp;quot;MSG&amp;quot;, 7.4d);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG7.4&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -125,8 +125,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(new Object());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated object is null&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -140,8 +140,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(new Object(), &amp;quot;MSG&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(null, &amp;quot;MSG&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -156,8 +156,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty(new Object[] {null});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty((Object[]) null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated array is empty&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;@@ -177,8 +177,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty(new Object[] {null}, &amp;quot;MSG&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty((Object[]) null, &amp;quot;MSG&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;@@ -199,8 +199,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Collection&amp;lt;Integer&amp;gt; coll = new ArrayList&amp;lt;Integer&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty((Collection&amp;lt;?&amp;gt;) null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated collection is empty&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;@@ -221,8 +221,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Collection&amp;lt;Integer&amp;gt; coll = new ArrayList&amp;lt;Integer&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty((Collection&amp;lt;?&amp;gt;) null, &amp;quot;MSG&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;@@ -244,8 +244,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Integer&amp;gt; map = new HashMap&amp;lt;String, Integer&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty((Map&amp;lt;?, ?&amp;gt;) null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated map is empty&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;@@ -266,8 +266,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Integer&amp;gt; map = new HashMap&amp;lt;String, Integer&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty((Map&amp;lt;?, ?&amp;gt;) null, &amp;quot;MSG&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;@@ -289,15 +289,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty(&amp;quot;hjl&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty((String) null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated string is empty&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated character sequence is empty&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty(&amp;quot;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated string is empty&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated character sequence is empty&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String str = &amp;quot;Hi&amp;quot;;
&lt;br&gt;@@ -310,8 +310,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty(&amp;quot;a&amp;quot;, &amp;quot;MSG&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notEmpty((String) null, &amp;quot;MSG&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;MSG&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;@@ -335,10 +335,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//when
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notBlank(string);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//then
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated string is blank&amp;quot;, e.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated character sequence is blank&amp;quot;, e.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -350,8 +350,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//when
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notBlank(string, &amp;quot;Message&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//then
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Message&amp;quot;, e.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -368,7 +368,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//then
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated string is blank&amp;quot;, e.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated character sequence is blank&amp;quot;, e.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -383,7 +383,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//then
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated string is blank&amp;quot;, e.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated character sequence is blank&amp;quot;, e.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -398,7 +398,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//then
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated string is blank&amp;quot;, e.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated character sequence is blank&amp;quot;, e.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -533,8 +533,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.noNullElements(array);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.noNullElements((Object[]) null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated object is null&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;array[1] = null;
&lt;br&gt;@@ -556,8 +556,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.noNullElements(array, &amp;quot;MSG&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.noNullElements((Object[]) null, &amp;quot;MSG&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated object is null&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;array[1] = null;
&lt;br&gt;@@ -582,8 +582,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.noNullElements(coll);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.noNullElements((Collection&amp;lt;?&amp;gt;) null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated object is null&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;coll.set(1, null);
&lt;br&gt;@@ -607,8 +607,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.noNullElements(coll, &amp;quot;MSG&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.noNullElements((Collection&amp;lt;?&amp;gt;) null, &amp;quot;MSG&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting NullPointerException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NullPointerException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated object is null&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;coll.set(1, null);
&lt;br&gt;@@ -643,15 +643,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(array, 1, &amp;quot;Broken: &amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(array, -1, &amp;quot;Broken: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: -1&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: &amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(array, 2, &amp;quot;Broken: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: 2&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: &amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] strArray = new String[] {&amp;quot;Hi&amp;quot;};
&lt;br&gt;@@ -665,14 +665,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(array, 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(array, -1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated array index is invalid: -1&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(array, 2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated array index is invalid: 2&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -691,15 +691,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(coll, 1, &amp;quot;Broken: &amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(coll, -1, &amp;quot;Broken: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: -1&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: &amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(coll, 2, &amp;quot;Broken: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: 2&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: &amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; strColl = Arrays.asList(new String[] {&amp;quot;Hi&amp;quot;});
&lt;br&gt;@@ -715,14 +715,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(coll, 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(coll, -1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated collection index is invalid: -1&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(coll, 2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated collection index is invalid: 2&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -739,15 +739,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(str, 1, &amp;quot;Broken: &amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(str, -1, &amp;quot;Broken: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: -1&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: &amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(str, 2, &amp;quot;Broken: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: 2&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Broken: &amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String input = &amp;quot;Hi&amp;quot;;
&lt;br&gt;@@ -761,15 +761,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(str, 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(str, -1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated string index is invalid: -1&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated character sequence index is invalid: -1&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.validIndex(str, 2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IllegalArgumentException&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException ex) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated string index is invalid: 2&amp;quot;, ex.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Expecting IndexOutOfBoundsException&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IndexOutOfBoundsException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;The validated character sequence index is invalid: 2&amp;quot;, ex.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String input = &amp;quot;Hi&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885913---in--commons-proper-lang-trunk-src%3A-java-org-apache-commons-lang-Validate.java-test-org-apache-commons-lang-ValidateTest.java-tp26598528p26598528.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26594170</id>
	<title>svn commit: r885808 - /commons/proper/jexl/trunk/compat/commons-jexl-compat/</title>
	<published>2009-12-01T07:59:05Z</published>
	<updated>2009-12-01T07:59:05Z</updated>
	<author>
		<name>henrib-2</name>
	</author>
	<content type="html">Author: henrib
&lt;br&gt;Date: Tue Dec &amp;nbsp;1 15:59:05 2009
&lt;br&gt;New Revision: 885808
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885808&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885808&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Added &amp;quot;compat&amp;quot; directory that contains Jexl-1.x compatible implementations of most common classes; this is intended to facilitate trivial upgrades to 2.0 (Jelly for instance). As of now, the compatibility jar is not built automatically (need to do some research on how to do this correctly).
&lt;br&gt;As a result, the deprecated classes ({Script,Expression}Factory) have been moved to this package.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/ &amp;nbsp; (props changed)
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (added)
&lt;br&gt;+++ svn:ignore Tue Dec &amp;nbsp;1 15:59:05 2009
&lt;br&gt;@@ -0,0 +1 @@
&lt;br&gt;+target
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885808----commons-proper-jexl-trunk-compat-commons-jexl-compat--tp26594170p26594170.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26591180</id>
	<title>svn commit: r885755 - /commons/proper/jexl/trunk/compat/commons-jexl-compat/target/</title>
	<published>2009-12-01T04:48:14Z</published>
	<updated>2009-12-01T04:48:14Z</updated>
	<author>
		<name>henrib-2</name>
	</author>
	<content type="html">Author: henrib
&lt;br&gt;Date: Tue Dec &amp;nbsp;1 12:48:13 2009
&lt;br&gt;New Revision: 885755
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885755&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885755&amp;view=rev&lt;/a&gt;&lt;br&gt;Log: (empty)
&lt;br&gt;&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885755----commons-proper-jexl-trunk-compat-commons-jexl-compat-target--tp26591180p26591180.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26591167</id>
	<title>svn commit: r885754 - in /commons/proper/jexl/trunk: compat/ compat/commons-jexl-compat/ compat/commons-jexl-compat/src/ compat/commons-jexl-compat/src/main/ compat/commons-jexl-compat/src/main/java/ compat/commons-jexl-compat/src/main/java/org/ compat...</title>
	<published>2009-12-01T04:47:02Z</published>
	<updated>2009-12-01T04:47:02Z</updated>
	<author>
		<name>henrib-2</name>
	</author>
	<content type="html">Author: henrib
&lt;br&gt;Date: Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;New Revision: 885754
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885754&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885754&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Added compat directory that contains Jexl-1.x compatible implementations of most common classes; this is intended to facilitate trivial upgrades to 2.0 (Jelly for instance). As of now, the compatibility jar is not built automatically (need to do some research on how to do this correctly).
&lt;br&gt;As a result, the deprecated classes ({Script,Expression}Factory) have been moved to this package.
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/pom.xml &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Expression.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ExpressionFactory.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlContext.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlHelper.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlOne.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Script.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ScriptFactory.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/HashMapContext.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/package.html &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/package.html &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/resources/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/commons/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/commons/jexl/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/commons/jexl/ScriptTest.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Expression.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ExpressionFactory.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlContext.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlHelper.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$1.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$ContextAdapter.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$EngineHolder.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$JexlOneEngine.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$JexlOneExpression.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$JexlOneInterpreter.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Script.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ScriptFactory.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/context/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/context/HashMapContext.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/commons-jexl-compat-2.0-SNAPSHOT.jar &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/maven-archiver/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/maven-archiver/pom.properties &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/osgi/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/osgi/MANIFEST.MF &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/TEST-org.apache.commons.jexl.ScriptTest.xml &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/org.apache.commons.jexl.ScriptTest.txt &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest$Tester.class &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest.class &amp;nbsp; (with props)
&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/ExpressionFactory.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/ScriptFactory.java
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/pom.xml?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/pom.xml?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/pom.xml (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/pom.xml Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,86 @@
&lt;br&gt;+
&lt;br&gt;+&amp;lt;project xmlns=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;quot; xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://maven.apache.org/maven-v4_0_0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;parent&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.commons&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;commons-parent&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;12&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/parent&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.commons&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;commons-jexl-compat&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Commons JEXL (1.x compatibility)&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;inceptionYear&amp;gt;2003&amp;lt;/inceptionYear&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Jexl is an implementation of the JSTL Expression Language with extensions.&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://commons.apache.org/jexl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://commons.apache.org/jexl/&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;issueManagement&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;system&amp;gt;jira&amp;lt;/system&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://issues.apache.org/jira/browse/JEXL&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/browse/JEXL&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/issueManagement&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;scm&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;connection&amp;gt;scm:svn:&lt;a href=&quot;http://svn.apache.org/repos/asf/commons/proper/jexl/trunk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/commons/proper/jexl/trunk&lt;/a&gt;&amp;lt;/connection&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;developerConnection&amp;gt;scm:svn:&lt;a href=&quot;https://svn.apache.org/repos/asf/commons/proper/jexl/trunk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://svn.apache.org/repos/asf/commons/proper/jexl/trunk&lt;/a&gt;&amp;lt;/developerConnection&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/scm&amp;gt;
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-surefire-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;**/*Test.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source&amp;gt;1.5&amp;lt;/source&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;target&amp;gt;1.5&amp;lt;/target&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/build&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependencies&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;junit&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;junit&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;3.8.1&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;commons-logging&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;commons-logging&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;1.1.1&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.commons&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;commons-jexl&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependencies&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.source&amp;gt;1.5&amp;lt;/maven.compile.source&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.target&amp;gt;1.5&amp;lt;/maven.compile.target&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.componentid&amp;gt;jexl-compat&amp;lt;/commons.componentid&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.release.version&amp;gt;2.0&amp;lt;/commons.release.version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- The RC version used in the staging repository URL. --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.rc.version&amp;gt;RC3&amp;lt;/commons.rc.version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.binary.suffix /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.jira.id&amp;gt;JEXL&amp;lt;/commons.jira.id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.jira.pid&amp;gt;12310479&amp;lt;/commons.jira.pid&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- Temp fix until parent POM is updated --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;project.build.sourceEncoding&amp;gt;UTF-8&amp;lt;/project.build.sourceEncoding&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;project.reporting.outputEncoding&amp;gt;UTF-8&amp;lt;/project.reporting.outputEncoding&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;+&amp;lt;/project&amp;gt;
&lt;br&gt;+
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Expression.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Expression.java?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Expression.java?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Expression.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Expression.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,35 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package org.apache.commons.jexl;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Jexl-1.x compatible expression.
&lt;br&gt;+ * @since 2.0
&lt;br&gt;+ * @version $Id$
&lt;br&gt;+ */
&lt;br&gt;+public interface Expression extends org.apache.commons.jexl2.Expression {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Evaluates the expression with the variables contained in the
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * supplied {@link JexlContext}.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param context A JexlContext containing variables.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return The result of this evaluation
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws Exception on any error
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Object evaluate(JexlContext context) throws Exception;
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Expression.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ExpressionFactory.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ExpressionFactory.java?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ExpressionFactory.java?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ExpressionFactory.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ExpressionFactory.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,49 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.commons.jexl;
&lt;br&gt;+
&lt;br&gt;+import org.apache.commons.jexl2.JexlEngine;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Creates Expression objects. 
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * To create a JEXL Expression object, pass
&lt;br&gt;+ * valid JEXL syntax to the static createExpression() method:
&lt;br&gt;+ * &amp;lt;/p&amp;gt;
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;lt;pre&amp;gt;
&lt;br&gt;+ * String jexl = &amp;quot;array[1]&amp;quot;;
&lt;br&gt;+ * Expression expression = ExpressionFactory.createExpression( jexl );
&lt;br&gt;+ * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * When an {@link Expression} object is created, the JEXL syntax is
&lt;br&gt;+ * parsed and verified. &amp;nbsp;If the supplied expression is neither an
&lt;br&gt;+ * expression nor a reference, an exception is thrown from createException().
&lt;br&gt;+ * &amp;lt;/p&amp;gt;
&lt;br&gt;+ * 
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * This is a convenience class; using an instance of a {@link JexlEngine}
&lt;br&gt;+ * that serves the same purpose with more control is recommended.
&lt;br&gt;+ * &amp;lt;/p&amp;gt;
&lt;br&gt;+ * @since 1.0
&lt;br&gt;+ * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26591167&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geirm@...&lt;/a&gt;&amp;quot;&amp;gt;Geir Magnusson Jr.&amp;lt;/a&amp;gt;
&lt;br&gt;+ * @version $Id: ExpressionFactory.java 884175 2009-11-25 16:23:41Z henrib $
&lt;br&gt;+ * @deprecated Create a JexlEngine and use the createScript method on that instead.
&lt;br&gt;+ */
&lt;br&gt;+@Deprecated
&lt;br&gt;+public final class ExpressionFactory extends JexlOne {}
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ExpressionFactory.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlContext.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlContext.java?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlContext.java?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlContext.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlContext.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,48 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.commons.jexl;
&lt;br&gt;+
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Holds a Map of variables which are referenced in a JEXL expression.
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp;@since 1.0
&lt;br&gt;+ * &amp;nbsp;@author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26591167&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geirm@...&lt;/a&gt;&amp;quot;&amp;gt;Geir Magnusson Jr.&amp;lt;/a&amp;gt;
&lt;br&gt;+ * &amp;nbsp;@version $Id: JexlContext.java 480412 2006-11-29 05:11:23Z bayard $
&lt;br&gt;+ */
&lt;br&gt;+public interface JexlContext {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Replaces variables in a JexlContext with the variables contained
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * in the supplied Map. &amp;nbsp;When setVars() is called on a JexlContext,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * it clears the current Map and puts each entry of the
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * supplied Map into the current variable Map.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param vars Contents of vars will be replaced with the content
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;of this Map
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;void setVars(Map&amp;lt;String,Object&amp;gt; vars);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Retrives the Map of variables associated with this JexlContext. &amp;nbsp;The
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * keys of this map correspond to variable names referenced in a
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * JEXL expression.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return A reference to the variable Map associated with this JexlContext.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Map&amp;lt;String,Object&amp;gt; getVars();
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlContext.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlHelper.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlHelper.java?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlHelper.java?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlHelper.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlHelper.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,58 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package org.apache.commons.jexl;
&lt;br&gt;+
&lt;br&gt;+import org.apache.commons.jexl.context.HashMapContext;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * &amp;nbsp;Helper to create a context. &amp;nbsp;In the current implementation of JEXL, there
&lt;br&gt;+ * &amp;nbsp;is one implementation of JexlContext - {@link HashMapContext}, and there
&lt;br&gt;+ * &amp;nbsp;is no reason not to directly instantiate {@link HashMapContext} in your
&lt;br&gt;+ * &amp;nbsp;own application.
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp;@since 1.0
&lt;br&gt;+ * &amp;nbsp;@author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26591167&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geirm@...&lt;/a&gt;&amp;quot;&amp;gt;Geir Magnusson Jr.&amp;lt;/a&amp;gt;
&lt;br&gt;+ * &amp;nbsp;@version $Id: JexlHelper.java 480412 2006-11-29 05:11:23Z bayard $
&lt;br&gt;+ */
&lt;br&gt;+public class JexlHelper {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** singleton instance. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected static JexlHelper helper = new JexlHelper();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** @return the single instance. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected static JexlHelper getInstance() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return helper;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Returns a new {@link JexlContext}.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return a new JexlContext
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static JexlContext createContext() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getInstance().newContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates and returns a new {@link JexlContext}. &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * The current implementation creates a new instance of 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * {@link HashMapContext}.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return a new JexlContext
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected JexlContext newContext() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new HashMapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlHelper.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlOne.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlOne.java?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlOne.java?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlOne.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlOne.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,277 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.commons.jexl;
&lt;br&gt;+
&lt;br&gt;+import java.io.File;
&lt;br&gt;+import java.net.URL;
&lt;br&gt;+import org.apache.commons.jexl2.JexlEngine;
&lt;br&gt;+import org.apache.commons.jexl2.Interpreter;
&lt;br&gt;+import org.apache.commons.jexl2.JexlException;
&lt;br&gt;+import org.apache.commons.jexl2.parser.JexlNode;
&lt;br&gt;+import org.apache.commons.jexl2.parser.ASTJexlScript;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * This implements Jexl-1.x (Jelly) compatible behaviors on top of Jexl-2.0.
&lt;br&gt;+ * @since 2.0
&lt;br&gt;+ * @version $Id$
&lt;br&gt;+ */
&lt;br&gt;+public class JexlOne {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Default cache size.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final int CACHE_SIZE = 256;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Private constructor, ensure no instance.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected JexlOne() {}
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Lazy JexlEngine singleton through on demand holder idiom.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final class EngineHolder {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** The shared instance. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;static final JexlOneEngine JEXL10 = new JexlOneEngine();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Non-instantiable.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private EngineHolder() {}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * A Jexl1.x context wrapped into a Jexl2 context.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final class ContextAdapter implements org.apache.commons.jexl2.JexlContext {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** The Jexl1.x context. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private final JexlContext legacy;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates a jexl2.JexlContext from a jexl.JexlContext.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param ctxt10
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContextAdapter(JexlContext ctxt10) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;legacy = ctxt10;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object get(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return legacy.getVars().get(name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void set(String name, Object value) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;legacy.getVars().put(name, value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public boolean has(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return legacy.getVars().containsKey(name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Adapts a Jexl-1.x context to a Jexl-2.0 context.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param aContext a oac.jexl context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @return an oac.jexl2 context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;static final org.apache.commons.jexl2.JexlContext adapt(JexlContext aContext) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return aContext == null ? JexlOneEngine.EMPTY_CONTEXT : new ContextAdapter(aContext);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * An interpreter made compatible with v1.1 behavior (at least Jelly's expectations).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final class JexlOneInterpreter extends Interpreter {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates an instance.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param jexl the jexl engine
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param aContext the jexl context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public JexlOneInterpreter(JexlEngine jexl, JexlContext aContext) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(jexl, ContextAdapter.adapt(aContext));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**{@inheritDoc}*/
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object interpret(JexlNode node) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return node.jjtAccept(this, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (JexlException xjexl) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Throwable e = xjexl.getCause();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (e instanceof RuntimeException) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw (RuntimeException) e;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (e instanceof IllegalStateException) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw (IllegalStateException) e;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalStateException(e.getMessage(), e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**{@inheritDoc}*/
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected Object invocationFailed(JexlException xjexl) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw xjexl;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**{@inheritDoc}*/
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected Object unknownVariable(JexlException xjexl) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * An engine that uses a JexlOneInterpreter.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final class JexlOneEngine extends JexlEngine {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Default ctor, creates a cache and sets instance to verbose (ie non-silent).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private JexlOneEngine() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setCache(CACHE_SIZE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setSilent(false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**{@inheritDoc}*/
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected Interpreter createInterpreter(JexlContext context) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new JexlOne.JexlOneInterpreter(this, context);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected Script createScript(ASTJexlScript tree, String text) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new JexlOneExpression(this, text, tree);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected Expression createExpression(ASTJexlScript tree, String text) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new JexlOneExpression(this, text, tree);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * The specific Jexl-1.x expressions implementation.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final class JexlOneExpression
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;extends org.apache.commons.jexl2.ExpressionImpl
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;implements Expression, Script {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Default local ctor.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param engine the interpreter to evaluate the expression
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param expr the expression.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param ref the parsed expression.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private JexlOneExpression(JexlOne.JexlOneEngine engine, String expr, ASTJexlScript ref) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(engine, expr, ref);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object evaluate(JexlContext context) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return super.evaluate(ContextAdapter.adapt(context));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object execute(JexlContext context) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return super.execute(ContextAdapter.adapt(context));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates a Script from a String containing valid JEXL syntax.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * This method parses the script which validates the syntax.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param scriptText A String containing valid JEXL syntax
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return A {@link Script} which can be executed with a
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;{@link JexlContext}.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws Exception An exception can be thrown if there is a
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;problem parsing the script.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @deprecated Create a JexlEngine and use the createScript method on that instead.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Deprecated
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static Script createScript(String scriptText) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Script) EngineHolder.JEXL10.createScript(scriptText);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates a Script from a {@link File} containing valid JEXL syntax.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * This method parses the script and validates the syntax.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param scriptFile A {@link File} containing valid JEXL syntax.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;Must not be null. Must be a readable file.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return A {@link Script} which can be executed with a
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;{@link JexlContext}.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws Exception An exception can be thrown if there is a problem
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;parsing the script.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @deprecated Create a JexlEngine and use the createScript method on that instead.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Deprecated
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static Script createScript(File scriptFile) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Script) EngineHolder.JEXL10.createScript(scriptFile);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates a Script from a {@link URL} containing valid JEXL syntax.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * This method parses the script and validates the syntax.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param scriptUrl A {@link URL} containing valid JEXL syntax.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;Must not be null. Must be a readable file.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return A {@link Script} which can be executed with a
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;{@link JexlContext}.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws Exception An exception can be thrown if there is a problem
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;parsing the script.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @deprecated Create a JexlEngine and use the createScript method on that instead.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Deprecated
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static Script createScript(URL scriptUrl) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Script) EngineHolder.JEXL10.createScript(scriptUrl);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates an Expression from a String containing valid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * JEXL syntax. &amp;nbsp;This method parses the expression which
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * must contain either a reference or an expression.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param expression A String containing valid JEXL syntax
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return An Expression object which can be evaluated with a JexlContext
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws JexlException An exception can be thrown if there is a problem
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;parsing this expression, or if the expression is neither an
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;expression or a reference.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @deprecated Create a JexlEngine and use createExpression() on that
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Deprecated
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static Expression createExpression(String expression) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Expression) EngineHolder.JEXL10.createExpression(expression);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/JexlOne.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Script.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Script.java?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Script.java?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Script.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Script.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,35 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.commons.jexl;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Jexl-1.x compatible script.
&lt;br&gt;+ * @since 2.0
&lt;br&gt;+ * @version $Id$
&lt;br&gt;+ */
&lt;br&gt;+public interface Script extends org.apache.commons.jexl2.Script {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Executes the script with the variables contained in the
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * supplied {@link JexlContext}. 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param context A JexlContext containing variables.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return The result of this script, usually the result of 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;the last statement.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws Exception on any script parse or execution error.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Object execute(JexlContext context) throws Exception;
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/Script.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ScriptFactory.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ScriptFactory.java?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ScriptFactory.java?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ScriptFactory.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ScriptFactory.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,47 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.commons.jexl;
&lt;br&gt;+
&lt;br&gt;+import org.apache.commons.jexl2.JexlEngine;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * Creates {@link Script}s. &amp;nbsp;To create a JEXL Script, pass
&lt;br&gt;+ * valid JEXL syntax to the static createScript() method:
&lt;br&gt;+ * &amp;lt;/p&amp;gt;
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;lt;pre&amp;gt;
&lt;br&gt;+ * String jexl = &amp;quot;y = x * 12 + 44; y = y * 4;&amp;quot;;
&lt;br&gt;+ * Script script = ScriptFactory.createScript( jexl );
&lt;br&gt;+ * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * When an {@link Script} is created, the JEXL syntax is
&lt;br&gt;+ * parsed and verified.
&lt;br&gt;+ * &amp;lt;/p&amp;gt;
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * This is a convenience class; using an instance of a {@link JexlEngine}
&lt;br&gt;+ * that serves the same purpose with more control is recommended.
&lt;br&gt;+ * &amp;lt;/p&amp;gt;
&lt;br&gt;+ * @since 1.1
&lt;br&gt;+ * @version $Id: ScriptFactory.java 884175 2009-11-25 16:23:41Z henrib $
&lt;br&gt;+ * @deprecated Create a JexlEngine and use the createScript method on that instead.
&lt;br&gt;+ */
&lt;br&gt;+@Deprecated
&lt;br&gt;+public final class ScriptFactory extends JexlOne {}
&lt;br&gt;+
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/ScriptFactory.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/HashMapContext.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/HashMapContext.java?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/HashMapContext.java?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/HashMapContext.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/HashMapContext.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,49 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package org.apache.commons.jexl.context;
&lt;br&gt;+
&lt;br&gt;+import org.apache.commons.jexl.JexlContext;
&lt;br&gt;+
&lt;br&gt;+import java.util.HashMap;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * &amp;nbsp;Implementation of JexlContext based on a HashMap.
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp;@since 1.0
&lt;br&gt;+ * &amp;nbsp;@author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26591167&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geirm@...&lt;/a&gt;&amp;quot;&amp;gt;Geir Magnusson Jr.&amp;lt;/a&amp;gt;
&lt;br&gt;+ * &amp;nbsp;@version $Id: HashMapContext.java 706202 2008-10-20 10:28:25Z sebb $
&lt;br&gt;+ */
&lt;br&gt;+public class HashMapContext extends HashMap&amp;lt;String,Object&amp;gt; implements JexlContext {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** serialization version id jdk13 generated. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = 5715964743204418854L;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setVars(Map&amp;lt;String,Object&amp;gt; vars) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clear();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;putAll(vars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Map&amp;lt;String,Object&amp;gt; getVars() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return this;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/HashMapContext.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/package.html
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/package.html?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/package.html?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/package.html (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/package.html Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,20 @@
&lt;br&gt;+&amp;lt;html&amp;gt;
&lt;br&gt;+ &amp;lt;head&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;title&amp;gt;Package Documentation for org.apache.commons.jexl.context Package&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;lt;/head&amp;gt;
&lt;br&gt;+ &amp;lt;body bgcolor=&amp;quot;white&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp;Simple JexlContext implementations.
&lt;br&gt;+ &amp;nbsp;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;ul&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#intro&amp;quot;&amp;gt;Introduction&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/ul&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;intro&amp;quot;&amp;gt;Introduction&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; This package only contains one JexlContext implementation, the
&lt;br&gt;+ &amp;nbsp; HashMapContext. &amp;nbsp;A HashMapContext is simply an extension of
&lt;br&gt;+ &amp;nbsp; HashMap which implements the JexlContext interface.
&lt;br&gt;+ &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;/body&amp;gt;
&lt;br&gt;+&amp;lt;/html&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/context/package.html
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/package.html
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/package.html?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/package.html?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/package.html (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/package.html Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,23 @@
&lt;br&gt;+&amp;lt;html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;head&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Package Documentation for org.apache.commons.jexl Package&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/head&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;body bgcolor=&amp;quot;white&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Jexl-1.x compatible implementations.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;br&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;This package only contains classes that re-implement Jexl-1.x interfaces
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;and behaviors. This is intended to allow easier conversion to Jexl-2.0.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Jexl-2.0 changed a lot of APIs and behaviors, enough to warrant for putting it
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;in its own org.apache.commons.jexl2 package and avoid possible &amp;quot;jar-hell&amp;quot; cases.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Those could have occured if someone was trying to use both Jexl-2.0 and Jexl-1.x.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;This package contains the original Jexl-1.x main API namely ScriptFactory, ExpressionFactory,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script, Expression, JexlContext and JexlHelper. It is not 100% compatible with
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;the original Jexl-1.x codeline but should be close enough for &amp;quot;casual&amp;quot; usage.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/body&amp;gt;
&lt;br&gt;+&amp;lt;/html&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/main/java/org/apache/commons/jexl/package.html
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/commons/jexl/ScriptTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/commons/jexl/ScriptTest.java?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/commons/jexl/ScriptTest.java?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/commons/jexl/ScriptTest.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/commons/jexl/ScriptTest.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,102 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ * 
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ * 
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.commons.jexl;
&lt;br&gt;+import junit.framework.TestCase;
&lt;br&gt;+import java.io.File;
&lt;br&gt;+import java.net.URL;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Tests for Script
&lt;br&gt;+ * @since 1.1
&lt;br&gt;+ */
&lt;br&gt;+public class ScriptTest extends TestCase {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static final String TEST1 = &amp;nbsp;&amp;quot;../../src/test/scripts/test1.jexl&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// test class for testScriptUpdatesContext
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// making this class private static will cause the test to fail.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// this is due to unusual code in ClassMap.getAccessibleMethods(Class)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// that treats non-public classes in a specific way. Why getAccessibleMethods
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// does this is not known yet.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class Tester {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String code;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getCode () { 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return code; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setCode(String c) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;code = c;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Create a new test case.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param name case name
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ScriptTest(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Test creating a script from a string.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSimpleScript() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String code = &amp;quot;while (x &amp;lt; 10) x = x + 1;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = ScriptFactory.createScript(code);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = JexlHelper.createContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.getVars().put(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = s.execute(jc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is wrong&amp;quot;, new Integer(10), o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;getText is wrong&amp;quot;, code, s.getText());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testScriptFromFile() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File testScript = new File(TEST1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = ScriptFactory.createScript(testScript);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = JexlHelper.createContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.getVars().put(&amp;quot;out&amp;quot;, System.out);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = s.execute(jc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(&amp;quot;No result&amp;quot;, result);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Wrong result&amp;quot;, new Integer(7), result);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testScriptFromURL() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL testUrl = new File(TEST1).toURI().toURL();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = ScriptFactory.createScript(testUrl);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = JexlHelper.createContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.getVars().put(&amp;quot;out&amp;quot;, System.out);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = s.execute(jc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(&amp;quot;No result&amp;quot;, result);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Wrong result&amp;quot;, new Integer(7), result);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testScriptUpdatesContext() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jexlCode = &amp;quot;resultat.setCode('OK')&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = ExpressionFactory.createExpression(jexlCode);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = ScriptFactory.createScript(jexlCode);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tester resultatJexl = new Tester();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = JexlHelper.createContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.getVars().put(&amp;quot;resultat&amp;quot;, resultatJexl);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resultatJexl.setCode(&amp;quot;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.evaluate(jc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;OK&amp;quot;, resultatJexl.getCode());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resultatJexl.setCode(&amp;quot;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s.execute(jc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;OK&amp;quot;, resultatJexl.getCode());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/src/test/java/org/apache/commons/jexl/ScriptTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Expression.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Expression.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Expression.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Expression.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ExpressionFactory.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ExpressionFactory.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ExpressionFactory.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ExpressionFactory.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlContext.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlContext.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlContext.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlContext.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlHelper.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlHelper.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlHelper.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlHelper.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$1.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%241.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%241.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$1.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$ContextAdapter.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24ContextAdapter.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24ContextAdapter.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$ContextAdapter.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$EngineHolder.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24EngineHolder.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24EngineHolder.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$EngineHolder.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$JexlOneEngine.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24JexlOneEngine.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24JexlOneEngine.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$JexlOneEngine.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$JexlOneExpression.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24JexlOneExpression.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24JexlOneExpression.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$JexlOneExpression.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$JexlOneInterpreter.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24JexlOneInterpreter.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne%24JexlOneInterpreter.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne$JexlOneInterpreter.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/JexlOne.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Script.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Script.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Script.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/Script.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ScriptFactory.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ScriptFactory.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ScriptFactory.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/ScriptFactory.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/context/HashMapContext.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/context/HashMapContext.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/context/HashMapContext.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/classes/org/apache/commons/jexl/context/HashMapContext.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/commons-jexl-compat-2.0-SNAPSHOT.jar
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/commons-jexl-compat-2.0-SNAPSHOT.jar?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/commons-jexl-compat-2.0-SNAPSHOT.jar?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/commons-jexl-compat-2.0-SNAPSHOT.jar
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/maven-archiver/pom.properties
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/maven-archiver/pom.properties?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/maven-archiver/pom.properties?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/target/maven-archiver/pom.properties (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/target/maven-archiver/pom.properties Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,5 @@
&lt;br&gt;+#Generated by Maven
&lt;br&gt;+#Tue Dec 01 13:33:27 CET 2009
&lt;br&gt;+version=2.0-SNAPSHOT
&lt;br&gt;+groupId=org.apache.commons
&lt;br&gt;+artifactId=commons-jexl-compat
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/maven-archiver/pom.properties
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/osgi/MANIFEST.MF
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/osgi/MANIFEST.MF?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/osgi/MANIFEST.MF?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/target/osgi/MANIFEST.MF (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/target/osgi/MANIFEST.MF Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,19 @@
&lt;br&gt;+Manifest-Version: 1.0
&lt;br&gt;+Export-Package: org.apache.commons.jexl;version=&amp;quot;2.0.0.SNAPSHOT&amp;quot;,org.a
&lt;br&gt;+ pache.commons.jexl.context;version=&amp;quot;2.0.0.SNAPSHOT&amp;quot;
&lt;br&gt;+Tool: Bnd-0.0.238
&lt;br&gt;+Bundle-Name: Commons JEXL (1.x compatibility)
&lt;br&gt;+Created-By: 1.6.0_15 (Apple Inc.)
&lt;br&gt;+Bundle-Vendor: The Apache Software Foundation
&lt;br&gt;+Bundle-Version: 2.0.0.SNAPSHOT
&lt;br&gt;+Bnd-LastModified: 1259670805939
&lt;br&gt;+Bundle-ManifestVersion: 2
&lt;br&gt;+Bundle-License: &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0.txt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0.txt&lt;/a&gt;&lt;br&gt;+Bundle-Description: Jexl is an implementation of the JSTL Expression L
&lt;br&gt;+ anguage with extensions.
&lt;br&gt;+Import-Package: org.apache.commons.jexl;version=&amp;quot;2.0.0.SNAPSHOT&amp;quot;,org.a
&lt;br&gt;+ pache.commons.jexl.context;version=&amp;quot;2.0.0.SNAPSHOT&amp;quot;,org.apache.common
&lt;br&gt;+ s.jexl2,org.apache.commons.jexl2.parser
&lt;br&gt;+Bundle-SymbolicName: org.apache.commons.jexl-compat
&lt;br&gt;+Bundle-DocURL: &lt;a href=&quot;http://commons.apache.org/jexl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://commons.apache.org/jexl/&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/osgi/MANIFEST.MF
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/TEST-org.apache.commons.jexl.ScriptTest.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/TEST-org.apache.commons.jexl.ScriptTest.xml?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/TEST-org.apache.commons.jexl.ScriptTest.xml?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/TEST-org.apache.commons.jexl.ScriptTest.xml (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/TEST-org.apache.commons.jexl.ScriptTest.xml Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,70 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;
&lt;br&gt;+&amp;lt;testsuite failures=&amp;quot;0&amp;quot; time=&amp;quot;0.134&amp;quot; errors=&amp;quot;0&amp;quot; skipped=&amp;quot;0&amp;quot; tests=&amp;quot;4&amp;quot; name=&amp;quot;org.apache.commons.jexl.ScriptTest&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.runtime.name&amp;quot; value=&amp;quot;Java(TM) SE Runtime Environment&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.boot.library.path&amp;quot; value=&amp;quot;/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Libraries&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vm.version&amp;quot; value=&amp;quot;14.1-b02-90&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;awt.nativeDoubleBuffering&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;gopherProxySet&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vm.vendor&amp;quot; value=&amp;quot;Apple Inc.&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vendor.url&amp;quot; value=&amp;quot;&lt;a href=&quot;http://www.apple.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apple.com/&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;path.separator&amp;quot; value=&amp;quot;:&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vm.name&amp;quot; value=&amp;quot;Java HotSpot(TM) 64-Bit Server VM&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;file.encoding.pkg&amp;quot; value=&amp;quot;sun.io&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;user.country&amp;quot; value=&amp;quot;US&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.java.launcher&amp;quot; value=&amp;quot;SUN_STANDARD&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.os.patch.level&amp;quot; value=&amp;quot;unknown&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vm.specification.name&amp;quot; value=&amp;quot;Java Virtual Machine Specification&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;user.dir&amp;quot; value=&amp;quot;/Users/henri/Java/apache-commons/commons-parent-12/jexl-2.0/compat/commons-jexl-compat&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.runtime.version&amp;quot; value=&amp;quot;1.6.0_15-b03-219&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.awt.graphicsenv&amp;quot; value=&amp;quot;apple.awt.CGraphicsEnvironment&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;basedir&amp;quot; value=&amp;quot;/Users/henri/Java/apache-commons/commons-parent-12/jexl-2.0/compat/commons-jexl-compat&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.endorsed.dirs&amp;quot; value=&amp;quot;/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/endorsed&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;os.arch&amp;quot; value=&amp;quot;x86_64&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;surefire.real.class.path&amp;quot; value=&amp;quot;/var/folders/Ya/YaSJZzgsHu4O4NXovx-nNE+++TI/-Tmp-/surefirebooter3767222523623553200.jar&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.io.tmpdir&amp;quot; value=&amp;quot;/var/folders/Ya/YaSJZzgsHu4O4NXovx-nNE+++TI/-Tmp-/&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;line.separator&amp;quot; value=&amp;quot;
&lt;br&gt;+&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vm.specification.vendor&amp;quot; value=&amp;quot;Sun Microsystems Inc.&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;os.name&amp;quot; value=&amp;quot;Mac OS X&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.jnu.encoding&amp;quot; value=&amp;quot;MacRoman&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.library.path&amp;quot; value=&amp;quot;.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;surefire.test.class.path&amp;quot; value=&amp;quot;/Users/henri/Java/apache-commons/commons-parent-12/jexl-2.0/compat/commons-jexl-compat/target/test-classes:/Users/henri/Java/apache-commons/commons-parent-12/jexl-2.0/compat/commons-jexl-compat/target/classes:/Users/henri/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/henri/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/henri/.m2/repository/org/apache/commons/commons-jexl/2.0-SNAPSHOT/commons-jexl-2.0-SNAPSHOT.jar:/Users/henri/.m2/repository/org/apache/bsf/bsf-api/3.0-beta3/bsf-api-3.0-beta3.jar:&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.specification.name&amp;quot; value=&amp;quot;Java Platform API Specification&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.class.version&amp;quot; value=&amp;quot;50.0&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.management.compiler&amp;quot; value=&amp;quot;HotSpot 64-Bit Server Compiler&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;os.version&amp;quot; value=&amp;quot;10.6.2&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;http.nonProxyHosts&amp;quot; value=&amp;quot;local|*.local|169.254/16|*.169.254/16&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;user.home&amp;quot; value=&amp;quot;/Users/henri&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;user.timezone&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.awt.printerjob&amp;quot; value=&amp;quot;apple.awt.CPrinterJob&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.specification.version&amp;quot; value=&amp;quot;1.6&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;file.encoding&amp;quot; value=&amp;quot;MacRoman&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;user.name&amp;quot; value=&amp;quot;henri&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.class.path&amp;quot; value=&amp;quot;/Users/henri/Java/apache-commons/commons-parent-12/jexl-2.0/compat/commons-jexl-compat/target/test-classes:/Users/henri/Java/apache-commons/commons-parent-12/jexl-2.0/compat/commons-jexl-compat/target/classes:/Users/henri/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/henri/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/henri/.m2/repository/org/apache/commons/commons-jexl/2.0-SNAPSHOT/commons-jexl-2.0-SNAPSHOT.jar:/Users/henri/.m2/repository/org/apache/bsf/bsf-api/3.0-beta3/bsf-api-3.0-beta3.jar:&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vm.specification.version&amp;quot; value=&amp;quot;1.0&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.arch.data.model&amp;quot; value=&amp;quot;64&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.home&amp;quot; value=&amp;quot;/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.specification.vendor&amp;quot; value=&amp;quot;Sun Microsystems Inc.&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;user.language&amp;quot; value=&amp;quot;en&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;awt.toolkit&amp;quot; value=&amp;quot;apple.awt.CToolkit&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vm.info&amp;quot; value=&amp;quot;mixed mode&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.version&amp;quot; value=&amp;quot;1.6.0_15&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.ext.dirs&amp;quot; value=&amp;quot;/Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.boot.class.path&amp;quot; value=&amp;quot;/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsfd.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vendor&amp;quot; value=&amp;quot;Apple Inc.&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;localRepository&amp;quot; value=&amp;quot;/Users/henri/.m2/repository&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;file.separator&amp;quot; value=&amp;quot;/&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;java.vendor.url.bug&amp;quot; value=&amp;quot;&lt;a href=&quot;http://bugreport.apple.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugreport.apple.com/&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.cpu.endian&amp;quot; value=&amp;quot;little&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.io.unicode.encoding&amp;quot; value=&amp;quot;UnicodeLittle&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;mrj.version&amp;quot; value=&amp;quot;1060.1.6.0_15-219&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;socksNonProxyHosts&amp;quot; value=&amp;quot;local|*.local|169.254/16|*.169.254/16&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;ftp.nonProxyHosts&amp;quot; value=&amp;quot;local|*.local|169.254/16|*.169.254/16&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sun.cpu.isalist&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;testcase time=&amp;quot;0.096&amp;quot; classname=&amp;quot;org.apache.commons.jexl.ScriptTest&amp;quot; name=&amp;quot;testSimpleScript&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;testcase time=&amp;quot;0.015&amp;quot; classname=&amp;quot;org.apache.commons.jexl.ScriptTest&amp;quot; name=&amp;quot;testScriptFromFile&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;testcase time=&amp;quot;0.003&amp;quot; classname=&amp;quot;org.apache.commons.jexl.ScriptTest&amp;quot; name=&amp;quot;testScriptFromURL&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;testcase time=&amp;quot;0.002&amp;quot; classname=&amp;quot;org.apache.commons.jexl.ScriptTest&amp;quot; name=&amp;quot;testScriptUpdatesContext&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/testsuite&amp;gt;
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/TEST-org.apache.commons.jexl.ScriptTest.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/org.apache.commons.jexl.ScriptTest.txt
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/org.apache.commons.jexl.ScriptTest.txt?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/org.apache.commons.jexl.ScriptTest.txt?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/org.apache.commons.jexl.ScriptTest.txt (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/org.apache.commons.jexl.ScriptTest.txt Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -0,0 +1,4 @@
&lt;br&gt;+-------------------------------------------------------------------------------
&lt;br&gt;+Test set: org.apache.commons.jexl.ScriptTest
&lt;br&gt;+-------------------------------------------------------------------------------
&lt;br&gt;+Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.141 sec
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/surefire-reports/org.apache.commons.jexl.ScriptTest.txt
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest$Tester.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest%24Tester.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest%24Tester.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest$Tester.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest.class
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest.class?rev=885754&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest.class?rev=885754&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/compat/commons-jexl-compat/target/test-classes/org/apache/commons/jexl/ScriptTest.class
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java?rev=885754&amp;r1=885753&amp;r2=885754&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java?rev=885754&amp;r1=885753&amp;r2=885754&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/ExpressionImpl.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -23,12 +23,11 @@
&lt;br&gt;&amp;nbsp; * Instances of ExpressionImpl are created by the {@link JexlEngine},
&lt;br&gt;&amp;nbsp; * and this is the default implementation of the {@link Expression} and
&lt;br&gt;&amp;nbsp; * {@link Script} interface.
&lt;br&gt;- *
&lt;br&gt;&amp;nbsp; * @since 1.0
&lt;br&gt;&amp;nbsp; * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26591167&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geirm@...&lt;/a&gt;&amp;quot;&amp;gt;Geir Magnusson Jr.&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp; * @version $Id$
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-class ExpressionImpl implements Expression, Script {
&lt;br&gt;+public class ExpressionImpl implements Expression, Script {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** The engine for this expression. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected final JexlEngine jexl;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -48,10 +47,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param expr the expression.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param ref the parsed expression.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;ExpressionImpl(JexlEngine engine, String expr, ASTJexlScript ref) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected ExpressionImpl(JexlEngine engine, String expr, ASTJexlScript ref) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl = engine;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expression = expr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;script = ref;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl = engine;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java?rev=885754&amp;r1=885753&amp;r2=885754&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java?rev=885754&amp;r1=885753&amp;r2=885754&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -91,7 +91,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * An empty/static/non-mutable JexlContext used instead of null context.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected static final JexlContext EMPTY_CONTEXT = new JexlContext() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static final JexlContext EMPTY_CONTEXT = new JexlContext() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object get(String name) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;@@ -115,9 +115,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Implemented as on demand holder idiom.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;@return Uberspect the default uberspector instance.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static class UberspectHolder {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final class UberspectHolder {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** The default uberspector that handles all introspection patterns. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private static final Uberspect UBERSPECT = new UberspectImpl(LogFactory.getLog(JexlEngine.class));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** Non-instantiable. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private UberspectHolder() {}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -338,6 +340,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * An overridable through covariant return Expression creator.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param text the script text
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param tree the parse AST tree
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the script instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected Expression createExpression(ASTJexlScript tree, String text) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new ExpressionImpl(this, text, tree);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates an Expression from a String containing valid
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * JEXL syntax. &amp;nbsp;This method parses the expression which
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * must contain either a reference or an expression.
&lt;br&gt;@@ -369,7 +381,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.warn(&amp;quot;The JEXL Expression created will be a reference&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; to the first expression from the supplied script: \&amp;quot;&amp;quot; + expression + &amp;quot;\&amp;quot; &amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new ExpressionImpl(this, expression, tree);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return createExpression(tree, expression);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -399,10 +411,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Parse the expression
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASTJexlScript tree = parse(scriptText, info);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new ExpressionImpl(this, scriptText, tree);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return createScript(tree, scriptText);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * An overridable through covariant return Script creator.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param text the script text
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param tree the parse AST tree
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the script instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected Script createScript(ASTJexlScript tree, String text) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new ExpressionImpl(this, text, tree);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates a Script from a {@link File} containing valid JEXL syntax.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * This method parses the script and validates the syntax.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;@@ -426,7 +448,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;info = createInfo(scriptFile.getName(), 0, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return createScript(readerToString(reader), info);
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -833,10 +854,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clazz = JexlEngine.class;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (className.equals(UnifiedJEXL.class.getName())) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clazz = UnifiedJEXL.class;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (className.equals(ScriptFactory.class.getName())) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clazz = ScriptFactory.class;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (className.equals(ExpressionFactory.class.getName())) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clazz = ExpressionFactory.class;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java?rev=885754&amp;r1=885753&amp;r2=885754&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java?rev=885754&amp;r1=885753&amp;r2=885754&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java Tue Dec &amp;nbsp;1 12:47:00 2009
&lt;br&gt;@@ -52,14 +52,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Test creating a script from a string.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSimpleScript() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;simpleScript(true);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testLegacySimpleScript() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;simpleScript(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void simpleScript(boolean jexl) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String code = &amp;quot;while (x &amp;lt; 10) x = x + 1;&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = jexl? JEXL.createScript(code) : ScriptFactory.createScript(code);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = JEXL.createScript(code);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -69,14 +63,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testScriptFromFile() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;scriptFromFile(true);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testLegacyScriptFromFile() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;scriptFromFile(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void scriptFromFile(boolean jexl) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File testScript = new File(TEST1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = jexl? JEXL.createScript(testScript) : ScriptFactory.createScript(testScript);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = JEXL.createScript(testScript);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;out&amp;quot;, System.out);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = s.execute(jc);
&lt;br&gt;@@ -85,14 +73,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testScriptFromURL() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;scriptFromURL(true);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testLegacyScriptFromURL() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;scriptFromURL(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void scriptFromURL(boolean jexl) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL testUrl = new File(&amp;quot;src/test/scripts/test1.jexl&amp;quot;).toURI().toURL();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = jexl? JEXL.createScript(testUrl) : ScriptFactory.createScript(testUrl);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = JEXL.createScript(testUrl);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;out&amp;quot;, System.out);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = s.execute(jc);
&lt;br&gt;@@ -101,15 +83,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testScriptUpdatesContext() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;scriptUpdatesContext(true);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testLegacyScriptUpdatesContext() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;scriptUpdatesContext(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void scriptUpdatesContext(boolean jexl) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jexlCode = &amp;quot;resultat.setCode('OK')&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = jexl? JEXL.createExpression(jexlCode) : ExpressionFactory.createExpression(jexlCode);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = jexl? JEXL.createScript(jexlCode) : ScriptFactory.createScript(jexlCode);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(jexlCode);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = JEXL.createScript(jexlCode);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tester resultatJexl = new Tester();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885754---in--commons-proper-jexl-trunk%3A-compat--compat-commons-jexl-compat--compat-commons-jexl-compat-src--compat-commons-jexl-compat-src-main--compat-commons-jexl-compat-src-main-java--compat-commons-jexl-compat-src-main-java-org--compat...-tp26591167p26591167.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26580473</id>
	<title>svn commit: r885553 [2/2] - in /commons/proper/jexl/trunk: src/main/java/org/apache/commons/jexl2/ src/main/java/org/apache/commons/jexl2/introspection/ src/main/java/org/apache/commons/jexl2/parser/ src/main/java/org/apache/commons/jexl2/scripting/ sr...</title>
	<published>2009-11-30T11:28:41Z</published>
	<updated>2009-11-30T11:28:41Z</updated>
	<author>
		<name>henrib-2</name>
	</author>
	<content type="html">Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -259,7 +259,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setCache(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Object&amp;gt; vars = new HashMap&amp;lt;String,Object&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped(vars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext(vars);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression cacheGetValue = jexl.createExpression(&amp;quot;cache.value&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression cacheSetValue = jexl.createExpression(&amp;quot;cache.value = value&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result;
&lt;br&gt;@@ -318,7 +318,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setCache(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Object&amp;gt; vars = new HashMap&amp;lt;String,Object&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped(vars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext(vars);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression cacheGetValue = jexl.createExpression(&amp;quot;cache.flag&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression cacheSetValue = jexl.createExpression(&amp;quot;cache.flag = value&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result;
&lt;br&gt;@@ -359,7 +359,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setCache(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Object&amp;gt; vars = new HashMap&amp;lt;String,Object&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped(vars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext(vars);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression cacheGetValue = jexl.createExpression(&amp;quot;cache.0&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression cacheSetValue = jexl.createExpression(&amp;quot;cache[0] = value&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result;
&lt;br&gt;@@ -414,7 +414,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setCache(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Object&amp;gt; vars = new HashMap&amp;lt;String,Object&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped(vars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext(vars);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setDebug(true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression compute2 = jexl.createExpression(&amp;quot;cache.compute(a0, a1)&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression compute1 = jexl.createExpression(&amp;quot;cache.compute(a0)&amp;quot;);
&lt;br&gt;@@ -513,7 +513,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setCache(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Object&amp;gt; vars = new HashMap&amp;lt;String,Object&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped(vars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext(vars);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.util.Map&amp;lt;String, Object&amp;gt; funcs = new java.util.HashMap&amp;lt;String, Object&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setFunctions(funcs);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression compute2 = jexl.createExpression(&amp;quot;cached:COMPUTE(a0, a1)&amp;quot;);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ClassCreatorTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ClassCreatorTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ClassCreatorTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ClassCreatorTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ClassCreatorTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -112,7 +112,7 @@
&lt;br&gt;&amp;nbsp;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Object&amp;gt; mm = new ArrayList&amp;lt;Object&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression expr = jexl.createExpression(&amp;quot;foo.value&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression newx = jexl.createExpression(&amp;quot;foo = new(clazz)&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext context = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext context = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassCreator cctor = new ClassCreator(jexl, base);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; LOOPS &amp;&amp; gced &amp;lt; 0; ++i) {
&lt;br&gt;@@ -132,12 +132,12 @@
&lt;br&gt;&amp;nbsp;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Method m = clazz.getDeclaredMethod(&amp;quot;getValue&amp;quot;, new Class&amp;lt;?&amp;gt;[0]);
&lt;br&gt;&amp;nbsp;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mm.add(m);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// we should not be able to create foox since it is unknown to the Jexl classloader
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.setJexlVariable(&amp;quot;clazz&amp;quot;, cctor.getClassName());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.setJexlVariable(&amp;quot;foo&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.set(&amp;quot;clazz&amp;quot;, cctor.getClassName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.set(&amp;quot;foo&amp;quot;, null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object z = newx.evaluate(context);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNull(z);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check with the class itself
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.setJexlVariable(&amp;quot;clazz&amp;quot;, clazz);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.set(&amp;quot;clazz&amp;quot;, clazz);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;z = newx.evaluate(context);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(clazz + &amp;quot;: class &amp;quot; + i + &amp;quot; could not be instantiated on pass &amp;quot; + pass, z);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(new Integer(i), expr.evaluate(context));
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ForEachTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ForEachTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ForEachTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ForEachTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ForEachTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -37,7 +37,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithEmptyStatement() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list) ;&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNull(&amp;quot;Result is not null&amp;quot;, o);
&lt;br&gt;@@ -45,7 +45,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithEmptyList() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list) 1+1&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNull(&amp;quot;Result is not null&amp;quot;, o);
&lt;br&gt;@@ -53,78 +53,78 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithArray() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list) item&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, new Object[] {&amp;quot;Hello&amp;quot;, &amp;quot;World&amp;quot;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, new Object[] {&amp;quot;Hello&amp;quot;, &amp;quot;World&amp;quot;});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not last evaluated expression&amp;quot;, &amp;quot;World&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithCollection() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list) item&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, Arrays.asList(new Object[] {&amp;quot;Hello&amp;quot;, &amp;quot;World&amp;quot;}));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, Arrays.asList(new Object[] {&amp;quot;Hello&amp;quot;, &amp;quot;World&amp;quot;}));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not last evaluated expression&amp;quot;, &amp;quot;World&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithEnumeration() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list) item&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, new StringTokenizer(&amp;quot;Hello,World&amp;quot;, &amp;quot;,&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, new StringTokenizer(&amp;quot;Hello,World&amp;quot;, &amp;quot;,&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not last evaluated expression&amp;quot;, &amp;quot;World&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithIterator() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list) item&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, Arrays.asList(new Object[] {&amp;quot;Hello&amp;quot;, &amp;quot;World&amp;quot;}).iterator());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, Arrays.asList(new Object[] {&amp;quot;Hello&amp;quot;, &amp;quot;World&amp;quot;}).iterator());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not last evaluated expression&amp;quot;, &amp;quot;World&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithMap() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list) item&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;?, ?&amp;gt; map = System.getProperties();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String lastProperty = (String) new ArrayList&amp;lt;Object&amp;gt;(map.values()).get(System.getProperties().size() - 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, map);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, map);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not last evaluated expression&amp;quot;, lastProperty, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithBlock() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list) { x = x + item; }&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, new Object[] {&amp;quot;1&amp;quot;, &amp;quot;1&amp;quot;});
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x&amp;quot;, new Integer(0));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, new Object[] {&amp;quot;1&amp;quot;, &amp;quot;1&amp;quot;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, new Integer(0));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is wrong&amp;quot;, new Integer(2), o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;x is wrong&amp;quot;, new Integer(2), jc.getJexlVariable(&amp;quot;x&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;x is wrong&amp;quot;, new Integer(2), jc.get(&amp;quot;x&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithListExpression() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list.keySet()) item&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;?, ?&amp;gt; map = System.getProperties();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String lastKey = (String) new ArrayList&amp;lt;Object&amp;gt;(map.keySet()).get(System.getProperties().size() - 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, map);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, map);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not last evaluated expression&amp;quot;, lastKey, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithProperty() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list.cheeseList) item&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, new Foo());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, new Foo());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not last evaluated expression&amp;quot;, &amp;quot;brie&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testForEachWithIteratorMethod() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;for(item : list.cheezy) item&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, new Foo());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, new Foo());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not last evaluated expression&amp;quot;, &amp;quot;brie&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IfTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IfTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IfTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IfTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IfTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -37,7 +37,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSimpleIfTrue() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;if (true) 1&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 1&amp;quot;, new Integer(1), o);
&lt;br&gt;@@ -50,7 +50,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSimpleIfFalse() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;if (false) 1&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNull(&amp;quot;Return value is not empty&amp;quot;, o);
&lt;br&gt;@@ -64,7 +64,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSimpleElse() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.createExpression(&amp;quot;if (false) 1 else 2;&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 2&amp;quot;, new Integer(2), o);
&lt;br&gt;@@ -78,7 +78,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBlockIfTrue() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.createExpression(&amp;quot;if (true) { 'hello'; }&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is wrong&amp;quot;, &amp;quot;hello&amp;quot;, o);
&lt;br&gt;@@ -92,7 +92,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBlockElse() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.createExpression(&amp;quot;if (false) {1} else {2 ; 3}&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is wrong&amp;quot;, new Integer(3), o);
&lt;br&gt;@@ -106,8 +106,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testIfWithSimpleExpression() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.createExpression(&amp;quot;if (x == 1) true;&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not true&amp;quot;, Boolean.TRUE, o);
&lt;br&gt;@@ -121,8 +121,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testIfWithArithmeticExpression() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.createExpression(&amp;quot;if ((x * 2) + 1 == 5) true;&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x&amp;quot;, new Integer(2));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, new Integer(2));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not true&amp;quot;, Boolean.TRUE, o);
&lt;br&gt;@@ -136,8 +136,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testIfWithDecimalArithmeticExpression() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.createExpression(&amp;quot;if ((x * 2) == 5) true&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x&amp;quot;, new Float(2.5f));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, new Float(2.5f));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not true&amp;quot;, Boolean.TRUE, o);
&lt;br&gt;@@ -151,11 +151,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testIfWithAssignment() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.createExpression(&amp;quot;if ((x * 2) == 5) {y = 1} else {y = 2;}&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x&amp;quot;, new Float(2.5f));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, new Float(2.5f));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.evaluate(jc);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = jc.getJexlVariable(&amp;quot;y&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = jc.get(&amp;quot;y&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;y has the wrong value&amp;quot;, new Integer(1), result);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -167,7 +167,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testTernary() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = new JexlEngine();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setCache(64);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = jexl.createExpression(&amp;quot;x.y.z = foo ?'bar':'quux'&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -178,40 +178,40 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent((l &amp; 2) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.getJexlVariable(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.get(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, null);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int l = 0; l &amp;lt; 4; ++l) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient((l &amp; 1) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent((l &amp; 2) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.getJexlVariable(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.get(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;,Boolean.FALSE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;,Boolean.FALSE);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int l = 0; l &amp;lt; 4; ++l) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient((l &amp; 1) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent((l &amp; 2) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.getJexlVariable(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.get(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;,Boolean.TRUE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;,Boolean.TRUE);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int l = 0; l &amp;lt; 4; ++l) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient((l &amp; 1) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent((l &amp; 2) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be bar&amp;quot;, &amp;quot;bar&amp;quot;, o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.getJexlVariable(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.get(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be bar&amp;quot;, &amp;quot;bar&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -226,7 +226,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testTernaryShorthand() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = new JexlEngine();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setCache(64);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;x.y.z = foo?:'quux'&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -237,40 +237,40 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent((l &amp; 2) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.getJexlVariable(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.get(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, null);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int l = 0; l &amp;lt; 4; ++l) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient((l &amp; 1) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent((l &amp; 2) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.getJexlVariable(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.get(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, Boolean.FALSE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int l = 0; l &amp;lt; 4; ++l) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient((l &amp; 1) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent((l &amp; 2) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.getJexlVariable(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.get(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be quux&amp;quot;, &amp;quot;quux&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;,&amp;quot;bar&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;,&amp;quot;bar&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int l = 0; l &amp;lt; 4; ++l) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient((l &amp; 1) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent((l &amp; 2) != 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be bar&amp;quot;, &amp;quot;bar&amp;quot;, o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.getJexlVariable(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = jc.get(&amp;quot;x.y.z&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Should be bar&amp;quot;, &amp;quot;bar&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IssuesTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IssuesTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IssuesTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IssuesTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IssuesTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -15,7 +15,8 @@
&lt;br&gt;&amp;nbsp; * limitations under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;package org.apache.commons.jexl2;
&lt;br&gt;-
&lt;br&gt;+import org.apache.commons.jexl2.introspection.Uberspect;
&lt;br&gt;+import org.apache.commons.jexl2.util.Introspector;
&lt;br&gt;&amp;nbsp;import java.util.HashMap;
&lt;br&gt;&amp;nbsp;import java.util.Map;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -32,7 +33,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// JEXL-49: blocks not parsed (fixed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test49() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String,Object&amp;gt; vars = new HashMap&amp;lt;String,Object&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new JexlContext.Mapped(vars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new MapContext(vars);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String stmt = &amp;quot;{a = 'b'; c = 'd';}&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script expr = JEXL.createScript(stmt);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Object value = */ expr.execute(ctxt);
&lt;br&gt;@@ -70,8 +71,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jexlExp = &amp;quot;(foo.getInner().foo() eq true) and (foo.getInner().goo() = (foo.getInner().goo()+1-1))&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = jexl.createExpression(jexlExp);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, new Foo());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, new Foo());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Object o = */ e.evaluate(jc);
&lt;br&gt;@@ -87,7 +88,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = new JexlEngine();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// ensure errors will throw
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression expr = jexl.createExpression(&amp;quot;true//false\n&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object value = expr.evaluate(ctxt);
&lt;br&gt;@@ -109,8 +110,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UnifiedJEXL uel = new UnifiedJEXL(jexl);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// ensure errors will throw
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//jexl.setSilent(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;ax&amp;quot;, &amp;quot;ok&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;ax&amp;quot;, &amp;quot;ok&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UnifiedJEXL.Expression expr = uel.parse(&amp;quot;${ax+(bx)}&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object value = expr.evaluate(ctxt);
&lt;br&gt;@@ -134,8 +135,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = new JexlEngine();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// ensure errors will throw
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;derived&amp;quot;, new Derived());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;derived&amp;quot;, new Derived());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression expr = jexl.createExpression(&amp;quot;derived.foo()&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object value = expr.evaluate(ctxt);
&lt;br&gt;@@ -145,8 +146,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// JEXL-52: can be implemented by deriving Interpreter.{g,s}etAttribute; later
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test52base() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = new JexlEngine();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Uberspect uber = jexl.getUberspect();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// most likely, call will be in an Interpreter, getUberspect
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] names = jexl.uberspect.getIntrospector().getMethodNames(Another.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] names = ((Introspector) uber).getMethodNames(Another.class);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;should find methods&amp;quot;, names.length &amp;gt; 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int found = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (String name : names) {
&lt;br&gt;@@ -163,8 +165,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// ensure errors will throw
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;a&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;a&amp;quot;, null);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] exprs = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//&amp;quot;10 + null&amp;quot;,
&lt;br&gt;@@ -192,11 +194,11 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script jscript;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jscript = jexl.createScript(&amp;quot;dummy.hashCode()&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(jscript.getText(), null, jscript.execute(ctxt)); // OK
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;dummy&amp;quot;, &amp;quot;abcd&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;dummy&amp;quot;, &amp;quot;abcd&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(jscript.getText(), Integer.valueOf(&amp;quot;abcd&amp;quot;.hashCode()), jscript.execute(ctxt)); // OK
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jscript = jexl.createScript(&amp;quot;dummy.hashCode&amp;quot;);
&lt;br&gt;@@ -204,11 +206,11 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression jexpr;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexpr = jexl.createExpression(&amp;quot;dummy.hashCode()&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(jexpr.getExpression(), null, jexpr.evaluate(ctxt)); // OK
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;dummy&amp;quot;, &amp;quot;abcd&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;dummy&amp;quot;, &amp;quot;abcd&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(jexpr.getExpression(), Integer.valueOf(&amp;quot;abcd&amp;quot;.hashCode()), jexpr.evaluate(ctxt)); // OK
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexpr = jexl.createExpression(&amp;quot;dummy.hashCode&amp;quot;);
&lt;br&gt;@@ -217,7 +219,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// JEXL-73
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test73() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = new JexlEngine();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient(false);
&lt;br&gt;@@ -230,8 +232,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(msg.indexOf(&amp;quot;variable c.e&amp;quot;) &amp;gt; 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;c&amp;quot;, &amp;quot;{ 'a' : 3, 'b' : 5}&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;e&amp;quot;, Integer.valueOf(2));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;c&amp;quot;, &amp;quot;{ 'a' : 3, 'b' : 5}&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;e&amp;quot;, Integer.valueOf(2));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Object o = */ e.evaluate(ctxt);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (JexlException xjexl) {
&lt;br&gt;@@ -243,27 +245,27 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// JEXL-87
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test87() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = new JexlEngine();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression divide = jexl.createExpression(&amp;quot;l / r&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression modulo = jexl.createExpression(&amp;quot;l % r&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;l&amp;quot;, java.math.BigInteger.valueOf(7));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;r&amp;quot;, java.math.BigInteger.valueOf(2));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;l&amp;quot;, java.math.BigInteger.valueOf(7));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;r&amp;quot;, java.math.BigInteger.valueOf(2));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;3&amp;quot;, divide.evaluate(ctxt).toString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;1&amp;quot;, modulo.evaluate(ctxt).toString());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;l&amp;quot;, java.math.BigDecimal.valueOf(7));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;r&amp;quot;, java.math.BigDecimal.valueOf(2));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;l&amp;quot;, java.math.BigDecimal.valueOf(7));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;r&amp;quot;, java.math.BigDecimal.valueOf(2));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;3.5&amp;quot;, divide.evaluate(ctxt).toString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;1&amp;quot;, modulo.evaluate(ctxt).toString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// JEXL-90
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test90() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = new JexlEngine();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient(false);
&lt;br&gt;@@ -292,8 +294,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;for(z : [3, 4, 5]) { z } y ? 2 : 1&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;for(z : [3, 4, 5]) { z } if (y) 2 else 1&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;x&amp;quot;, Boolean.FALSE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.setJexlVariable(&amp;quot;y&amp;quot;, Boolean.TRUE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;x&amp;quot;, Boolean.FALSE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctxt.set(&amp;quot;y&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int e = 0; e &amp;lt; exprs.length; ++e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = jexl.createScript(exprs[e]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(Integer.valueOf(2), s.execute(ctxt));
&lt;br&gt;@@ -303,7 +305,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// JEXL-44
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test44() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext ctxt = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = new JexlEngine();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient(false);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/Jexl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/Jexl.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/Jexl.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/Jexl.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/Jexl.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -28,9 +28,12 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void main(String[] args) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final JexlEngine JEXL = new JexlEngine();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map m = System.getProperties();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;Object,Object&amp;gt; m = System.getProperties();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// dummy context to get variables
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext context = new JexlContext.Mapped(System.getProperties());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext context = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(Map.Entry&amp;lt;Object,Object&amp;gt; e : m.entrySet()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.set(e.getKey().toString(), e.getValue());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; args.length; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(args[i]);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/JexlTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/JexlTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/JexlTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/JexlTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/JexlTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -61,9 +61,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;foo.bar&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;o not instanceof String&amp;quot;, o instanceof String);
&lt;br&gt;@@ -73,10 +73,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBoolean()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;a&amp;quot;, Boolean.TRUE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;b&amp;quot;, Boolean.FALSE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;a&amp;quot;, Boolean.TRUE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;b&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.convertBoolean(a==b)&amp;quot;, &amp;quot;Boolean : false&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.convertBoolean(a==true)&amp;quot;, &amp;quot;Boolean : true&amp;quot;);
&lt;br&gt;@@ -92,24 +92,24 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;tests a simple property expression
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.get(\&amp;quot;woogie\&amp;quot;)&amp;quot;, &amp;quot;Repeat : woogie&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testExpression()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;a&amp;quot;, Boolean.TRUE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;b&amp;quot;, Boolean.FALSE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;num&amp;quot;, new Integer(5));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;now&amp;quot;, Calendar.getInstance().getTime());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;a&amp;quot;, Boolean.TRUE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;b&amp;quot;, Boolean.FALSE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;num&amp;quot;, new Integer(5));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;now&amp;quot;, Calendar.getInstance().getTime());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GregorianCalendar gc = new GregorianCalendar(5000, 11, 20);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;now2&amp;quot;, gc.getTime());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;bdec&amp;quot;, new BigDecimal(&amp;quot;7&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;bint&amp;quot;, new BigInteger(&amp;quot;7&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;now2&amp;quot;, gc.getTime());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;bdec&amp;quot;, new BigDecimal(&amp;quot;7&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;bint&amp;quot;, new BigInteger(&amp;quot;7&amp;quot;));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;a == b&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;a==true&amp;quot;, Boolean.TRUE);
&lt;br&gt;@@ -161,13 +161,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testEmpty()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;string&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;array&amp;quot;, new Object[0]);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;map&amp;quot;, new HashMap&amp;lt;Object, Object&amp;gt;());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, new ArrayList&amp;lt;Object&amp;gt;());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;set&amp;quot;, (new HashMap&amp;lt;Object, Object&amp;gt;()).keySet());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;longstring&amp;quot;, &amp;quot;thingthing&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;string&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;array&amp;quot;, new Object[0]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;map&amp;quot;, new HashMap&amp;lt;Object, Object&amp;gt;());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, new ArrayList&amp;lt;Object&amp;gt;());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;set&amp;quot;, (new HashMap&amp;lt;Object, Object&amp;gt;()).keySet());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;longstring&amp;quot;, &amp;quot;thingthing&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;I can't believe anyone thinks this is a syntax.. :)
&lt;br&gt;@@ -185,9 +185,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSize()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;s&amp;quot;, &amp;quot;five!&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;array&amp;quot;, new Object[5]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;s&amp;quot;, &amp;quot;five!&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;array&amp;quot;, new Object[5]);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Integer&amp;gt; map = new HashMap&amp;lt;String, Integer&amp;gt;();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -197,7 +197,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map.put(&amp;quot;4&amp;quot;, new Integer(4));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map.put(&amp;quot;5&amp;quot;, new Integer(5));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;map&amp;quot;, map);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;map&amp;quot;, map);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; list = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -207,18 +207,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;list.add(&amp;quot;4&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;list.add(&amp;quot;5&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;list&amp;quot;, list);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;list&amp;quot;, list);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 30652 - support for set
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set&amp;lt;String&amp;gt; set = new HashSet&amp;lt;String&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set.addAll(list);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set.add(&amp;quot;1&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;set&amp;quot;, set);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;set&amp;quot;, set);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// support generic int size() method
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BitSet bitset = new BitSet(5);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;bitset&amp;quot;, bitset);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;bitset&amp;quot;, bitset);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;size(s)&amp;quot;, new Integer(5));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;size(array)&amp;quot;, new Integer(5));
&lt;br&gt;@@ -238,11 +238,11 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSizeAsProperty() throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map.put(&amp;quot;size&amp;quot;, &amp;quot;cheese&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;map&amp;quot;, map);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, new Foo());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;map&amp;quot;, map);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, new Foo());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;map['size']&amp;quot;, &amp;quot;cheese&amp;quot;);
&lt;br&gt;&amp;nbsp;// PR - unsure whether or not we should support map.size or force usage of the above 'escaped' version &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -256,9 +256,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;test the new function e.g constructor invocation
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testNew() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;double&amp;quot;, Double.class);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, &amp;quot;org.apache.commons.jexl2.Foo&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;double&amp;quot;, Double.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, &amp;quot;org.apache.commons.jexl2.Foo&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression expr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object value;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expr = JEXL.createExpression(&amp;quot;new(double, 1)&amp;quot;);
&lt;br&gt;@@ -278,23 +278,23 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testCalculations()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * test to ensure new string cat works
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;stringy&amp;quot;, &amp;quot;thingy&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;stringy&amp;quot;, &amp;quot;thingy&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;stringy + 2&amp;quot;, &amp;quot;thingy2&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * test new null coersion
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;imanull&amp;quot;, null );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;imanull&amp;quot;, null );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;imanull + 2&amp;quot;, new Integer(2));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;imanull + imanull&amp;quot;, new Integer(0));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* test for bugzilla 31577 */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;n&amp;quot;, new Integer(0));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;n&amp;quot;, new Integer(0));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;n != null &amp;&amp; n != 0&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -304,18 +304,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testConditions()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, new Integer(2) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;aFloat&amp;quot;, new Float(1));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;aDouble&amp;quot;, new Double(2));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;aChar&amp;quot;, new Character('A'));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;aBool&amp;quot;, Boolean.TRUE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, new Integer(2) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;aFloat&amp;quot;, new Float(1));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;aDouble&amp;quot;, new Double(2));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;aChar&amp;quot;, new Character('A'));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;aBool&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuffer buffer = new StringBuffer(&amp;quot;abc&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Object&amp;gt; list = new ArrayList&amp;lt;Object&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Object&amp;gt; list2 = new LinkedList&amp;lt;Object&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;aBuffer&amp;quot;, buffer);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;aList&amp;quot;, list);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;bList&amp;quot;, list2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;aBuffer&amp;quot;, buffer);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;aList&amp;quot;, list);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;bList&amp;quot;, list2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo == 2&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;2 == 3&amp;quot;, Boolean.FALSE);
&lt;br&gt;@@ -351,12 +351,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testNotConditions()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Foo foo = new Foo();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x&amp;quot;, Boolean.TRUE );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, foo );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;bar&amp;quot;, &amp;quot;true&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, Boolean.TRUE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, foo );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;bar&amp;quot;, &amp;quot;true&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;!x&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;x&amp;quot;, Boolean.TRUE);
&lt;br&gt;@@ -368,7 +368,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.getCheeseList().size() == 3&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.cheeseList.size() == 3&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;string&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;string&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;not empty string&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;not(empty string)&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;not empty(string)&amp;quot;, Boolean.FALSE);
&lt;br&gt;@@ -385,10 +385,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testNotConditionsWithDots()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x.a&amp;quot;, Boolean.TRUE );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x.b&amp;quot;, Boolean.FALSE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x.a&amp;quot;, Boolean.TRUE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x.b&amp;quot;, Boolean.FALSE );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;x.a&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;!x.a&amp;quot;, Boolean.FALSE);
&lt;br&gt;@@ -401,8 +401,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testComparisons()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, &amp;quot;the quick and lazy fox&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, &amp;quot;the quick and lazy fox&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.indexOf('quick') &amp;gt; 0&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.indexOf('bar') &amp;gt;= 0&amp;quot;, Boolean.FALSE);
&lt;br&gt;@@ -415,8 +415,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testNull()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;bar&amp;quot;, new Integer(2) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;bar&amp;quot;, new Integer(2) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;empty foo&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;bar == null&amp;quot;, Boolean.FALSE);
&lt;br&gt;@@ -431,7 +431,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * test quoting in strings 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testStringQuoting() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;'\&amp;quot;Hello\&amp;quot;'&amp;quot;, &amp;quot;\&amp;quot;Hello\&amp;quot;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;\&amp;quot;I'm testing\&amp;quot;&amp;quot;, &amp;quot;I'm testing&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -442,8 +442,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBlankStrings()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;bar&amp;quot;, &amp;quot;&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;bar&amp;quot;, &amp;quot;&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo == ''&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;bar == ''&amp;quot;, Boolean.TRUE);
&lt;br&gt;@@ -459,9 +459,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testLogicExpressions()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, &amp;quot;abc&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;bar&amp;quot;, &amp;quot;def&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, &amp;quot;abc&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;bar&amp;quot;, &amp;quot;def&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo == 'abc' || bar == 'abc'&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo == 'abc' or bar == 'abc'&amp;quot;, Boolean.TRUE);
&lt;br&gt;@@ -481,8 +481,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testVariableNames()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo_bar&amp;quot;, &amp;quot;123&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo_bar&amp;quot;, &amp;quot;123&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo_bar&amp;quot;, &amp;quot;123&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -496,8 +496,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, String&amp;gt; foo = new HashMap&amp;lt;String, String&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;foo.put( &amp;quot;bar&amp;quot;, &amp;quot;123&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, foo );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, foo );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.bar&amp;quot;, &amp;quot;123&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -508,8 +508,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testStringLiterals()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo == \&amp;quot;bar\&amp;quot;&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo == 'bar'&amp;quot;, Boolean.TRUE);
&lt;br&gt;@@ -527,8 +527,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(4, foo.square(2));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(4, foo.square(-2));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, foo );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, foo );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.count&amp;quot;, new Integer(5));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.square(2)&amp;quot;, new Integer(4));
&lt;br&gt;@@ -541,9 +541,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testNegativeIntComparison()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Foo foo = new Foo();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, foo );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, foo );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.count != -1&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.count == 5&amp;quot;, Boolean.TRUE);
&lt;br&gt;@@ -556,9 +556,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testCharAtBug()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, &amp;quot;abcdef&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, &amp;quot;abcdef&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.substring(2,4)&amp;quot;, &amp;quot;cd&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;foo.charAt(2)&amp;quot;, new Character('c'));
&lt;br&gt;@@ -568,20 +568,20 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testEmptyDottedVariableName() throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable( &amp;quot;this.is.a.test&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set( &amp;quot;this.is.a.test&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;empty(this.is.a.test)&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testEmptySubListOfMap() throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, ArrayList&amp;lt;?&amp;gt;&amp;gt; m = new HashMap&amp;lt;String, ArrayList&amp;lt;?&amp;gt;&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;m.put(&amp;quot;aList&amp;quot;, new ArrayList&amp;lt;Object&amp;gt;());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable( &amp;quot;aMap&amp;quot;, m );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set( &amp;quot;aMap&amp;quot;, m );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression( jc, &amp;quot;empty( aMap.aList )&amp;quot;, Boolean.TRUE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -589,7 +589,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testCoercionWithComparisionOperators()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;'2' &amp;gt; 1&amp;quot;, Boolean.TRUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;'2' &amp;gt;= 1&amp;quot;, Boolean.TRUE);
&lt;br&gt;@@ -614,16 +614,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// handle false for the left arg of 'and'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Foo tester = new Foo();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;first&amp;quot;, Boolean.FALSE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, tester);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;first&amp;quot;, Boolean.FALSE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, tester);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression expr = JEXL.createExpression(&amp;quot;first and foo.trueAndModify&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expr.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;Short circuit failure: rhs evaluated when lhs FALSE&amp;quot;, !tester.getModified());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// handle true for the left arg of 'and' 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tester = new Foo();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;first&amp;quot;, Boolean.TRUE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, tester);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;first&amp;quot;, Boolean.TRUE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, tester);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expr.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;Short circuit failure: rhs not evaluated when lhs TRUE&amp;quot;, tester.getModified());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -636,16 +636,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// handle false for the left arg of 'or'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Foo tester = new Foo();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;first&amp;quot;, Boolean.FALSE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, tester);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;first&amp;quot;, Boolean.FALSE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, tester);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression expr = JEXL.createExpression(&amp;quot;first or foo.trueAndModify&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expr.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;Short circuit failure: rhs not evaluated when lhs FALSE&amp;quot;, tester.getModified());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// handle true for the left arg of 'or' 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tester = new Foo();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;first&amp;quot;, Boolean.TRUE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, tester);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;first&amp;quot;, Boolean.TRUE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, tester);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expr.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;Short circuit failure: rhs evaluated when lhs TRUE&amp;quot;, !tester.getModified());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -656,9 +656,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testStringConcatenation() throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;first&amp;quot;, &amp;quot;Hello&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;second&amp;quot;, &amp;quot;World&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;first&amp;quot;, &amp;quot;Hello&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;second&amp;quot;, &amp;quot;World&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;first + ' ' + second&amp;quot;, &amp;quot;Hello World&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -676,7 +676,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(new JexlContext.Mapped(), &amp;quot;empty()&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(new MapContext(), &amp;quot;empty()&amp;quot;, null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fail(&amp;quot;Bad expression didn't throw ParseException&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (JexlException pe)
&lt;br&gt;@@ -691,7 +691,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testComment() throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(new JexlContext.Mapped(), &amp;quot;## double or nothing\n 1 + 1&amp;quot;, Integer.valueOf(&amp;quot;2&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(new MapContext(), &amp;quot;## double or nothing\n 1 + 1&amp;quot;, Integer.valueOf(&amp;quot;2&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -700,17 +700,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testAssignment() throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;aString&amp;quot;, &amp;quot;Hello&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;aString&amp;quot;, &amp;quot;Hello&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Foo foo = new Foo();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, foo);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, foo);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Parser parser = new Parser(new StringReader(&amp;quot;;&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parser.parse(new StringReader(&amp;quot;aString = 'World';&amp;quot;), null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;hello = 'world'&amp;quot;, &amp;quot;world&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;hello variable not changed&amp;quot;, &amp;quot;world&amp;quot;, jc.getJexlVariable(&amp;quot;hello&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;hello variable not changed&amp;quot;, &amp;quot;world&amp;quot;, jc.get(&amp;quot;hello&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;result = 1 + 1&amp;quot;, new Integer(2));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;result variable not changed&amp;quot;, new Integer(2), jc.getJexlVariable(&amp;quot;result&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;result variable not changed&amp;quot;, new Integer(2), jc.get(&amp;quot;result&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// todo: make sure properties can be assigned to, fall back to flat var if no property
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// assertExpression(jc, &amp;quot;foo.property1 = '99'&amp;quot;, &amp;quot;99&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// assertEquals(&amp;quot;property not set&amp;quot;, &amp;quot;99&amp;quot;, foo.getProperty1());
&lt;br&gt;@@ -718,9 +718,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testAntPropertiesWithMethods() throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String value = &amp;quot;Stinky Cheese&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;maven.bob.food&amp;quot;, value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;maven.bob.food&amp;quot;, value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;maven.bob.food.length()&amp;quot;, new Integer(value.length()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;empty(maven.bob.food)&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;size(maven.bob.food)&amp;quot;, new Integer(value.length()));
&lt;br&gt;@@ -728,13 +728,13 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// DG: Note the following ant properties don't work
&lt;br&gt;&amp;nbsp;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String version = &amp;quot;1.0.3&amp;quot;;
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;commons-logging&amp;quot;, version);
&lt;br&gt;+// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;commons-logging&amp;quot;, version);
&lt;br&gt;&amp;nbsp;// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;commons-logging&amp;quot;, version);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testUnicodeSupport() throws Exception
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;myvar == 'UÅ¼ytkownik'&amp;quot;, Boolean.FALSE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;'c:\\some\\windows\\path'&amp;quot;, &amp;quot;c:\\some\\windows\\path&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertExpression(jc, &amp;quot;'foo\\u0020bar'&amp;quot;, &amp;quot;foo\u0020bar&amp;quot;);
&lt;br&gt;@@ -770,8 +770,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;boxing&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testDuck() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = JEXL;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;duck&amp;quot;, new Duck());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;duck&amp;quot;, new Duck());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression expr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expr = jexl.createExpression(&amp;quot;duck.zero&amp;quot;);
&lt;br&gt;@@ -797,8 +797,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testArray() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int[] array = { 100, 101 , 102 };
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = JEXL;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;array&amp;quot;, array);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;array&amp;quot;, array);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression expr;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expr = jexl.createExpression(&amp;quot;array.1&amp;quot;);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MapLiteralTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MapLiteralTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MapLiteralTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MapLiteralTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MapLiteralTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -30,7 +30,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testLiteralWithStrings() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;{ 'foo' : 'bar' }&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( Collections.singletonMap( &amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot; ), o );
&lt;br&gt;@@ -38,7 +38,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testLiteralWithMultipleEntries() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;{ 'foo' : 'bar', 'eat' : 'food' }&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, String&amp;gt; expected = new HashMap&amp;lt;String, String&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expected.put( &amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot; );
&lt;br&gt;@@ -50,7 +50,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testLiteralWithNumbers() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;{ 5 : 10 }&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( Collections.singletonMap( new Integer( 5 ), new Integer( 10 ) ), o );
&lt;br&gt;@@ -66,7 +66,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(new Integer(40), o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;i&amp;quot;, Integer.valueOf(5));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;i&amp;quot;, Integer.valueOf(5));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;m[i]&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;fifty&amp;quot;, o);
&lt;br&gt;@@ -85,12 +85,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;SEVEN&amp;quot;, o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;k&amp;quot;, Integer.valueOf(7));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;k&amp;quot;, Integer.valueOf(7));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;m[k]&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;SEVEN&amp;quot;, o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;k&amp;quot;, &amp;quot;7&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;k&amp;quot;, &amp;quot;7&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;m[k]&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;seven&amp;quot;, o);
&lt;br&gt;@@ -98,7 +98,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSizeOfSimpleMapLiteral() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;size({ 'foo' : 'bar' })&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( new Integer( 1 ), o );
&lt;br&gt;@@ -106,7 +106,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testCallingMethodsOnNewMapLiteral() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;size({ 'foo' : 'bar' }.values())&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( new Integer( 1 ), o );
&lt;br&gt;@@ -114,7 +114,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testNotEmptySimpleMapLiteral() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;empty({ 'foo' : 'bar' })&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse( ( (Boolean) o ).booleanValue() );
&lt;br&gt;@@ -122,11 +122,11 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testMapMapLiteral() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;{'foo' : { 'inner' : 'bar' }}&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;outer&amp;quot;, o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;outer&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;outer.foo.inner&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( &amp;quot;bar&amp;quot;, o );
&lt;br&gt;@@ -134,11 +134,11 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testMapArrayLiteral() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;{'foo' : [ 'inner' , 'bar' ]}&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;outer&amp;quot;, o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;outer&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;outer.foo.1&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( &amp;quot;bar&amp;quot;, o );
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MethodTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MethodTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MethodTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MethodTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MethodTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -132,7 +132,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;funcs.put(&amp;quot;math&amp;quot;, new MyMath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JEXL.setFunctions(funcs);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;ten()&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;@@ -146,7 +146,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 20&amp;quot;, new Integer(20), o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;pi&amp;quot;, Math.PI);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;pi&amp;quot;, Math.PI);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;math:cos(pi)&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(Double.valueOf(-1),o);
&lt;br&gt;@@ -159,27 +159,27 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JEXL.setFunctions(funcs);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;func:ten()&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 10&amp;quot;, new Integer(10), o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;func:plus10(10)&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 20&amp;quot;, new Integer(20), o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;func:plus10(func:ten())&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 20&amp;quot;, new Integer(20), o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;FUNC:PLUS20(10)&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 30&amp;quot;, new Integer(30), o);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;FUNC:PLUS20(FUNC:TWENTY())&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 40&amp;quot;, new Integer(40), o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -60,8 +60,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void simpleScript(boolean jexl) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String code = &amp;quot;while (x &amp;lt; 10) x = x + 1;&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = jexl? JEXL.createScript(code) : ScriptFactory.createScript(code);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = s.execute(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is wrong&amp;quot;, new Integer(10), o);
&lt;br&gt;@@ -77,8 +77,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void scriptFromFile(boolean jexl) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File testScript = new File(TEST1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = jexl? JEXL.createScript(testScript) : ScriptFactory.createScript(testScript);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;out&amp;quot;, System.out);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;out&amp;quot;, System.out);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = s.execute(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(&amp;quot;No result&amp;quot;, result);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Wrong result&amp;quot;, new Integer(7), result);
&lt;br&gt;@@ -93,8 +93,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void scriptFromURL(boolean jexl) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL testUrl = new File(&amp;quot;src/test/scripts/test1.jexl&amp;quot;).toURI().toURL();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = jexl? JEXL.createScript(testUrl) : ScriptFactory.createScript(testUrl);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;out&amp;quot;, System.out);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;out&amp;quot;, System.out);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = s.execute(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(&amp;quot;No result&amp;quot;, result);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Wrong result&amp;quot;, new Integer(7), result);
&lt;br&gt;@@ -112,8 +112,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script s = jexl? JEXL.createScript(jexlCode) : ScriptFactory.createScript(jexlCode);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tester resultatJexl = new Tester();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;resultat&amp;quot;, resultatJexl);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;resultat&amp;quot;, resultatJexl);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resultatJexl.setCode(&amp;quot;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.evaluate(jc);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -39,7 +39,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// ensure jul logging is only error
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.util.logging.Logger.getLogger(JexlEngine.class.getName()).setLevel(java.util.logging.Level.SEVERE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;vars = new HashMap&amp;lt;String,Object&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context = new JexlContext.Mapped(vars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context = new MapContext(vars);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/WhileTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/WhileTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/WhileTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/WhileTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/WhileTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -30,7 +30,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSimpleWhileFalse() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;while (false) ;&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNull(&amp;quot;Result is not null&amp;quot;, o);
&lt;br&gt;@@ -38,8 +38,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testWhileExecutesExpressionWhenLooping() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;while (x &amp;lt; 10) x = x + 1;&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is wrong&amp;quot;, new Integer(10), o);
&lt;br&gt;@@ -47,13 +47,13 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testWhileWithBlock() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;while (x &amp;lt; 10) { x = x + 1; y = y * 2; }&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;y&amp;quot;, new Integer(1));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;x&amp;quot;, new Integer(1));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;y&amp;quot;, new Integer(1));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is wrong&amp;quot;, new Integer(512), o);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;x is wrong&amp;quot;, new Integer(10), jc.getJexlVariable(&amp;quot;x&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;y is wrong&amp;quot;, new Integer(512), jc.getJexlVariable(&amp;quot;y&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;x is wrong&amp;quot;, new Integer(10), jc.get(&amp;quot;x&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;y is wrong&amp;quot;, new Integer(512), jc.get(&amp;quot;y&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/ArrayTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/ArrayTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/ArrayTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/ArrayTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/ArrayTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -42,13 +42,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;Second make a jexlContext and put stuff in it
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Object&amp;gt; l = new ArrayList&amp;lt;Object&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l.add(&amp;quot;Hello from location 0&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Integer two = new Integer(2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l.add(two);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;array&amp;quot;, l);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;array&amp;quot;, l);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = jexl.createExpression(&amp;quot;array[1]&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/MethodPropertyTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/MethodPropertyTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/MethodPropertyTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/MethodPropertyTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/MethodPropertyTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -40,7 +40,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;Second make a jexlContext and put stuff in it
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * The Java equivalents of foo and number for comparison and checking
&lt;br&gt;@@ -48,8 +48,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Foo foo = new Foo();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Integer number = new Integer(10);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, foo);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;number&amp;quot;, number);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, foo);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;number&amp;quot;, number);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;access a method w/o args
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/junit/Asserter.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/junit/Asserter.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/junit/Asserter.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/junit/Asserter.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/junit/Asserter.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -24,6 +24,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.Expression;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.JexlContext;
&lt;br&gt;+import org.apache.commons.jexl2.MapContext;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.JexlEngine;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;@@ -39,7 +40,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** variables used during asserts. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private final Map&amp;lt;String, Object&amp;gt; variables = new HashMap&amp;lt;String, Object&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** context to use during asserts. */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private final JexlContext context = new JexlContext.Mapped(variables);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private final JexlContext context = new MapContext(variables);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Jexl engine to use during Asserts. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private final JexlEngine engine;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/DiscoveryTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/DiscoveryTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/DiscoveryTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/DiscoveryTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/DiscoveryTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -22,7 +22,10 @@
&lt;br&gt;&amp;nbsp;import java.util.Map;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+import org.apache.commons.jexl2.JexlEngine;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.JexlTestCase;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.Uberspect;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.util.Introspector;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.util.AbstractExecutor;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.util.PropertyGetExecutor;
&lt;br&gt;@@ -97,7 +100,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBeanIntrospection() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Uberspect uber = Introspector.getUberspect();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Uberspect uber = JexlEngine.getUberspect(null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Introspector intro = (Introspector) uber;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bean bean = new Bean(&amp;quot;JEXL&amp;quot;, &amp;quot;LXEJ&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -126,7 +129,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testDuckIntrospection() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Uberspect uber = Introspector.getUberspect();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Uberspect uber = JexlEngine.getUberspect(null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Introspector intro = (Introspector) uber;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Duck duck = new Duck(&amp;quot;JEXL&amp;quot;, &amp;quot;LXEJ&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -154,7 +157,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testListIntrospection() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Uberspect uber = Introspector.getUberspect();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Uberspect uber = JexlEngine.getUberspect(null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Introspector intro = (Introspector) uber;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Object&amp;gt; list = new ArrayList&amp;lt;Object&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;list.add(&amp;quot;LIST&amp;quot;);
&lt;br&gt;@@ -185,7 +188,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testMapIntrospection() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Uberspect uber = Introspector.getUberspect();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Uberspect uber = JexlEngine.getUberspect(null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Introspector intro = (Introspector) uber;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map.put(&amp;quot;value&amp;quot;, &amp;quot;MAP&amp;quot;);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/xdocs/index.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/xdocs/index.xml?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/xdocs/index.xml?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/xdocs/index.xml (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/xdocs/index.xml Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -107,7 +107,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Create a context and add data
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Now evaluate the expression, getting the result
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/xdocs/reference/examples.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/xdocs/reference/examples.xml?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/xdocs/reference/examples.xml?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/xdocs/reference/examples.xml (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/xdocs/reference/examples.xml Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -79,10 +79,10 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// populate the context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext context = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;context.setJexlVariable(&amp;quot;G1&amp;quot;, businessObject.getTotalSales());
&lt;br&gt;- &amp;nbsp; &amp;nbsp;context.setJexlVariable(&amp;quot;G2&amp;quot;, taxManager.getTaxCredit(businessObject.getYear()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp;context.setJexlVariable(&amp;quot;G3&amp;quot;, businessObject.getIntercompanyPayments());
&lt;br&gt;- &amp;nbsp; &amp;nbsp;context.setJexlVariable(&amp;quot;G4&amp;quot;, -taxManager.getAllowances());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;context.set(&amp;quot;G1&amp;quot;, businessObject.getTotalSales());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;context.set(&amp;quot;G2&amp;quot;, taxManager.getTaxCredit(businessObject.getYear()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;context.set(&amp;quot;G3&amp;quot;, businessObject.getIntercompanyPayments());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;context.set(&amp;quot;G4&amp;quot;, -taxManager.getAllowances());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// ...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// work it out
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885553--2-2----in--commons-proper-jexl-trunk%3A-src-main-java-org-apache-commons-jexl2--src-main-java-org-apache-commons-jexl2-introspection--src-main-java-org-apache-commons-jexl2-parser--src-main-java-org-apache-commons-jexl2-scripting--sr...-tp26580473p26580473.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26580478</id>
	<title>svn commit: r885553 [1/2] - in /commons/proper/jexl/trunk: src/main/java/org/apache/commons/jexl2/ src/main/java/org/apache/commons/jexl2/introspection/ src/main/java/org/apache/commons/jexl2/parser/ src/main/java/org/apache/commons/jexl2/scripting/ sr...</title>
	<published>2009-11-30T11:28:41Z</published>
	<updated>2009-11-30T11:28:41Z</updated>
	<author>
		<name>henrib-2</name>
	</author>
	<content type="html">Author: henrib
&lt;br&gt;Date: Mon Nov 30 19:28:40 2009
&lt;br&gt;New Revision: 885553
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885553&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885553&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JEXL-92: follow up on Rahul's comments (JexlContext exposes set/get/has);
&lt;br&gt;moved JexlContext.Mapped as MapContext;
&lt;br&gt;moved Uberspect &amp; related classes to oac.jexl2.introspection;
&lt;br&gt;moved DebugInfo &amp; JexlInfo to oac.jexl2
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/DebugInfo.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied, changed from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Info.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlInfo.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied, changed from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/DebugInfo.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/MapContext.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlMethod.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied, changed from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlMethod.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertyGet.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied, changed from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertyGet.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertySet.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied, changed from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertySet.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/Uberspect.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied, changed from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Uberspect.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/UberspectImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied, changed from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/package.html &amp;nbsp; (with props)
&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/DebugInfo.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Info.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Introspector.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlMethod.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertyGet.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertySet.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Uberspect.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Interpreter.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlException.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Main.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/package.html
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/JexlNode.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/AbstractExecutor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/IntrospectorBase.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/package.html
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArithmeticTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayLiteralTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/AssignTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/BlockTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ClassCreatorTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ForEachTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IfTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/IssuesTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/Jexl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/JexlTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MapLiteralTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/MethodTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ScriptTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/WhileTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/ArrayTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/examples/MethodPropertyTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/junit/Asserter.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/DiscoveryTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/xdocs/index.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/xdocs/reference/examples.xml
&lt;br&gt;&lt;br&gt;Copied: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/DebugInfo.java (from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Info.java)
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/DebugInfo.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/DebugInfo.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Info.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/DebugInfo.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/DebugInfo.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Info.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Info.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/DebugInfo.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -14,19 +14,15 @@
&lt;br&gt;&amp;nbsp; * See the License for the specific language governing permissions and
&lt;br&gt;&amp;nbsp; * limitations under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-package org.apache.commons.jexl2.util.introspection;
&lt;br&gt;+package org.apache.commons.jexl2;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;- * Little class to carry in info such as a file or template name, line and column for
&lt;br&gt;+ * Little class to carry in info such as a url/file name, line and column for
&lt;br&gt;&amp;nbsp; * information error reporting from the uberspector implementations.
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * Originally taken from Velocity for self-sufficiency.
&lt;br&gt;- * &amp;lt;/p&amp;gt;
&lt;br&gt;- * @since 1.0
&lt;br&gt;- * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26580478&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;geirm@...&lt;/a&gt;&amp;quot;&amp;gt;Geir Magnusson Jr.&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp; * @version $Id$
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-public class Info implements DebugInfo {
&lt;br&gt;+public class DebugInfo implements JexlInfo {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** line number. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private final int line;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** column number. */
&lt;br&gt;@@ -39,7 +35,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param l line number
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param c column
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Info(String tn, int l, int c) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public DebugInfo(String tn, int l, int c) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;name = tn;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;line = l;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column = c;
&lt;br&gt;@@ -77,16 +73,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Gets the template name.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return template name
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @deprecated Use {@link #getName()} instead
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Deprecated
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getTemplateName() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return name;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Gets the line number.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return line number.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Interpreter.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Interpreter.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Interpreter.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Interpreter.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Interpreter.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -79,10 +79,10 @@
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.parser.ParserVisitor;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.util.AbstractExecutor;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.Uberspect;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.JexlMethod;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.JexlPropertyGet;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.JexlPropertySet;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.Uberspect;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.JexlMethod;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.JexlPropertyGet;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.JexlPropertySet;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * An interpreter of JEXL syntax.
&lt;br&gt;@@ -360,7 +360,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;variableName.append('.');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;variableName.append(left.jjtGetChild(v).image);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;object = context.getJexlVariable(variableName.toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;object = context.get(variableName.toString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// disallow mixing ant &amp; bean with same root; avoid ambiguity
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (object != null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isVariable = false;
&lt;br&gt;@@ -382,7 +382,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;variableName.append(property);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;property = variableName.toString();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.setJexlVariable(String.valueOf(property), right);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.set(String.valueOf(property), right);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return right;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (propertyNode instanceof ASTIntegerLiteral) {
&lt;br&gt;@@ -396,7 +396,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;variableName.append(property);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;property = variableName.toString();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.setJexlVariable(String.valueOf(property), right);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.set(String.valueOf(property), right);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return right;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (propertyNode instanceof ASTArrayAccess) {
&lt;br&gt;@@ -581,12 +581,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get an iterator for the collection/array etc via the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// introspector.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Iterator&amp;lt;?&amp;gt; itemsIterator = getUberspect().getIterator(iterableValue, node);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (itemsIterator.hasNext()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// set loopVariable to value of iterator
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object value = itemsIterator.next();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.setJexlVariable(loopVariable.image, value);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// execute statement
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;result = statement.jjtAccept(this, data);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (itemsIterator != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (itemsIterator.hasNext()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// set loopVariable to value of iterator
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object value = itemsIterator.next();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.set(loopVariable.image, value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// execute statement
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;result = statement.jjtAccept(this, data);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return result;
&lt;br&gt;@@ -626,10 +628,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return registers[3];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object value = context.getJexlVariable(name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object value = context.get(name);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (value == null
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; !(node.jjtGetParent() instanceof ASTReference)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; JexlEngine.isVariableUndefined(context, name)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; !context.has(name)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlException xjexl = new JexlException(node, &amp;quot;undefined variable &amp;quot; + name);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return unknownVariable(xjexl);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -991,13 +993,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;variableName.append('.');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;variableName.append(node.jjtGetChild(v).image);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;result = context.getJexlVariable(variableName.toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;result = context.get(variableName.toString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (result == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isVariable
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; !(node.jjtGetParent() instanceof ASTTernaryNode)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; JexlEngine.isVariableUndefined(context, variableName.toString())) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; !context.has(variableName.toString())) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlException xjexl = new JexlException(node, &amp;quot;undefined variable &amp;quot; + variableName.toString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return unknownVariable(xjexl);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -16,9 +16,6 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;package org.apache.commons.jexl2;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import java.util.HashMap;
&lt;br&gt;-import java.util.Map;
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Manages variables which can be referenced in a JEXL expression.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;@@ -31,69 +28,21 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param name the variable's name
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the value
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Object getJexlVariable(String name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Object get(String name);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Sets the value of a variable.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param name the variable's name
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param value the variable's value
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;void setJexlVariable(String name, Object value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;void set(String name, Object value);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * A context that differentiates null valued variables and undefined ones.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;A non-nullable context does not allow differentiating a variable whose
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * value is null and an undefined one; thus the Nullable name for this kind of context.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public interface Nullable extends JexlContext {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Checks whether a variable is defined in this context.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;A variable may be defined with a null value; this method checks whether the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * value is null or if the variable is undefined.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param name the variable's name
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @return true if it exists, false otherwise
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean definesJexlVariable(String name);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Wraps a map in a context.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Each entry in the map is considered a variable name, value pair.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Checks whether a variable is defined in this context.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;A variable may be defined with a null value; this method checks whether the
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * value is null or if the variable is undefined.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param name the variable's name
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return true if it exists, false otherwise
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static class Mapped implements Nullable {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * The wrapped variable map.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected final Map&amp;lt;Object,Object&amp;gt; map;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates an instance using an HashMap as the underlying variable storage.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Mapped() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this(null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates an instance using a provided map as the underlying variable storage.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param vars the variables map
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // OK to cast Map&amp;lt;?,?&amp;gt; to Map&amp;lt;Object,Object&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Mapped(Map&amp;lt;?, ?&amp;gt; vars) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map = (Map&amp;lt;Object,Object&amp;gt;) (vars == null? new HashMap&amp;lt;String,Object&amp;gt;() : vars);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public boolean definesJexlVariable(String name) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return map.containsKey(name);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object getJexlVariable(String name) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return map.get(name);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setJexlVariable(String name, Object value) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map.put(name, value);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;boolean has(String name);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -39,10 +39,10 @@
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.parser.JexlNode;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.parser.TokenMgrError;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.parser.ASTJexlScript;
&lt;br&gt;-import org.apache.commons.jexl2.util.Introspector;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.Uberspect;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.Info;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.JexlMethod;
&lt;br&gt;+
&lt;br&gt;+import org.apache.commons.jexl2.introspection.Uberspect;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.UberspectImpl;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.JexlMethod;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * &amp;lt;p&amp;gt;
&lt;br&gt;@@ -88,39 +88,39 @@
&lt;br&gt;&amp;nbsp; * @since 2.0
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class JexlEngine { &amp;nbsp; &amp;nbsp;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Checks whether a variable is defined in a context.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param context the context
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param name the variable's name
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return true if the variable is defined, false otherwise
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected static boolean isVariableUndefined(JexlContext context, String name) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (context instanceof JexlContext.Nullable) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return !((JexlContext.Nullable) context).definesJexlVariable(name);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return context.getJexlVariable(name) == null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * An empty/static/non-mutable JexlContext used instead of null context.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected static final JexlContext EMPTY_CONTEXT = new JexlContext.Nullable() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected static final JexlContext EMPTY_CONTEXT = new JexlContext() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object getJexlVariable(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object get(String name) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public boolean definesJexlVariable(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public boolean has(String name) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setJexlVariable(String name, Object value) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void set(String name, Object value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new UnsupportedOperationException(&amp;quot;Not supported in void context.&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp;Gets the default instance of Uberspect.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This is lazily initialized to avoid building a default instance if there
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is no use for it. The main reason for not using the default Uberspect instance is to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * be able to use a (low level) introspector created with a given logger
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * instead of the default one.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Implemented as on demand holder idiom.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp;@return Uberspect the default uberspector instance.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static class UberspectHolder {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** The default uberspector that handles all introspection patterns. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private static final Uberspect UBERSPECT = new UberspectImpl(LogFactory.getLog(JexlEngine.class));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * The Uberspect instance.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected final Uberspect uberspect;
&lt;br&gt;@@ -176,20 +176,42 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param log the logger for various messages
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public JexlEngine(Uberspect anUberspect, JexlArithmetic anArithmetic, Map&amp;lt;String, Object&amp;gt; theFunctions, Log log) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.uberspect = anUberspect == null ? getUberspect(log) : anUberspect;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log = LogFactory.getLog(JexlEngine.class);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NullPointerException(&amp;quot;logger can not be null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.logger = log;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.uberspect = anUberspect == null ? Introspector.getUberspect(log) : anUberspect;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.arithmetic = anArithmetic == null ? new JexlArithmetic(true) : anArithmetic;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (theFunctions != null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.functions = theFunctions;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp;Gets the default instance of Uberspect.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This is lazily initialized to avoid building a default instance if there
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is no use for it. The main reason for not using the default Uberspect instance is to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * be able to use a (low level) introspector created with a given logger
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * instead of the default one.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param logger the logger to use for the underlying Uberspect
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return Uberspect the default uberspector instance.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static Uberspect getUberspect(Log logger) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (logger == null || logger.equals(LogFactory.getLog(JexlEngine.class))) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return UberspectHolder.UBERSPECT;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new UberspectImpl(logger);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Gets this engine underlying uberspect.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the uberspect
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Uberspect getUberspect() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return uberspect;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Sets whether this engine reports debugging information when error occurs.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This method is &amp;lt;em&amp;gt;not&amp;lt;/em&amp;gt; thread safe; it should be called as an optional step of the JexlEngine
&lt;br&gt;@@ -259,7 +281,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param loader the class loader to use
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setClassLoader(ClassLoader loader) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uberspect.getIntrospector().setLoader(loader);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uberspect.setClassLoader(loader);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -340,7 +362,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;parsing this expression, or if the expression is neither an
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp;expression or a reference.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Expression createExpression(String expression, Info info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Expression createExpression(String expression, JexlInfo info) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Parse the expression
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASTJexlScript tree = parse(expression, info);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (tree.jjtGetNumChildren() &amp;gt; 1) {
&lt;br&gt;@@ -371,7 +393,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return A {@link Script} which can be executed using a {@link JexlContext}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws JexlException if there is a problem parsing the script.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Script createScript(String scriptText, Info info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Script createScript(String scriptText, JexlInfo info) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (scriptText == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NullPointerException(&amp;quot;scriptText is null&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -399,9 +421,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IOException(&amp;quot;Can't read scriptFile (&amp;quot; + scriptFile.getCanonicalPath() + &amp;quot;)&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BufferedReader reader = new BufferedReader(new FileReader(scriptFile));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Info info = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlInfo info = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (debug) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;info = new Info(scriptFile.getName(), 0, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;info = createInfo(scriptFile.getName(), 0, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return createScript(readerToString(reader), info);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -426,9 +448,9 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BufferedReader reader = new BufferedReader(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new InputStreamReader(connection.getInputStream()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Info info = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlInfo info = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (debug) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;info = new Info(scriptUrl.toString(), 0, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;info = createInfo(scriptUrl.toString(), 0, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return createScript(readerToString(reader), info);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -468,7 +490,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// lets build 1 unique &amp; unused identifiers wrt context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String r0 = &amp;quot;$0&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int s = 0; !isVariableUndefined(context, r0); ++s) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int s = 0; context.has(r0); ++s) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r0 = r0 + s;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expr = r0 + (expr.charAt(0) == '[' ? &amp;quot;&amp;quot; : &amp;quot;.&amp;quot;) + expr + &amp;quot;;&amp;quot;;
&lt;br&gt;@@ -524,10 +546,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// lets build 2 unique &amp; unused identifiers wrt context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String r0 = &amp;quot;$0&amp;quot;, r1 = &amp;quot;$1&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int s = 0; !isVariableUndefined(context, r0); ++s) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int s = 0; context.has(r0); ++s) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r0 = r0 + s;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int s = 0; !isVariableUndefined(context, r1); ++s) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int s = 0; context.has(r1); ++s) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r1 = r1 + s;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// synthetize expr
&lt;br&gt;@@ -560,7 +582,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Object invokeMethod(Object obj, String meth, Object... args) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlException xjexl = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Info info = debugInfo();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlInfo info = debugInfo();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlMethod method = uberspect.getMethod(obj, meth, args, info);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (method == null &amp;&amp; arithmetic.narrowArguments(args)) {
&lt;br&gt;@@ -618,7 +640,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected Object doCreateInstance(Object clazz, Object...args) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlException xjexl = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object result = null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Info info = debugInfo();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlInfo info = debugInfo();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Constructor&amp;lt;?&amp;gt; ctor = uberspect.getConstructor(clazz, args, info);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ctor == null &amp;&amp; arithmetic.narrowArguments(args)) {
&lt;br&gt;@@ -748,7 +770,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the parsed tree
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws JexlException if any error occured during parsing
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected ASTJexlScript parse(CharSequence expression, Info info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected ASTJexlScript parse(CharSequence expression, JexlInfo info) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String expr = cleanExpression(expression);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASTJexlScript tree = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized (parser) {
&lt;br&gt;@@ -778,13 +800,24 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates a JexlInfo instance.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param fn url/file name
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param l line number
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param c column number
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return a JexlInfo instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected JexlInfo createInfo(String fn, int l, int c) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new DebugInfo(fn, l, c);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates and fills up debugging information.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This gathers the class, method and line number of the first calling method
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * not owned by JexlEngine, UnifiedJEXL or {Script,Expression}Factory.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return an Info if debug is set, null otherwise
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected Info debugInfo() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Info info = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected JexlInfo debugInfo() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlInfo info = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (debug) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Throwable xinfo = new Throwable();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xinfo.fillInStackTrace();
&lt;br&gt;@@ -810,7 +843,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (se != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;info = new Info(se.getClassName() + &amp;quot;.&amp;quot; + se.getMethodName(), se.getLineNumber(), 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;info = createInfo(se.getClassName() + &amp;quot;.&amp;quot; + se.getMethodName(), se.getLineNumber(), 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return info;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlException.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlException.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlException.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlException.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlException.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -17,7 +17,6 @@
&lt;br&gt;&amp;nbsp;package org.apache.commons.jexl2;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.parser.JexlNode;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.Info;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Wraps any error that might occur during interpretation of a script or expression.
&lt;br&gt;@@ -29,7 +28,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** The point of origin for this exception. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected final JexlNode mark;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** The debug info. */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected final Info info;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected final JexlInfo info;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** A marker to use in NPEs stating a null operand error. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String NULL_OPERAND = &amp;quot;jexl.null&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -61,7 +60,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param dbg the debugging information associated
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param msg the error message
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JexlException(Info dbg, String msg) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JexlException(JexlInfo dbg, String msg) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(msg);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mark = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;info = dbg;
&lt;br&gt;@@ -73,7 +72,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param msg the error message
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param cause the exception causing the error
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JexlException(Info dbg, String msg, Throwable cause) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JexlException(JexlInfo dbg, String msg, Throwable cause) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(msg, cause);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mark = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;info = dbg;
&lt;br&gt;&lt;br&gt;Copied: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlInfo.java (from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/DebugInfo.java)
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlInfo.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlInfo.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/DebugInfo.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlInfo.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlInfo.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/DebugInfo.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/DebugInfo.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlInfo.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -14,20 +14,15 @@
&lt;br&gt;&amp;nbsp; * See the License for the specific language governing permissions and
&lt;br&gt;&amp;nbsp; * limitations under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-package org.apache.commons.jexl2.util.introspection;
&lt;br&gt;+package org.apache.commons.jexl2;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;- * A little class to abstract debugging info.
&lt;br&gt;+ * Interface for objects carrying information usefull to debugging.
&lt;br&gt;+ * @since 1.0
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-public interface DebugInfo {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/** A default debug info with (oviously) no information. */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;DebugInfo NONE = new DebugInfo() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String debugString() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return &amp;quot;?@?:?&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+public interface JexlInfo {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Formats this information.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Formats this information for debugging purpose.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a human readable string.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;String debugString();
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Main.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Main.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Main.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Main.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/Main.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -43,8 +43,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void main(String[] args) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine engine = new JexlEngine();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext context = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.setJexlVariable(&amp;quot;args&amp;quot;, args);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext context = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.set(&amp;quot;args&amp;quot;, args);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (args.length == 1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Script script = engine.createScript(new File(args[0]));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object value = script.execute(context);
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/MapContext.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/MapContext.java?rev=885553&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/MapContext.java?rev=885553&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/MapContext.java (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/MapContext.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -0,0 +1,62 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.commons.jexl2;
&lt;br&gt;+
&lt;br&gt;+import java.util.HashMap;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Wraps a map in a context.
&lt;br&gt;+ * &amp;lt;p&amp;gt;Each entry in the map is considered a variable name, value pair.&amp;lt;/p&amp;gt;
&lt;br&gt;+ */
&lt;br&gt;+public class MapContext implements JexlContext {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * The wrapped variable map.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected final Map&amp;lt;String, Object&amp;gt; map;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates a MapContext on an automatically allocated underlying HashMap.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public MapContext() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this(null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates a MapContext wrapping an existing user provided map.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param vars the variable map
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public MapContext(Map&amp;lt;String, Object&amp;gt; vars) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map = vars == null ? new HashMap&amp;lt;String, Object&amp;gt;() : vars;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public boolean has(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return map.containsKey(name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Object get(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return map.get(name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void set(String name, Object value) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map.put(name, value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/MapContext.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/UnifiedJEXL.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -19,7 +19,6 @@
&lt;br&gt;&amp;nbsp;import java.util.ArrayList;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.parser.JexlNode;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.parser.StringParser;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.Info;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * An evaluator similar to the Unified EL evaluator used in JSP/JSF based on JEXL.
&lt;br&gt;@@ -801,7 +800,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the AST
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws JexlException if an error occur during parsing
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private JexlNode toNode(CharSequence expression, Info info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private JexlNode toNode(CharSequence expression, JexlInfo info) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jexl.parse(expression, info);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Copied: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlMethod.java (from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlMethod.java)
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlMethod.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlMethod.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlMethod.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlMethod.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlMethod.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlMethod.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlMethod.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlMethod.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -15,7 +15,7 @@
&lt;br&gt;&amp;nbsp; * limitations under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.commons.jexl2.util.introspection;
&lt;br&gt;+package org.apache.commons.jexl2.introspection;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Interface used for regular method invocation.
&lt;br&gt;@@ -33,13 +33,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * invocation method - called when the method invocation should be performed
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * and a value returned.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param o the object
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param obj the object
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param params method parameters.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the result
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws Exception on any error.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Object invoke(Object o, Object[] params) throws Exception;
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Object invoke(Object obj, Object[] params) throws Exception;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * specifies if this JexlMethod is cacheable and able to be reused for this
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * class of object it was returned for.
&lt;br&gt;&lt;br&gt;Copied: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertyGet.java (from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertyGet.java)
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertyGet.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertyGet.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertyGet.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertyGet.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertyGet.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertyGet.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertyGet.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertyGet.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -15,7 +15,7 @@
&lt;br&gt;&amp;nbsp; * limitations under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.commons.jexl2.util.introspection;
&lt;br&gt;+package org.apache.commons.jexl2.introspection;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Interface for getting values that appear to be properties.
&lt;br&gt;@@ -31,11 +31,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * invocation method - called when the 'get action' should be performed and
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * a value returned.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param o the object to get the property from.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param obj the object to get the property from.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the property value.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws Exception on any error.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Object invoke(Object o) throws Exception;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Object invoke(Object obj) throws Exception;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Specifies if this JexlPropertyGet is cacheable and able to be reused for
&lt;br&gt;&lt;br&gt;Copied: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertySet.java (from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertySet.java)
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertySet.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertySet.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertySet.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertySet.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertySet.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertySet.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/JexlPropertySet.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/JexlPropertySet.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -15,7 +15,7 @@
&lt;br&gt;&amp;nbsp; * limitations under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.commons.jexl2.util.introspection;
&lt;br&gt;+package org.apache.commons.jexl2.introspection;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Interface used for setting values that appear to be properties.
&lt;br&gt;&lt;br&gt;Copied: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/Uberspect.java (from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Uberspect.java)
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/Uberspect.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/Uberspect.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Uberspect.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/Uberspect.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/Uberspect.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Uberspect.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/Uberspect.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/Uberspect.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -15,10 +15,11 @@
&lt;br&gt;&amp;nbsp; * limitations under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.commons.jexl2.util.introspection;
&lt;br&gt;+package org.apache.commons.jexl2.introspection;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import java.util.Iterator;
&lt;br&gt;&amp;nbsp;import java.lang.reflect.Constructor;
&lt;br&gt;+import org.apache.commons.jexl2.JexlInfo;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * 'Federated' introspection/reflection interface to allow the introspection
&lt;br&gt;@@ -29,18 +30,11 @@
&lt;br&gt;&amp;nbsp; * @version $Id$
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public interface Uberspect {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/** Gets underlying introspector.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the introspector
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Sets the class loader to use when getting a constructor with
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * a class name parameter.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param loader the class loader
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Introspector getIntrospector();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * To support iteratives - #foreach().
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param info template info.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param obj to get the iterator for.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return an iterator over obj.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Iterator&amp;lt;?&amp;gt; getIterator(Object obj, DebugInfo info);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;void setClassLoader(ClassLoader loader);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Returns a class constructor.
&lt;br&gt;@@ -49,35 +43,44 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param info template info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link Constructor}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Constructor&amp;lt;?&amp;gt; getConstructor(Object ctorHandle, Object[] args, DebugInfo info);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Constructor&amp;lt;?&amp;gt; getConstructor(Object ctorHandle, Object[] args, JexlInfo info);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Returns a general method, corresponding to $foo.bar( $woogie ).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Returns a JexlMethod.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param obj the object
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param method the method name
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param args method arguments
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param info template info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link JexlMethod}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;JexlMethod getMethod(Object obj, String method, Object[] args, DebugInfo info);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;JexlMethod getMethod(Object obj, String method, Object[] args, JexlInfo info);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Property getter - returns VelPropertyGet appropos for #set($foo =
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * $bar.woogie).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Property getter.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Returns JexlPropertyGet appropos for ${bar.woogie}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param obj the object to get the property from.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param identifier property name
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param info template info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link JexlPropertyGet}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;JexlPropertyGet getPropertyGet(Object obj, Object identifier, DebugInfo info);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;JexlPropertyGet getPropertyGet(Object obj, Object identifier, JexlInfo info);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Property setter - returns VelPropertySet appropos for #set($foo.bar =
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;quot;geir&amp;quot;).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Property setter.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;returns JelPropertySet appropos for ${foo.bar = &amp;quot;geir&amp;quot;}&amp;lt;/p&amp;gt;.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param obj the object to get the property from.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param identifier property name
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param arg value to set.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param info template info
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link JexlPropertySet}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;JexlPropertySet getPropertySet(Object obj, Object identifier, Object arg, DebugInfo info);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;JexlPropertySet getPropertySet(Object obj, Object identifier, Object arg, JexlInfo info);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Gets an iterator from an object.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param obj to get the iterator for.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param info some info.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return an iterator over obj.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Iterator&amp;lt;?&amp;gt; getIterator(Object obj, JexlInfo info);
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Copied: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/UberspectImpl.java (from r884622, commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java)
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/UberspectImpl.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/UberspectImpl.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/UberspectImpl.java?p2=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/UberspectImpl.java&amp;p1=commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java&amp;r1=884622&amp;r2=885553&amp;rev=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/UberspectImpl.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -15,16 +15,17 @@
&lt;br&gt;&amp;nbsp; * limitations under the License.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-package org.apache.commons.jexl2.util.introspection;
&lt;br&gt;+package org.apache.commons.jexl2.introspection;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import java.lang.reflect.InvocationTargetException;
&lt;br&gt;-import java.lang.reflect.Method;
&lt;br&gt;+import org.apache.commons.jexl2.util.Introspector;
&lt;br&gt;&amp;nbsp;import java.lang.reflect.Constructor;
&lt;br&gt;-import java.util.Collection;
&lt;br&gt;&amp;nbsp;import java.util.Enumeration;
&lt;br&gt;&amp;nbsp;import java.util.Iterator;
&lt;br&gt;-import java.util.Map;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+import org.apache.commons.jexl2.JexlInfo;
&lt;br&gt;+import org.apache.commons.jexl2.JexlException;
&lt;br&gt;+import org.apache.commons.jexl2.util.AbstractExecutor;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.util.ArrayIterator;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.util.EnumerationIterator;
&lt;br&gt;&amp;nbsp;import org.apache.commons.logging.Log;
&lt;br&gt;@@ -39,109 +40,74 @@
&lt;br&gt;&amp;nbsp; * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26580478&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;henning@...&lt;/a&gt;&amp;quot;&amp;gt;Henning P. Schmiedehausen&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp; * @version $Id$
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-public class UberspectImpl extends org.apache.commons.jexl2.util.Introspector implements Uberspect {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Introspector getIntrospector() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return introspector.get();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;+public class UberspectImpl extends Introspector implements Uberspect {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates a new UberspectImpl.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param runtimeLogger the logger used for all logging needs
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public UberspectImpl(Log runtimeLogger) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this(runtimeLogger, new Introspector(runtimeLogger));
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates a new UberspectImpl.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param runtimeLogger the logger used for all logging needs
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param intro the introspector to use
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public UberspectImpl(Log runtimeLogger, Introspector intro) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(runtimeLogger, intro);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(runtimeLogger);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Iterator&amp;lt;?&amp;gt; getIterator(Object obj, DebugInfo info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Iterator&amp;lt;?&amp;gt; getIterator(Object obj, JexlInfo info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj instanceof Iterator&amp;lt;?&amp;gt;) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((Iterator&amp;lt;?&amp;gt;) obj);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj.getClass().isArray()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new ArrayIterator(obj);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (obj instanceof Collection&amp;lt;?&amp;gt;) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((Collection&amp;lt;?&amp;gt;) obj).iterator();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (obj instanceof Map&amp;lt;?,?&amp;gt;) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj instanceof Map&amp;lt;?,?&amp;gt;) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((Map&amp;lt;?,?&amp;gt;) obj).values().iterator();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (obj instanceof Iterator&amp;lt;?&amp;gt;) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.warn(info.debugString()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;The iterative is not resetable; if used more than once, &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;this may lead to unexpected results.&amp;quot;);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((Iterator&amp;lt;?&amp;gt;) obj);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (obj instanceof Enumeration&amp;lt;?&amp;gt;) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.warn(info.debugString()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;The iterative is not resetable; if used more than once, &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;this may lead to unexpected results.&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj instanceof Enumeration&amp;lt;?&amp;gt;) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new EnumerationIterator&amp;lt;Object&amp;gt;((Enumeration&amp;lt;Object&amp;gt;) obj);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj instanceof Iterable&amp;lt;?&amp;gt;) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((Iterable&amp;lt;?&amp;gt;) obj).iterator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// look for an iterator() method to support the JDK5 Iterable
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// interface or any user tools/DTOs that want to work in
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// foreach without implementing the Collection interface
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Class&amp;lt;?&amp;gt; type = obj.getClass();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Method iter = type.getMethod(&amp;quot;iterator&amp;quot;, (Class&amp;lt;?&amp;gt;[]) null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Class&amp;lt;?&amp;gt; returns = iter.getReturnType();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Iterator.class.isAssignableFrom(returns)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Iterator&amp;lt;?&amp;gt;) iter.invoke(obj, (Object[])null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.error(info.debugString()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;iterator() method does not return a true Iterator.&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// CSOFF: EmptyBlock
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NoSuchMethodException nsme) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// eat this one, but let all other exceptions thru
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalArgumentException e) { // CSON: EmptyBlock
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new RuntimeException(e);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalAccessException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new RuntimeException(e);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (InvocationTargetException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new RuntimeException(e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AbstractExecutor.Method it = getMethodExecutor(obj, &amp;quot;iterator&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (it != null &amp;&amp; Iterator.class.isAssignableFrom(it.getReturnType())) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Iterator&amp;lt;Object&amp;gt;) it.execute(obj, null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch(Exception xany) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new JexlException(info, &amp;quot;unable to generate iterator()&amp;quot;, xany);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* &amp;nbsp;we have no clue what this is &amp;nbsp;*/
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.warn(info.toString()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;Could not determine type of iterator&amp;quot;);
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; public Constructor&amp;lt;?&amp;gt; getConstructor(Object ctorHandle, Object[] args, DebugInfo info) {
&lt;br&gt;+ &amp;nbsp; public Constructor&amp;lt;?&amp;gt; getConstructor(Object ctorHandle, Object[] args, JexlInfo info) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getConstructor(ctorHandle, args);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JexlMethod getMethod(Object obj, String method, Object[] args, DebugInfo info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JexlMethod getMethod(Object obj, String method, Object[] args, JexlInfo info) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getMethodExecutor(obj, method, args);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JexlPropertyGet getPropertyGet(Object obj, Object identifier, DebugInfo info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JexlPropertyGet getPropertyGet(Object obj, Object identifier, JexlInfo info) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getGetExecutor(obj, identifier);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JexlPropertySet getPropertySet(final Object obj, final Object identifier, Object arg, DebugInfo info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JexlPropertySet getPropertySet(final Object obj, final Object identifier, Object arg, JexlInfo info) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getSetExecutor(obj, identifier, arg);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Added: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/package.html
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/package.html?rev=885553&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/package.html?rev=885553&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/package.html (added)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/package.html Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -0,0 +1,35 @@
&lt;br&gt;+&amp;lt;html&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp; Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ &amp;nbsp; contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ &amp;nbsp; this work for additional information regarding copyright ownership.
&lt;br&gt;+ &amp;nbsp; The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ &amp;nbsp; (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ &amp;nbsp; the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ &amp;nbsp; distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ &amp;nbsp; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ &amp;nbsp; See the License for the specific language governing permissions and
&lt;br&gt;+ &amp;nbsp; limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+ &amp;lt;head&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;title&amp;gt;Package Documentation for org.apache.commons.jexl2.introspection Package&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;lt;/head&amp;gt;
&lt;br&gt;+ &amp;lt;body bgcolor=&amp;quot;white&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp;Provides high-level introspective services.
&lt;br&gt;+ &amp;nbsp;&amp;lt;br/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp;The Uberspect, JexlMethod, JexlPropertyGet and JexlPropertySet interfaces
&lt;br&gt;+ &amp;nbsp;form the exposed face of introspective services.
&lt;br&gt;+ &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp;The Uberspectimpl is the concrete class implementing the Uberspect interface.
&lt;br&gt;+ &amp;nbsp;Deriving from this class is the preferred way of augmenting Jexl introspective
&lt;br&gt;+ &amp;nbsp;capabilities when special needs to be fullfilled or when default behaviors
&lt;br&gt;+ &amp;nbsp;need to be modified.
&lt;br&gt;+ &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;/body&amp;gt;
&lt;br&gt;+&amp;lt;/html&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/introspection/package.html
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/package.html
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/package.html?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/package.html?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/package.html (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/package.html Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -59,7 +59,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Create a context and add data
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;foo&amp;quot;, new Foo() );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Now evaluate the expression, getting the result
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;@@ -135,7 +135,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlEngine jexl = nex JexlEngine();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;quuxClass&amp;quot;, quux.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;quuxClass&amp;quot;, quux.class);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression create = jexl.createExpression(&amp;quot;quux = new(quuxClass, 'xuuq', 100)&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression assign = jexl.createExpression(&amp;quot;quux.froboz.value = 10&amp;quot;);
&lt;br&gt;@@ -220,7 +220,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setFunctions(funcs);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;pi&amp;quot;, Math.PI);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;pi&amp;quot;, Math.PI);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e = JEXL.createExpression(&amp;quot;math:cos(pi)&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = e.evaluate(jc);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/JexlNode.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/JexlNode.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/JexlNode.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/JexlNode.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/JexlNode.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -16,15 +16,14 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;package org.apache.commons.jexl2.parser;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.Info;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.DebugInfo;
&lt;br&gt;+import org.apache.commons.jexl2.JexlInfo;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Base class for parser nodes - holds an 'image' of the token for later use.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * @since 2.0
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-public abstract class JexlNode extends SimpleNode implements DebugInfo {
&lt;br&gt;+public abstract class JexlNode extends SimpleNode implements JexlInfo {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** token value. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public String image;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -36,11 +35,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(p, id);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Info getInfo() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JexlInfo getInfo() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlNode node = this;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (node != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (node.value instanceof Info) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Info) node.value;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (node.value instanceof JexlInfo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (JexlInfo) node.value;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node = node.jjtGetParent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -49,7 +48,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public String debugString() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Info info = getInfo();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlInfo info = getInfo();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return info != null? info.debugString() : &amp;quot;&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -39,11 +39,11 @@
&lt;br&gt;&amp;nbsp;package org.apache.commons.jexl2.parser;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import java.io.Reader;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.Info;
&lt;br&gt;+import org.apache.commons.jexl2.JexlInfo;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;public class Parser extends StringParser
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public ASTJexlScript parse(Reader reader, Info info)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ASTJexlScript parse(Reader reader, JexlInfo info)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws ParseException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ReInit(reader);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -159,7 +159,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Current implementation only gives access to ENGINE_SCOPE binding.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static class JexlContextWrapper implements JexlContext.Nullable {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static class JexlContextWrapper implements JexlContext {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** The engine context. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private final ScriptContext engineContext;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -172,12 +172,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object getJexlVariable(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Object get(String name) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return engineContext.getAttribute(name);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setJexlVariable(String name, Object value) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void set(String name, Object value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int scope = engineContext.getAttributesScope(name);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (scope == -1) { // not found, default to engine
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;scope = ScriptContext.ENGINE_SCOPE;
&lt;br&gt;@@ -186,7 +186,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public boolean definesJexlVariable(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public boolean has(String name) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bindings bnd = engineContext.getBindings(ScriptContext.ENGINE_SCOPE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return bnd.containsKey(name);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/AbstractExecutor.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/AbstractExecutor.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/AbstractExecutor.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/AbstractExecutor.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/AbstractExecutor.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -16,9 +16,9 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;package org.apache.commons.jexl2.util;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.util.introspection.MethodKey;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.JexlMethod;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.JexlPropertySet;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.JexlPropertyGet;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.JexlMethod;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.JexlPropertySet;
&lt;br&gt;+import org.apache.commons.jexl2.introspection.JexlPropertyGet;
&lt;br&gt;&amp;nbsp;import java.lang.reflect.InvocationTargetException;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;@@ -306,8 +306,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public final Object invoke(Object obj, Object[] args) throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return execute(obj, args);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public final Object invoke(Object obj, Object[] params) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return execute(obj, params);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -20,12 +20,10 @@
&lt;br&gt;&amp;nbsp;import java.lang.reflect.Method;
&lt;br&gt;&amp;nbsp;import java.lang.reflect.Constructor;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.Uberspect;
&lt;br&gt;-import org.apache.commons.jexl2.util.introspection.UberspectImpl;
&lt;br&gt;+import org.apache.commons.jexl2.util.introspection.IntrospectorBase;
&lt;br&gt;&amp;nbsp;import org.apache.commons.jexl2.util.introspection.MethodKey;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.commons.logging.Log;
&lt;br&gt;-import org.apache.commons.logging.LogFactory;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * &amp;nbsp;Default introspection services.
&lt;br&gt;@@ -33,103 +31,18 @@
&lt;br&gt;&amp;nbsp; * @since 1.0
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class Introspector {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static class UberspectHolder{// Implements init on demand holder idiom
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** The default uberspector that handles all introspection patterns. */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private static final Uberspect UBERSPECT = new UberspectImpl(LogFactory.getLog(Introspector.class));
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** The logger to use for all warnings &amp; errors. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected final Log rlog;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/** The (low level) introspector to use for introspection services. */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected final Reference introspector;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * A soft reference to an Introspector.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * If memory pressure becomes critical, this will allow the introspector to be GCed;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * in turn, classes it introspected that are no longer in use may be GCed as well.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected final class Reference {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * The introspector logger.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private final Log logger;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * The soft reference to the introspector currently in use.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private volatile SoftReference&amp;lt;org.apache.commons.jexl2.util.introspection.Introspector&amp;gt; ref;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates a new instance.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param theLogger logger used by the underlying introspector instance
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param is the underlying introspector instance
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected Reference(Log theLogger, org.apache.commons.jexl2.util.introspection.Introspector is) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger = theLogger;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ref = new SoftReference&amp;lt;org.apache.commons.jexl2.util.introspection.Introspector&amp;gt;(is);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates a new instance.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param theLogger logger used by the underlying introspector instance
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected Reference(Log theLogger) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this(theLogger, new org.apache.commons.jexl2.util.introspection.Introspector(theLogger));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Gets the current introspector.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the reference has been collected, this method will recreate the underlying introspector.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the introspector
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// CSOFF: DoubleCheckedLocking
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public org.apache.commons.jexl2.util.introspection.Introspector get() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.commons.jexl2.util.introspection.Introspector intro = ref.get();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (intro == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// double checked locking (fixed by Java 5 memory model).
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(this) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;intro = ref.get();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (intro == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;intro = new org.apache.commons.jexl2.util.introspection.Introspector(logger);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ref = new SoftReference&amp;lt;org.apache.commons.jexl2.util.introspection.Introspector&amp;gt;(intro);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return intro;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// CSON: DoubleCheckedLocking
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;Gets the default instance of Uberspect.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This is lazily initialized to avoid building a default instance if there
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * is no use for it. The main reason for not using the default Uberspect instance is to
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * be able to use a (low level) introspector created with a given logger
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * instead of the default one.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;@return Uberspect the default uberspector instance.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static Uberspect getUberspect() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return UberspectHolder.UBERSPECT;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates a new instance of Uberspect.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param logger the logger used by this Uberspect.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the new instance
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static Uberspect getUberspect(Log logger) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new UberspectImpl(logger);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** The soft reference to the introspector currently in use. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private volatile SoftReference&amp;lt;IntrospectorBase&amp;gt; ref;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates an introspector.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param log the logger to use for warnings.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param is the low level introspector.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Introspector(Log log, org.apache.commons.jexl2.util.introspection.Introspector is) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected Introspector(Log log) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog = log;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;introspector = new Reference(log, is);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ref = new SoftReference&amp;lt;IntrospectorBase&amp;gt;(null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -161,6 +74,37 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Gets the current introspector base.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the reference has been collected, this method will recreate the underlying introspector.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the introspector
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// CSOFF: DoubleCheckedLocking
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected final IntrospectorBase base() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IntrospectorBase intro = ref.get();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (intro == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// double checked locking (fixed by Java 5 memory model).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(this) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;intro = ref.get();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (intro == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;intro = new IntrospectorBase(rlog);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ref = new SoftReference&amp;lt;IntrospectorBase&amp;gt;(intro);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return intro;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// CSON: DoubleCheckedLocking
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Sets the underlying class loader for class solving resolution.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param loader the loader to use
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setClassLoader(ClassLoader loader) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;base().setLoader(loader);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Gets the method defined by &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt; for the Class &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;@@ -174,7 +118,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * CSOFF: RedundantThrows
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected final Method getMethod(Class&amp;lt;?&amp;gt; c, String name, Object[] params) throws IllegalArgumentException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return introspector.get().getMethod(c, new MethodKey(name, params));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return base().getMethod(c, new MethodKey(name, params));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -188,7 +132,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * CSOFF: RedundantThrows
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected final Method getMethod(Class&amp;lt;?&amp;gt; c, MethodKey key) throws IllegalArgumentException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return introspector.get().getMethod(c, key);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return base().getMethod(c, key);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Gets the accessible methods names known for a given class.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param c the class
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the class method names
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public final String[] getMethodNames(Class&amp;lt;?&amp;gt; c) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return base().getMethodNames(c);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -208,7 +162,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return introspector.get().getConstructor(clazz, new MethodKey(className, args));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return base().getConstructor(clazz, new MethodKey(className, args));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -225,7 +179,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Return a property getter.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param obj the object to get the property from.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param obj the object to base the property from.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param identifier property name
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link AbstractExecutor.Get}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;@@ -271,7 +225,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Return a property setter.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param obj the object to get the property from.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param obj the object to base the property from.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param identifier property name (or identifier)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param arg value to set
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link AbstractExecutor.Set}.
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/IntrospectorBase.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/IntrospectorBase.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/IntrospectorBase.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/IntrospectorBase.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/IntrospectorBase.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -90,14 +90,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param key &amp;nbsp; Key of the method being searched for
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return The desired Method object.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException &amp;nbsp; &amp;nbsp; When the parameters passed in can not be used for introspection.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws MethodKey.AmbiguousException When the method map contains more than
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;one match for the requested signature.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//CSOFF: RedundantThrows
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Method getMethod(Class&amp;lt;?&amp;gt; c, MethodKey key) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassMap classMap = getMap(c);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return classMap.findMethod(key);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassMap classMap = getMap(c);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return classMap.findMethod(key);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (MethodKey.AmbiguousException ae) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// whoops. &amp;nbsp;Ambiguous. &amp;nbsp;Make a nice log message and return null...
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rlog != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.error(&amp;quot;ambiguous method invocation: &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + c.getName() + &amp;quot;.&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + key.debugString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// CSON: RedundantThrows
&lt;br&gt;@@ -113,7 +121,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassMap classMap = getMap(c);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return classMap.getMethodNames();
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -150,8 +157,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param key &amp;nbsp; Key of the constructor being searched for
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return The desired Constructor object.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException &amp;nbsp; &amp;nbsp; When the parameters passed in can not be used for introspection.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws MethodKey.AmbiguousException When the method map contains more than
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;one match for the requested signature.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Constructor&amp;lt;?&amp;gt; getConstructor(final MethodKey key) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getConstructor(null, key);
&lt;br&gt;@@ -163,57 +168,64 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param key &amp;nbsp; Key of the constructor being searched for
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return The desired Constructor object.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException &amp;nbsp; &amp;nbsp; When the parameters passed in can not be used for introspection.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws MethodKey.AmbiguousException When the method map contains more than
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;one match for the requested signature.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//CSOFF: RedundantThrows
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Constructor&amp;lt;?&amp;gt; getConstructor(final Class&amp;lt;?&amp;gt; c, final MethodKey key) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Constructor&amp;lt;?&amp;gt; ctor = null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(constructorsMap) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctor = constructorsMap.get(key);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// that's a clear miss
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (CTOR_MISS.equals(ctor)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// let's introspect...
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ctor == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final String cname = key.getMethod();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// do we know about this class?
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Class&amp;lt;?&amp;gt; clazz = constructibleClasses.get(cname);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// do find the most specific ctor
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (clazz == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (c != null &amp;&amp; c.getName().equals(key.getMethod())) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clazz = c;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Constructor&amp;lt;?&amp;gt; ctor = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized(constructorsMap) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctor = constructorsMap.get(key);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// that's a clear miss
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (CTOR_MISS.equals(ctor)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// let's introspect...
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ctor == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final String cname = key.getMethod();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// do we know about this class?
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Class&amp;lt;?&amp;gt; clazz = constructibleClasses.get(cname);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// do find the most specific ctor
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (clazz == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (c != null &amp;&amp; c.getName().equals(key.getMethod())) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clazz = c;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clazz = loader.loadClass(cname);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// add it to list of known loaded classes
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;constructibleClasses.put(cname, clazz);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Constructor&amp;lt;?&amp;gt;&amp;gt; l = new LinkedList&amp;lt;Constructor&amp;lt;?&amp;gt;&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(Constructor&amp;lt;?&amp;gt; ictor : clazz.getConstructors()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l.add(ictor);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// try to find one
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctor = key.getMostSpecificConstructor(l);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ctor != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;constructorsMap.put(key, ctor);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clazz = loader.loadClass(cname);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;constructorsMap.put(key, CTOR_MISS);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// add it to list of known loaded classes
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;constructibleClasses.put(cname, clazz);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Constructor&amp;lt;?&amp;gt;&amp;gt; l = new LinkedList&amp;lt;Constructor&amp;lt;?&amp;gt;&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(Constructor&amp;lt;?&amp;gt; ictor : clazz.getConstructors()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l.add(ictor);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// try to find one
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctor = key.getMostSpecificConstructor(l);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ctor != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;constructorsMap.put(key, ctor);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;constructorsMap.put(key, CTOR_MISS);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch(ClassNotFoundException xnotfound) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rlog.isDebugEnabled()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.debug(&amp;quot;could not load class &amp;quot; + cname, xnotfound);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch(ClassNotFoundException xnotfound) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rlog.isDebugEnabled()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.debug(&amp;quot;could not load class &amp;quot; + cname, xnotfound);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctor = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch(MethodKey.AmbiguousException xambiguous) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.warn(&amp;quot;ambiguous ctor detected for &amp;quot; + cname, xambiguous);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctor = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctor = null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch(MethodKey.AmbiguousException xambiguous) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.warn(&amp;quot;ambiguous ctor detected for &amp;quot; + cname, xambiguous);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctor = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ctor;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (MethodKey.AmbiguousException ae) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// whoops. &amp;nbsp;Ambiguous. &amp;nbsp;Make a nice log message and return null...
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rlog != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.error(&amp;quot;ambiguous constructor invocation: new &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + key.debugString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ctor;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// CSON: RedundantThrows
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/package.html
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/package.html?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/package.html?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/package.html (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/package.html Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -19,37 +19,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Package Documentation for org.apache.commons.jexl2.introspection Package&amp;lt;/title&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;lt;/head&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;lt;body bgcolor=&amp;quot;white&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp;Provides low &amp;amp; high-level introspective services.
&lt;br&gt;- &amp;nbsp;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;lt;ul&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#low&amp;quot;&amp;gt;Low level&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#high&amp;quot;&amp;gt;High level&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;lt;/ul&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp;Provides low-level introspective services.
&lt;br&gt;+ &amp;nbsp;&amp;lt;br/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;low&amp;quot;&amp;gt;Low level&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;- &amp;nbsp;The IntrospectorBase, Introspector, ClassMap, IntrospectionUtils form the
&lt;br&gt;+ &amp;nbsp;The IntrospectorBase, ClassMap, MethodKey, MethodMap form the
&lt;br&gt;&amp;nbsp; &amp;nbsp;base of the introspection service. They allow to describe classes and their
&lt;br&gt;- &amp;nbsp;methods, keeping them in a cache (@see Introspector) to speed up property
&lt;br&gt;+ &amp;nbsp;methods, keeping them in a cache (@see IntrospectorBase) to speed up property
&lt;br&gt;&amp;nbsp; &amp;nbsp;getters/setters and method discovery used during expression evaluation.
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;The cache materialized in Introspector creates one entry per class containing a map of all
&lt;br&gt;&amp;nbsp; &amp;nbsp;accessible public methods keyed by name and signature.
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp;&amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;high&amp;quot;&amp;gt;High level&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;
&lt;br&gt;- &amp;nbsp;
&lt;br&gt;- &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;- &amp;nbsp;The Uberspect, JexlMethod, JexlPropertyGet and JexlPropertySet interfaces
&lt;br&gt;- &amp;nbsp;form the exposed face of introspective services.
&lt;br&gt;- &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;- &amp;nbsp;The Uberspectimpl is the concrete class implementing the Uberspect interface.
&lt;br&gt;- &amp;nbsp;Deriving from this class is the preferred way of augmenting Jexl introspective
&lt;br&gt;- &amp;nbsp;capabilities when special needs to be fullfilled or when default behaviors
&lt;br&gt;- &amp;nbsp;need to be modified.
&lt;br&gt;- &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/body&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/html&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArithmeticTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArithmeticTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArithmeticTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArithmeticTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArithmeticTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -160,7 +160,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testDivideByZero() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String,Object&amp;gt; vars = new HashMap&amp;lt;String,Object&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext context = new JexlContext.Mapped(vars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext context = new MapContext(vars);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;vars.put(&amp;quot;aByte&amp;quot;, new Byte((byte) 1));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;vars.put(&amp;quot;aShort&amp;quot;, new Short((short) 2));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;vars.put(&amp;quot;aInteger&amp;quot;, new Integer(3));
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayLiteralTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayLiteralTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayLiteralTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayLiteralTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayLiteralTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -26,7 +26,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testLiteralWithStrings() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;[ 'foo' , 'bar' ]&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] check = { &amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot; };
&lt;br&gt;@@ -35,7 +35,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testLiteralWithOneEntry() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;[ 'foo' ]&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] check = { &amp;quot;foo&amp;quot; };
&lt;br&gt;@@ -44,7 +44,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testLiteralWithNumbers() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;[ 5.0 , 10 ]&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] check = { new Float(5), new Integer(10) };
&lt;br&gt;@@ -53,7 +53,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testLiteralWithIntegers() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;[ 5 , 10 ]&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int[] check = { 5, 10 };
&lt;br&gt;@@ -62,7 +62,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testSizeOfSimpleArrayLiteral() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;size([ 'foo' , 'bar' ])&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( new Integer( 2 ), o );
&lt;br&gt;@@ -70,7 +70,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void notestCallingMethodsOnNewMapLiteral() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;size({ 'foo' : 'bar' }.values())&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( new Integer( 1 ), o );
&lt;br&gt;@@ -78,7 +78,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testNotEmptySimpleArrayLiteral() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression( &amp;quot;empty([ 'foo' , 'bar' ])&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate( jc );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse( ( (Boolean) o ).booleanValue() );
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/AssignTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/AssignTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/AssignTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/AssignTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/AssignTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -79,7 +79,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testAntish() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression assign = ENGINE.createExpression(&amp;quot;froboz.value = 10&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression check = ENGINE.createExpression(&amp;quot;froboz.value&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = assign.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 10&amp;quot;, new Integer(10), o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = check.evaluate(jc);
&lt;br&gt;@@ -89,9 +89,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBeanish() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression assign = ENGINE.createExpression(&amp;quot;froboz.value = 10&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression check = ENGINE.createExpression(&amp;quot;froboz.value&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Froboz froboz = new Froboz(-169);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;froboz&amp;quot;, froboz);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;froboz&amp;quot;, froboz);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = assign.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 10&amp;quot;, new Integer(10), o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = check.evaluate(jc);
&lt;br&gt;@@ -100,9 +100,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testAmbiguous() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression assign = ENGINE.createExpression(&amp;quot;froboz.nosuchbean = 10&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Froboz froboz = new Froboz(-169);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;froboz&amp;quot;, froboz);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;froboz&amp;quot;, froboz);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = assign.evaluate(jc);
&lt;br&gt;@@ -120,9 +120,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testArray() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression assign = ENGINE.createExpression(&amp;quot;froboz[\&amp;quot;value\&amp;quot;] = 10&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression check = ENGINE.createExpression(&amp;quot;froboz[\&amp;quot;value\&amp;quot;]&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Froboz froboz = new Froboz(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;froboz&amp;quot;, froboz);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;froboz&amp;quot;, froboz);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = assign.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is not 10&amp;quot;, new Integer(10), o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o = check.evaluate(jc);
&lt;br&gt;@@ -130,8 +130,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testMore() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.setJexlVariable(&amp;quot;quuxClass&amp;quot;, Quux.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.set(&amp;quot;quuxClass&amp;quot;, Quux.class);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression create = ENGINE.createExpression(&amp;quot;quux = new(quuxClass, 'xuuq', 100)&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression assign = ENGINE.createExpression(&amp;quot;quux.froboz.value = 10&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression check = ENGINE.createExpression(&amp;quot;quux[\&amp;quot;froboz\&amp;quot;].value&amp;quot;);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/BlockTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/BlockTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/BlockTest.java?rev=885553&amp;r1=885552&amp;r2=885553&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/BlockTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/BlockTest.java Mon Nov 30 19:28:40 2009
&lt;br&gt;@@ -33,44 +33,44 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBlockSimple() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;if (true) { 'hello'; }&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Result is wrong&amp;quot;, &amp;quot;hello&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBlockExecutesAll() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;if (true) { x = 'Hello'; y = 'World';}&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;First result is wrong&amp;quot;, &amp;quot;Hello&amp;quot;, jc.getJexlVariable(&amp;quot;x&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Second result is wrong&amp;quot;, &amp;quot;World&amp;quot;, jc.getJexlVariable(&amp;quot;y&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;First result is wrong&amp;quot;, &amp;quot;Hello&amp;quot;, jc.get(&amp;quot;x&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Second result is wrong&amp;quot;, &amp;quot;World&amp;quot;, jc.get(&amp;quot;y&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Block result is wrong&amp;quot;, &amp;quot;World&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testEmptyBlock() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;if (true) { }&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNull(&amp;quot;Result is wrong&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBlockLastExecuted01() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;if (true) { x = 1; } else { x = 2; }&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Block result is wrong&amp;quot;, new Integer(1), o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBlockLastExecuted02() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;if (false) { x = 1; } else { x = 2; }&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Block result is wrong&amp;quot;, new Integer(2), o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testNestedBlock() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Expression e = JEXL.createExpression(&amp;quot;if (true) { x = 'hello'; y = 'world';&amp;quot; + &amp;quot; if (true) { x; } y; }&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new JexlContext.Mapped();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JexlContext jc = new MapContext();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = e.evaluate(jc);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Block result is wrong&amp;quot;, &amp;quot;world&amp;quot;, o);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885553--1-2----in--commons-proper-jexl-trunk%3A-src-main-java-org-apache-commons-jexl2--src-main-java-org-apache-commons-jexl2-introspection--src-main-java-org-apache-commons-jexl2-parser--src-main-java-org-apache-commons-jexl2-scripting--sr...-tp26580478p26580478.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26580309</id>
	<title>svn commit: r885546 - /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/context/</title>
	<published>2009-11-30T11:19:01Z</published>
	<updated>2009-11-30T11:19:01Z</updated>
	<author>
		<name>henrib-2</name>
	</author>
	<content type="html">Author: henrib
&lt;br&gt;Date: Mon Nov 30 19:19:01 2009
&lt;br&gt;New Revision: 885546
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885546&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885546&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JEXL-92: follow up on Rahul's comments (JexlContext exposes set/get/has);
&lt;br&gt;moved JexlContext.Mapped as MapContext;
&lt;br&gt;moved Uberspect &amp; related classes to oac.jexl2.introspection;
&lt;br&gt;moved DebugInfo &amp; JexlInfo to oac.jexl2
&lt;br&gt;&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/context/
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885546----commons-proper-jexl-trunk-src-main-java-org-apache-commons-jexl2-context--tp26580309p26580309.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26578791</id>
	<title>svn commit: r885514 - in /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util: ListSetExecutor.java MapGetExecutor.java MapSetExecutor.java</title>
	<published>2009-11-30T09:43:43Z</published>
	<updated>2009-11-30T09:43:43Z</updated>
	<author>
		<name>sebb-3</name>
	</author>
	<content type="html">Author: sebb
&lt;br&gt;Date: Mon Nov 30 17:43:42 2009
&lt;br&gt;New Revision: 885514
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885514&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885514&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Document why OK to suppress raw type cast warnings
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/ListSetExecutor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapGetExecutor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapSetExecutor.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/ListSetExecutor.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/ListSetExecutor.java?rev=885514&amp;r1=885513&amp;r2=885514&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/ListSetExecutor.java?rev=885514&amp;r1=885513&amp;r2=885514&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/ListSetExecutor.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/ListSetExecutor.java Mon Nov 30 17:43:42 2009
&lt;br&gt;@@ -51,12 +51,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Object execute(final Object obj, Object value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (method == ARRAY_SET) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.lang.reflect.Array.set(obj, property.intValue(), value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // LSE should only be created for array or list types
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final List&amp;lt;Object&amp;gt; list = (List&amp;lt;Object&amp;gt;) obj;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;list.set(property.intValue(), value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -64,7 +64,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Object tryExecute(final Object obj, Object key, Object value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj != null &amp;&amp; method != null
&lt;br&gt;@@ -73,6 +72,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (method == ARRAY_SET) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Array.set(obj, ((Integer) key).intValue(), value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) &amp;nbsp;// LSE should only be created for array or list types
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final List&amp;lt;Object&amp;gt; list = (List&amp;lt;Object&amp;gt;) obj;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;list.set(((Integer) key).intValue(), value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapGetExecutor.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapGetExecutor.java?rev=885514&amp;r1=885513&amp;r2=885514&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapGetExecutor.java?rev=885514&amp;r1=885513&amp;r2=885514&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapGetExecutor.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapGetExecutor.java Mon Nov 30 17:43:42 2009
&lt;br&gt;@@ -52,20 +52,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param obj the map.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return map.get(property)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Object execute(final Object obj) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // ctor only allows Map instances - see discover() method
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Map&amp;lt;Object,?&amp;gt; map = (Map&amp;lt;Object, ?&amp;gt;) obj;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return map.get(property);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Object tryExecute(final Object obj, Object key) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj != null &amp;&amp; &amp;nbsp;method != null
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; objectClass.equals(obj.getClass())
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; (key == null || property.getClass().equals(key.getClass()))) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // ctor only allows Map instances - see discover() method
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Map&amp;lt;Object,?&amp;gt; map = (Map&amp;lt;Object, ?&amp;gt;) obj;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return map.get(key);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapSetExecutor.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapSetExecutor.java?rev=885514&amp;r1=885513&amp;r2=885514&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapSetExecutor.java?rev=885514&amp;r1=885513&amp;r2=885514&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapSetExecutor.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/MapSetExecutor.java Mon Nov 30 17:43:42 2009
&lt;br&gt;@@ -47,22 +47,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Object execute(final Object obj, Object value)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;throws IllegalAccessException, InvocationTargetException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // ctor only allows Map instances - see discover() method
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Map&amp;lt;Object,Object&amp;gt; map = ((Map&amp;lt;Object, Object&amp;gt;) obj);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map.put(property, value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return value;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Object tryExecute(final Object obj, Object key, Object value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj != null &amp;&amp; method != null
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; objectClass.equals(obj.getClass())
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; (key == null || property.getClass().equals(key.getClass()))) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // ctor only allows Map instances - see discover() method
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Map&amp;lt;Object,Object&amp;gt; map = ((Map&amp;lt;Object, Object&amp;gt;) obj);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map.put(key, value);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return value;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885514---in--commons-proper-jexl-trunk-src-main-java-org-apache-commons-jexl2-util%3A-ListSetExecutor.java-MapGetExecutor.java-MapSetExecutor.java-tp26578791p26578791.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26578499</id>
	<title>svn commit: r885510 - /commons/proper/dbcp/trunk/xdocs/changes.xml</title>
	<published>2009-11-30T09:28:05Z</published>
	<updated>2009-11-30T09:28:05Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Mon Nov 30 17:28:05 2009
&lt;br&gt;New Revision: 885510
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885510&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885510&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Updated for 1.4 release.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/xdocs/changes.xml
&lt;br&gt;&lt;br&gt;Modified: commons/proper/dbcp/trunk/xdocs/changes.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/xdocs/changes.xml?rev=885510&amp;r1=885509&amp;r2=885510&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/xdocs/changes.xml?rev=885510&amp;r1=885509&amp;r2=885510&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/xdocs/changes.xml (original)
&lt;br&gt;+++ commons/proper/dbcp/trunk/xdocs/changes.xml Mon Nov 30 17:28:05 2009
&lt;br&gt;@@ -38,7 +38,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Commons DBCP Release Notes&amp;lt;/title&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;body&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;release version=&amp;quot;1.3&amp;quot; date=&amp;quot;TBD&amp;quot; description=&amp;quot;This release will include
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;release version=&amp;quot;1.4&amp;quot; date=&amp;quot;TBD&amp;quot; description=&amp;quot;This release will include
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; new features as well as bug fixes and instrumentation. &amp;nbsp;Some bug fixes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; will change semantics (e.g. connection close will become idempotent).
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; The minimum JDK level will be increased to 1.4&amp;quot;&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885510----commons-proper-dbcp-trunk-xdocs-changes.xml-tp26578499p26578499.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26578418</id>
	<title>svn commit: r885509 - /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java</title>
	<published>2009-11-30T09:21:49Z</published>
	<updated>2009-11-30T09:21:49Z</updated>
	<author>
		<name>sebb-3</name>
	</author>
	<content type="html">Author: sebb
&lt;br&gt;Date: Mon Nov 30 17:21:48 2009
&lt;br&gt;New Revision: 885509
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885509&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885509&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Document why cast is safe
&lt;br&gt;Typo in message: iterative =&amp;gt; iterator
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java?rev=885509&amp;r1=885508&amp;r2=885509&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java?rev=885509&amp;r1=885508&amp;r2=885509&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/introspection/UberspectImpl.java Mon Nov 30 17:21:48 2009
&lt;br&gt;@@ -65,7 +65,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * {@inheritDoc}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Iterator&amp;lt;?&amp;gt; getIterator(Object obj, DebugInfo info) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (obj.getClass().isArray()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new ArrayIterator(obj);
&lt;br&gt;@@ -75,15 +74,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((Map&amp;lt;?,?&amp;gt;) obj).values().iterator();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (obj instanceof Iterator&amp;lt;?&amp;gt;) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.warn(info.debugString()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;The iterative is not resetable; if used more than once, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;The iterator is not resetable; if used more than once, &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;this may lead to unexpected results.&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((Iterator&amp;lt;?&amp;gt;) obj);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (obj instanceof Enumeration&amp;lt;?&amp;gt;) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rlog.warn(info.debugString()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;The iterative is not resetable; if used more than once, &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;The iterator is not resetable; if used more than once, &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;this may lead to unexpected results.&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new EnumerationIterator&amp;lt;Object&amp;gt;((Enumeration&amp;lt;Object&amp;gt;) obj);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // OK because of instanceof check above
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Enumeration&amp;lt;Object&amp;gt; enumObj = (Enumeration&amp;lt;Object&amp;gt;) obj;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new EnumerationIterator&amp;lt;Object&amp;gt;(enumObj);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// look for an iterator() method to support the JDK5 Iterable
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// interface or any user tools/DTOs that want to work in
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885509----commons-proper-jexl-trunk-src-main-java-org-apache-commons-jexl2-util-introspection-UberspectImpl.java-tp26578418p26578418.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26578365</id>
	<title>svn commit: r885508 - /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java</title>
	<published>2009-11-30T09:18:19Z</published>
	<updated>2009-11-30T09:18:19Z</updated>
	<author>
		<name>sebb-3</name>
	</author>
	<content type="html">Author: sebb
&lt;br&gt;Date: Mon Nov 30 17:18:19 2009
&lt;br&gt;New Revision: 885508
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885508&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885508&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Unnecessary use of @SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java?rev=885508&amp;r1=885507&amp;r2=885508&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java?rev=885508&amp;r1=885507&amp;r2=885508&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/scripting/JexlScriptEngine.java Mon Nov 30 17:18:19 2009
&lt;br&gt;@@ -159,7 +159,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Current implementation only gives access to ENGINE_SCOPE binding.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static class JexlContextWrapper implements JexlContext.Nullable {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** The engine context. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private final ScriptContext engineContext;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885508----commons-proper-jexl-trunk-src-main-java-org-apache-commons-jexl2-scripting-JexlScriptEngine.java-tp26578365p26578365.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26578342</id>
	<title>svn commit: r885506 - /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java</title>
	<published>2009-11-30T09:16:37Z</published>
	<updated>2009-11-30T09:16:37Z</updated>
	<author>
		<name>sebb-3</name>
	</author>
	<content type="html">Author: sebb
&lt;br&gt;Date: Mon Nov 30 17:16:36 2009
&lt;br&gt;New Revision: 885506
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885506&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885506&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Document why casts are safe
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java?rev=885506&amp;r1=885505&amp;r2=885506&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java?rev=885506&amp;r1=885505&amp;r2=885506&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlContext.java Mon Nov 30 17:16:36 2009
&lt;br&gt;@@ -75,7 +75,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates an instance using a provided map as the underlying variable storage.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @param vars the variables map
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // OK to cast Map&amp;lt;?,?&amp;gt; to Map&amp;lt;Object,Object&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Mapped(Map&amp;lt;?, ?&amp;gt; vars) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;map = (Map&amp;lt;Object,Object&amp;gt;) (vars == null? new HashMap&amp;lt;String,Object&amp;gt;() : vars);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885506----commons-proper-jexl-trunk-src-main-java-org-apache-commons-jexl2-JexlContext.java-tp26578342p26578342.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26578337</id>
	<title>svn commit: r885505 - /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java</title>
	<published>2009-11-30T09:16:14Z</published>
	<updated>2009-11-30T09:16:14Z</updated>
	<author>
		<name>sebb-3</name>
	</author>
	<content type="html">Author: sebb
&lt;br&gt;Date: Mon Nov 30 17:16:13 2009
&lt;br&gt;New Revision: 885505
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885505&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885505&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Reduce visibility of &amp;quot;strict&amp;quot; variable (there is a getter)
&lt;br&gt;Document why casts are safe
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java?rev=885505&amp;r1=885504&amp;r2=885505&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java?rev=885505&amp;r1=885504&amp;r2=885505&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java Mon Nov 30 17:16:13 2009
&lt;br&gt;@@ -51,7 +51,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Long.MIN_VALUE as BigInteger. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected static final BigInteger BIGI_LONG_MIN_VALUE = BigInteger.valueOf(Long.MIN_VALUE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Whether this JexlArithmetic instance behaves in strict or lenient mode. */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected boolean strict;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private boolean strict;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates a JexlArithmetic.
&lt;br&gt;@@ -535,11 +535,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String rightString = right.toString();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return leftString.compareTo(rightString) &amp;lt; 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (left instanceof Comparable&amp;lt;?&amp;gt;) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // OK because of instanceof check above
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Comparable&amp;lt;Object&amp;gt; comparable = (Comparable&amp;lt;Object&amp;gt;) left;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return comparable.compareTo(right) &amp;lt; 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (right instanceof Comparable&amp;lt;?&amp;gt;) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;) // OK because of instanceof check above
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Comparable&amp;lt;Object&amp;gt; comparable = (Comparable&amp;lt;Object&amp;gt;) right;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return comparable.compareTo(left) &amp;gt; 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885505----commons-proper-jexl-trunk-src-main-java-org-apache-commons-jexl2-JexlArithmetic.java-tp26578337p26578337.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26578310</id>
	<title>svn commit: r885503 - in /commons/proper/dbcp/trunk: build-1.3.xml pom-1.3.xml</title>
	<published>2009-11-30T09:14:33Z</published>
	<updated>2009-11-30T09:14:33Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Mon Nov 30 17:14:33 2009
&lt;br&gt;New Revision: 885503
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885503&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885503&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Added 1.3 build files.
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/build-1.3.xml &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/pom-1.3.xml &amp;nbsp; (with props)
&lt;br&gt;&lt;br&gt;Added: commons/proper/dbcp/trunk/build-1.3.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/build-1.3.xml?rev=885503&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/build-1.3.xml?rev=885503&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/build-1.3.xml (added)
&lt;br&gt;+++ commons/proper/dbcp/trunk/build-1.3.xml Mon Nov 30 17:14:33 2009
&lt;br&gt;@@ -0,0 +1,246 @@
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. &amp;nbsp;See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. &amp;nbsp;The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. &amp;nbsp;See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+ --&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;!-- $Id: build.xml 884734 2009-11-27 01:11:31Z niallp $ --&amp;gt;
&lt;br&gt;+&amp;lt;project name=&amp;quot;commons-dbcp&amp;quot; default=&amp;quot;test&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;init&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tstamp/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- read properties from the build.properties, if any --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;component-propfile&amp;quot; value=&amp;quot;${basedir}/build.properties&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property file=&amp;quot;${component-propfile}&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- read properties from the commons build.properties, if any --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;commons-propfile&amp;quot; value=&amp;quot;${basedir}/../build.properties&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property file=&amp;quot;${commons-propfile}&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- read properties from the ${user.home}/propfile, if any --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;user-propfile&amp;quot; value=&amp;quot;${user.home}/build.properties&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property file=&amp;quot;${user-propfile}&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;commons-pool.jar&amp;quot; value=&amp;quot;${basedir}/../pool/dist/commons-pool.jar&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- command line classpath, if any --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;cp&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- now combine the classpaths --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;classpath&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; value=&amp;quot;${cp}:${commons-pool.jar}:${junit.jar}:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;${naming-common.jar}:${naming-java.jar}:${commons-logging.jar}:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;	${xerces.jar}:${jta-spec.jar}:${jta-impl.jar}:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;	${backport-util-concurrent.jar}:${ejb-spec.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;name&amp;quot; value=&amp;quot;commons-dbcp&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;title&amp;quot; value=&amp;quot;Apache Commons Database Pooling Package&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;version&amp;quot; value=&amp;quot;1.3&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;package&amp;quot; value=&amp;quot;org.apache.commons.dbcp.*&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;build.dir&amp;quot; value=&amp;quot;${basedir}/build&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;build.classes.dir&amp;quot; value=&amp;quot;${build.dir}/classes&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;build.test-classes.dir&amp;quot; value=&amp;quot;${build.dir}/test-classes&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;dist.dir&amp;quot; value=&amp;quot;${basedir}/dist&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;dist.jar&amp;quot; value=&amp;quot;${dist.dir}/${name}.jar&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;test.entry&amp;quot; value=&amp;quot;org.apache.commons.dbcp.TestAll&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;test.failonerror&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;test.runner&amp;quot; value=&amp;quot;junit.textui.TestRunner&amp;quot; /&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;javadoc.dir&amp;quot; value=&amp;quot;${dist.dir}/docs/api&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;javadoc.bottom&amp;quot; value=&amp;quot;&amp;lt;small&amp;gt;Copyright &amp;amp;copy; 2001-2009 Apache Software Foundation. Documenation generated ${TODAY}&amp;lt;/small&amp;gt;.&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;javadoc.overview&amp;quot; value=&amp;quot;${basedir}/src/java/org/apache/commons/dbcp/overview.html&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;javac.optimize&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;javac.debug&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;javac.deprecation&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; 	 &amp;nbsp;&amp;lt;property name=&amp;quot;javac.source&amp;quot; value=&amp;quot;1.4&amp;quot; /&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;available property=&amp;quot;jndi.present&amp;quot; classname=&amp;quot;javax.naming.Context&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; 	 &amp;nbsp; &amp;lt;available file=&amp;quot;${file}&amp;quot; property=&amp;quot;found&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; 	 &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_message&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;target name=&amp;quot;check_message&amp;quot; unless=&amp;quot;found&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- echo could be replaced with fail if required --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo message=&amp;quot;Could not find ${file}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;!-- Check that all the dependencies exist --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;check_depends&amp;quot; depends=&amp;quot;init&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;echo&amp;gt;Checking dependencies&amp;lt;/echo&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${commons-pool.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${junit.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${naming-common.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${naming-java.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${commons-logging.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${xerces.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${jta-spec.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${jta-impl.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${backport-util-concurrent.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;antcall target=&amp;quot;check_jar&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;file&amp;quot; value=&amp;quot;${ejb-spec.jar}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/antcall&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;!-- ######################################################### --&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;clean&amp;quot; depends=&amp;quot;init&amp;quot; description=&amp;quot;removes generated files&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delete dir=&amp;quot;${build.dir}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;delete dir=&amp;quot;${dist.dir}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;filter-sources&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo message=&amp;quot;Comment out the jdbc4 additional methods.&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;src.dir&amp;quot; value=&amp;quot;${basedir}/src&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;src.java.dir&amp;quot; value=&amp;quot;${src.dir}/java&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;src.test.dir&amp;quot; value=&amp;quot;${src.dir}/test&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;replace dir=&amp;quot;${src.java.dir}&amp;quot; token=&amp;quot;/* JDBC_4_ANT_KEY_BEGIN */&amp;quot; value=&amp;quot;/*&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;replace dir=&amp;quot;${src.java.dir}&amp;quot; token=&amp;quot;/* JDBC_4_ANT_KEY_END */&amp;quot; value=&amp;quot;*/&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;replace dir=&amp;quot;${src.test.dir}&amp;quot; token=&amp;quot;/* JDBC_4_ANT_KEY_BEGIN */&amp;quot; value=&amp;quot;/*&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;replace dir=&amp;quot;${src.test.dir}&amp;quot; token=&amp;quot;/* JDBC_4_ANT_KEY_END */&amp;quot; value=&amp;quot;*/&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;prepare&amp;quot; depends=&amp;quot;init,filter-sources&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;javadoc&amp;quot; depends=&amp;quot;prepare&amp;quot; description=&amp;quot;generates javadocs&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;mkdir dir=&amp;quot;${javadoc.dir}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;javadoc packagenames=&amp;quot;org.*&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sourcepath=&amp;quot;${src.java.dir}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; classpath=&amp;quot;${classpath}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; destdir=&amp;quot;${javadoc.dir}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; windowtitle=&amp;quot;${title}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; doctitle=&amp;quot;${title}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bottom=&amp;quot;${javadoc.bottom}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; overview=&amp;quot;${javadoc.overview}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public=&amp;quot;true&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; version=&amp;quot;true&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; author=&amp;quot;true&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; splitindex=&amp;quot;false&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nodeprecated=&amp;quot;true&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nodeprecatedlist=&amp;quot;true&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; notree=&amp;quot;true&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; noindex=&amp;quot;false&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nohelp=&amp;quot;true&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nonavbar=&amp;quot;false&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; serialwarn=&amp;quot;false&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link href=&amp;quot;&lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/j2se/1.5.0/docs/api&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link href=&amp;quot;&lt;a href=&quot;http://commons.apache.org/pool/apidocs&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://commons.apache.org/pool/apidocs&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/javadoc&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;!-- ######################################################### --&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;compile&amp;quot; depends=&amp;quot;check_depends,prepare&amp;quot; description=&amp;quot;compiles source files&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;mkdir dir=&amp;quot;${build.classes.dir}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;javac destdir=&amp;quot;${build.classes.dir}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; srcdir=&amp;quot;${src.java.dir}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; classpath=&amp;quot;${classpath}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; debug=&amp;quot;${javac.debug}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deprecation=&amp;quot;${javac.deprecation}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; optimize=&amp;quot;${javac.optimize}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; source=&amp;quot;${javac.source}&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;exclude name=&amp;quot;org/apache/commons/dbcp/BasicDataSourceFactory.java&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unless=&amp;quot;jndi.present&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;exclude name=&amp;quot;org/apache/commons/dbcp/datasources/**&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unless=&amp;quot;jndi.present&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;exclude name=&amp;quot;org/apache/commons/dbcp/cpdsadapter/**&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unless=&amp;quot;jndi.present&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/javac&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;compile-test&amp;quot; depends=&amp;quot;compile&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;mkdir dir=&amp;quot;${build.test-classes.dir}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;javac destdir=&amp;quot;${build.test-classes.dir}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; srcdir=&amp;quot;${src.test.dir}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; debug=&amp;quot;${javac.debug}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deprecation=&amp;quot;${javac.deprecation}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; optimize=&amp;quot;${javac.optimize}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; source=&amp;quot;${javac.source}&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;classpath&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement location=&amp;quot;${build.classes.dir}&amp;quot; /&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement location=&amp;quot;${build.test-classes.dir}&amp;quot; /&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement path=&amp;quot;${classpath}&amp;quot; /&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/classpath&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/javac&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;copy todir=&amp;quot;${build.test-classes.dir}&amp;quot; file=&amp;quot;${src.test.dir}/testpool.jocl&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;test&amp;quot; depends=&amp;quot;compile-test&amp;quot; description=&amp;quot;runs (junit) unit tests&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo message=&amp;quot;${classpath}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;junit printsummary=&amp;quot;true&amp;quot; showoutput=&amp;quot;true&amp;quot; fork=&amp;quot;yes&amp;quot; haltonfailure=&amp;quot;${test.failonerror}&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;classpath&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement location=&amp;quot;${build.classes.dir}&amp;quot; /&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement location=&amp;quot;${build.test-classes.dir}&amp;quot; /&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement path=&amp;quot;${classpath}&amp;quot; /&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/classpath&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;test name=&amp;quot;${test.entry}&amp;quot;/&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/junit&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;build-jar&amp;quot; depends=&amp;quot;compile&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;mkdir dir=&amp;quot;${dist.dir}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jar jarfile=&amp;quot;${dist.jar}&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;fileset dir=&amp;quot;${build.classes.dir}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;metainf dir=&amp;quot;${basedir}&amp;quot; includes=&amp;quot;LICENSE.txt,NOTICE.txt&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;manifest&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name=&amp;quot;Built-By&amp;quot; value=&amp;quot;${user.name}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name=&amp;quot;Package&amp;quot; value=&amp;quot;${package}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name=&amp;quot;Extension-Name&amp;quot; value=&amp;quot;${name}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name=&amp;quot;Specification-Vendor&amp;quot; value=&amp;quot;Apache Software Foundation&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name=&amp;quot;Specification-Title&amp;quot; value=&amp;quot;${title}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name=&amp;quot;Implementation-Version&amp;quot; value=&amp;quot;${version}&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;attribute name=&amp;quot;Implementation-Vendor&amp;quot; value=&amp;quot;Apache Software Foundation&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/manifest&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/jar&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;build&amp;quot; depends=&amp;quot;clean,build-jar,javadoc&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;copy todir=&amp;quot;${dist.dir}&amp;quot; file=&amp;quot;${basedir}/LICENSE.txt&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;copy todir=&amp;quot;${dist.dir}&amp;quot; file=&amp;quot;${basedir}/NOTICE.txt&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;copy todir=&amp;quot;${dist.dir}&amp;quot; file=&amp;quot;${basedir}/README.txt&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/target&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;target name=&amp;quot;dist&amp;quot; depends=&amp;quot;build&amp;quot; description=&amp;quot;gump target&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+&amp;lt;/project&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/dbcp/trunk/build-1.3.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/dbcp/trunk/build-1.3.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Date Revision
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/dbcp/trunk/build-1.3.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Added: commons/proper/dbcp/trunk/pom-1.3.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/pom-1.3.xml?rev=885503&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/pom-1.3.xml?rev=885503&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/pom-1.3.xml (added)
&lt;br&gt;+++ commons/proper/dbcp/trunk/pom-1.3.xml Mon Nov 30 17:14:33 2009
&lt;br&gt;@@ -0,0 +1,387 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp; Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ &amp;nbsp; contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ &amp;nbsp; this work for additional information regarding copyright ownership.
&lt;br&gt;+ &amp;nbsp; The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ &amp;nbsp; (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ &amp;nbsp; the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ &amp;nbsp; distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ &amp;nbsp; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ &amp;nbsp; See the License for the specific language governing permissions and
&lt;br&gt;+ &amp;nbsp; limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;project
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://maven.apache.org/maven-v4_0_0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;parent&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.commons&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;commons-parent&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;12&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/parent&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;groupId&amp;gt;commons-dbcp&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;artifactId&amp;gt;commons-dbcp&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;version&amp;gt;1.3&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;name&amp;gt;Commons DBCP&amp;lt;/name&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;inceptionYear&amp;gt;2001&amp;lt;/inceptionYear&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;description&amp;gt;Commons Database Connection Pooling&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://commons.apache.org/dbcp/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://commons.apache.org/dbcp/&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;distributionManagement&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;site&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;people.apache.org&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Commons DBCP&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;scp://people.apache.org/www/commons.apache.org/dbcp&amp;lt;/url&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/site&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/distributionManagement&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;issueManagement&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;system&amp;gt;jira&amp;lt;/system&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://issues.apache.org/jira/browse/DBCP&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/browse/DBCP&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/issueManagement&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;scm&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;connection&amp;gt;scm:svn:&lt;a href=&quot;http://svn.apache.org/repos/asf/commons/proper/dbcp/trunk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/commons/proper/dbcp/trunk&lt;/a&gt;&amp;lt;/connection&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developerConnection&amp;gt;scm:svn:&lt;a href=&quot;https://svn.apache.org/repos/asf/commons/proper/dbcp/branches/DBCP_1_3_BRANCH&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://svn.apache.org/repos/asf/commons/proper/dbcp/branches/DBCP_1_3_BRANCH&lt;/a&gt;&amp;lt;/developerConnection&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/branches/DBCP_1_3_BRANCH&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/branches/DBCP_1_3_BRANCH&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/scm&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;developers&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Morgan Delagrange&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;morgand&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Geir Magnusson&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;geirm&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Craig McClanahan&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;craigmcc&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;John McNally&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;jmcnally&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Martin Poeschl&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;mpoeschl&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26578310&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mpoeschl@...&lt;/a&gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;tucana.at&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Rodney Waldhoff&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;rwaldhoff&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;David Weinrich&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;dweinr1&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Dirk Verbeeck&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;dirkv&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Yoav Shapira&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;yoavs&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26578310&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;yoavs@...&lt;/a&gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;Apache Software Foundation&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Phil Steitz&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;psteitz&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;J&amp;#x00f6;rg Schaible&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;joehni&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26578310&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg.schaible@...&lt;/a&gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;timezone&amp;gt;+1&amp;lt;/timezone&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;developer&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Mark Thomas&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;markt&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26578310&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;markt@...&lt;/a&gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;organization&amp;gt;Apache Software Foundation&amp;lt;/organization&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/developer&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/developers&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;contributors&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;contributor&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Todd Carmichael&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26578310&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;toddc@...&lt;/a&gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/contributor&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;contributor&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Wayne Woodfield&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/contributor&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;contributor&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Dain Sundstrom&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;email&amp;gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26578310&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dain@...&lt;/a&gt;&amp;lt;/email&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/contributor&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;contributor&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Philippe Mouawad&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/contributor&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/contributors&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;dependencies&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;commons-pool&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;commons-pool&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;1.5.4&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;junit&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;junit&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;3.8.2&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;!-- For managed connections --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.geronimo.specs&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;geronimo-jta_1.1_spec&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;version&amp;gt;1.1.1&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;optional&amp;gt;true&amp;lt;/optional&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;!-- tomcat naming jars for jndi reference tests --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;tomcat&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;naming-common&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;5.0.28&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;tomcat&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;naming-java&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;5.0.28&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;!-- dragged in by tomcat-naming jars - only for jndi tests --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;commons-logging&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;commons-logging&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;version&amp;gt;1.1.1&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;!-- for testing of managed connections --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.geronimo.modules&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;geronimo-transaction&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;version&amp;gt;1.2-beta&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;!-- required under jdk 1.4 so jocl can have a sax parser --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;xml-apis&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;xml-apis&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.0.2&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;xerces&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;xerces&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.4.0&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/dependencies&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;!-- Target Java versions are actually 1.4, 1.5 and 1.6 --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.source&amp;gt;1.4&amp;lt;/maven.compile.source&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.target&amp;gt;1.4&amp;lt;/maven.compile.target&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;commons.componentid&amp;gt;dbcp&amp;lt;/commons.componentid&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;commons.release.version&amp;gt;1.3&amp;lt;/commons.release.version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;commons.binary.suffix&amp;gt;&amp;lt;/commons.binary.suffix&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;commons.jira.id&amp;gt;DBCP&amp;lt;/commons.jira.id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;commons.jira.pid&amp;gt;12310469&amp;lt;/commons.jira.pid&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/properties&amp;gt; 
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;sourceDirectory&amp;gt;src/java&amp;lt;/sourceDirectory&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;testSourceDirectory&amp;gt;src/test&amp;lt;/testSourceDirectory&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;resources&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;resource&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;directory&amp;gt;src/test&amp;lt;/directory&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;testpool.jocl&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/resource&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;resource&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;directory&amp;gt;.&amp;lt;/directory&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;targetPath&amp;gt;META-INF&amp;lt;/targetPath&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;NOTICE.txt&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;LICENSE.txt&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/resource&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/resources&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;testResources&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;testResource&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;directory&amp;gt;${basedir}/src/test&amp;lt;/directory&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;testpool.jocl&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/testResource&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/testResources&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- Specify cobertura version for &amp;quot;cobertura:cobertura&amp;quot; goal --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cobertura-maven-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-surefire-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;reportFormat&amp;gt;plain&amp;lt;/reportFormat&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestAbandonedObjectPool.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/jocl/TestJOCLContentHandler.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestDelegatingConnection.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestPoolableConnection.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestDelegatingPreparedStatement.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestDelegatingStatement.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestJOCLed.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestManual.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestBasicDataSourceFactory.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestBasicDataSource.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestAbandonedBasicDataSource.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestPStmtPooling.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestPStmtPoolingBasicDataSource.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestPoolingDataSource.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/TestJndi.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/cpdsadapter/TestDriverAdapterCPDS.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/datasources/TestFactory.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/datasources/TestCPDSConnectionFactory.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/datasources/TestKeyedCPDSConnectionFactory.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/datasources/TestPerUserPoolDataSource.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/datasources/TestSharedPoolDataSource.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/datasources/TestInstanceKeyDataSource.java&amp;lt;/include&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/managed/TestBasicManagedDataSource.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/managed/TestManagedDataSource.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include&amp;gt;org/apache/commons/dbcp/managed/TestManagedDataSourceInTx.java&amp;lt;/include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/includes&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-assembly-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;descriptors&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;descriptor&amp;gt;src/assembly/bin.xml&amp;lt;/descriptor&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;descriptor&amp;gt;src/assembly/src.xml&amp;lt;/descriptor&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/descriptors&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tarLongFileMode&amp;gt;gnu&amp;lt;/tarLongFileMode&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;reporting&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;findbugs-maven-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;threshold&amp;gt;Normal&amp;lt;/threshold&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;effort&amp;gt;Default&amp;lt;/effort&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;excludeFilterFile&amp;gt;${basedir}/findbugs-exclude-filter.xml&amp;lt;/excludeFilterFile&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cobertura-maven-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-javadoc-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.4&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;links&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link&amp;gt;&lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/j2se/1.5.0/docs/api&lt;/a&gt;&amp;lt;/link&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link&amp;gt;&lt;a href=&quot;http://commons.apache.org/pool/api-1.5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://commons.apache.org/pool/api-1.5&lt;/a&gt;&amp;lt;/link&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link&amp;gt;&lt;a href=&quot;http://java.sun.com/j2ee/sdk_1.3/techdocs/api&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/j2ee/sdk_1.3/techdocs/api&lt;/a&gt;&amp;lt;/link&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/links&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-changes-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.0&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;xmlPath&amp;gt;${basedir}/xdocs/changes.xml&amp;lt;/xmlPath&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;issueLinkTemplate&amp;gt;%URL%/%ISSUE%&amp;lt;/issueLinkTemplate&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;reportSets&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;reportSet&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;reports&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;report&amp;gt;changes-report&amp;lt;/report&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/reports&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/reportSet&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/reportSets&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-checkstyle-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configLocation&amp;gt;${basedir}/checkstyle.xml&amp;lt;/configLocation&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;enableRulesSummary&amp;gt;false&amp;lt;/enableRulesSummary&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-pmd-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.4&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;rulesets&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ruleset&amp;gt;checkstyle.xml&amp;lt;/ruleset&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/rulesets&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;targetJdk&amp;gt;${maven.compile.target}&amp;lt;/targetJdk&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;clirr-maven-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.2.2&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;comparisonVersion&amp;gt;1.2.2&amp;lt;/comparisonVersion&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;minSeverity&amp;gt;info&amp;lt;/minSeverity&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/reporting&amp;gt;
&lt;br&gt;+&amp;lt;/project&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/dbcp/trunk/pom-1.3.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/dbcp/trunk/pom-1.3.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Date Revision
&lt;br&gt;&lt;br&gt;Propchange: commons/proper/dbcp/trunk/pom-1.3.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885503---in--commons-proper-dbcp-trunk%3A-build-1.3.xml-pom-1.3.xml-tp26578310p26578310.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26578297</id>
	<title>svn commit: r885502 - /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java</title>
	<published>2009-11-30T09:14:00Z</published>
	<updated>2009-11-30T09:14:00Z</updated>
	<author>
		<name>sebb-3</name>
	</author>
	<content type="html">Author: sebb
&lt;br&gt;Date: Mon Nov 30 17:14:00 2009
&lt;br&gt;New Revision: 885502
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885502&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885502&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Improve type-safety by using parameterized emptySet() method instead of EMPTYSET
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java?rev=885502&amp;r1=885501&amp;r2=885502&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java?rev=885502&amp;r1=885501&amp;r2=885502&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/JexlEngine.java Mon Nov 30 17:14:00 2009
&lt;br&gt;@@ -692,10 +692,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * Produces the cache entry set.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the cache entry set
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set&amp;lt;Entry&amp;lt;K, V&amp;gt;&amp;gt; entrySet() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;K, V&amp;gt; map = ref != null ? ref.get() : null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return map != null ? map.entrySet() : (Set&amp;lt;Entry&amp;lt;K, V&amp;gt;&amp;gt;) Collections.EMPTY_SET;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return map != null ? map.entrySet() : Collections.&amp;lt;Entry&amp;lt;K, V&amp;gt;&amp;gt;emptySet();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885502----commons-proper-jexl-trunk-src-main-java-org-apache-commons-jexl2-JexlEngine.java-tp26578297p26578297.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26578290</id>
	<title>svn commit: r885501 - /commons/proper/dbcp/trunk/pom.xml</title>
	<published>2009-11-30T09:13:45Z</published>
	<updated>2009-11-30T09:13:45Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Mon Nov 30 17:13:44 2009
&lt;br&gt;New Revision: 885501
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885501&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885501&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Prepare for 1.4 release.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/pom.xml
&lt;br&gt;&lt;br&gt;Modified: commons/proper/dbcp/trunk/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/pom.xml?rev=885501&amp;r1=885500&amp;r2=885501&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/pom.xml?rev=885501&amp;r1=885500&amp;r2=885501&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/pom.xml (original)
&lt;br&gt;+++ commons/proper/dbcp/trunk/pom.xml Mon Nov 30 17:13:44 2009
&lt;br&gt;@@ -27,7 +27,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;commons-dbcp&amp;lt;/groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;commons-dbcp&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;version&amp;gt;1.3-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;version&amp;gt;1.4&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Commons DBCP&amp;lt;/name&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;inceptionYear&amp;gt;2001&amp;lt;/inceptionYear&amp;gt;
&lt;br&gt;@@ -219,7 +219,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.source&amp;gt;1.6&amp;lt;/maven.compile.source&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.target&amp;gt;1.6&amp;lt;/maven.compile.target&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.componentid&amp;gt;dbcp&amp;lt;/commons.componentid&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;commons.release.version&amp;gt;1.2.2&amp;lt;/commons.release.version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;commons.release.version&amp;gt;1.4&amp;lt;/commons.release.version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.binary.suffix&amp;gt;&amp;lt;/commons.binary.suffix&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.jira.id&amp;gt;DBCP&amp;lt;/commons.jira.id&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.jira.pid&amp;gt;12310469&amp;lt;/commons.jira.pid&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885501----commons-proper-dbcp-trunk-pom.xml-tp26578290p26578290.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26577909</id>
	<title>svn commit: r885490 - in /commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2: ArrayAccessTest.java CacheTest.java UnifiedJEXLTest.java util/introspection/MethodKeyTest.java</title>
	<published>2009-11-30T08:50:24Z</published>
	<updated>2009-11-30T08:50:24Z</updated>
	<author>
		<name>sebb-3</name>
	</author>
	<content type="html">Author: sebb
&lt;br&gt;Date: Mon Nov 30 16:50:24 2009
&lt;br&gt;New Revision: 885490
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885490&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885490&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Reduce visibility and mutability where possible
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayAccessTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/MethodKeyTest.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayAccessTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayAccessTest.java?rev=885490&amp;r1=885489&amp;r2=885490&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayAccessTest.java?rev=885490&amp;r1=885489&amp;r2=885490&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayAccessTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/ArrayAccessTest.java Mon Nov 30 16:50:24 2009
&lt;br&gt;@@ -33,11 +33,14 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Asserter asserter;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected static final String GET_METHOD_STRING = &amp;quot;GetMethod string&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected static final String[] GET_METHOD_ARRAY =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String GET_METHOD_STRING = &amp;quot;GetMethod string&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// Needs to be accessible by Foo.class
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static final String[] GET_METHOD_ARRAY =
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new String[] { &amp;quot;One&amp;quot;, &amp;quot;Two&amp;quot;, &amp;quot;Three&amp;quot; };
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected static final String[][] GET_METHOD_ARRAY2 =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// Needs to be accessible by Foo.class
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static final String[][] GET_METHOD_ARRAY2 =
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new String[][] { {&amp;quot;One&amp;quot;, &amp;quot;Two&amp;quot;, &amp;quot;Three&amp;quot;},{&amp;quot;Four&amp;quot;, &amp;quot;Five&amp;quot;, &amp;quot;Six&amp;quot;} };
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java?rev=885490&amp;r1=885489&amp;r2=885490&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java?rev=885490&amp;r1=885489&amp;r2=885490&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/CacheTest.java Mon Nov 30 16:50:24 2009
&lt;br&gt;@@ -26,16 +26,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public CacheTest(String testName) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(testName);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static JexlEngine jexl = new JexlEngine();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final JexlEngine jexl = new JexlEngine();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;static {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setCache(512);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setLenient(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jexl.setSilent(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static int LOOPS = 1024;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final int LOOPS = 1024;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// A pseudo random mix of accessors
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static int[] MIX = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final int[] MIX = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0, 0, 3, 3, 4, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 1, 1, 1, 2, 2, 2,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3, 3, 3, 4, 4, 4, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 2, 2, 3, 3, 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java?rev=885490&amp;r1=885489&amp;r2=885490&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java?rev=885490&amp;r1=885489&amp;r2=885490&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/UnifiedJEXLTest.java Mon Nov 30 16:50:24 2009
&lt;br&gt;@@ -29,10 +29,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ENGINE.setSilent(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ENGINE.setCache(128);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static UnifiedJEXL EL = new UnifiedJEXL(ENGINE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static Log LOG = LogFactory.getLog(UnifiedJEXL.class);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;JexlContext context = null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Map&amp;lt;String,Object&amp;gt; vars =null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final UnifiedJEXL EL = new UnifiedJEXL(ENGINE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final Log LOG = LogFactory.getLog(UnifiedJEXL.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private JexlContext context = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Map&amp;lt;String,Object&amp;gt; vars =null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setUp() throws Exception {
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/MethodKeyTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/MethodKeyTest.java?rev=885490&amp;r1=885489&amp;r2=885490&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/MethodKeyTest.java?rev=885490&amp;r1=885489&amp;r2=885490&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/MethodKeyTest.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl2/util/introspection/MethodKeyTest.java Mon Nov 30 16:50:24 2009
&lt;br&gt;@@ -21,7 +21,7 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class MethodKeyTest extends TestCase {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// A set of classes (most of them primitives)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static Class&amp;lt;?&amp;gt;[] PRIMS = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final Class&amp;lt;?&amp;gt;[] PRIMS = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Boolean.TYPE,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Byte.TYPE,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Character.TYPE,
&lt;br&gt;@@ -35,7 +35,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// A set of instances corresponding to the classes
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static Object[] ARGS = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final Object[] ARGS = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Boolean(true),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Byte((byte) 1),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Character('2'),
&lt;br&gt;@@ -49,7 +49,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// A set of (pseudo) method names
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static String[] METHODS = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String[] METHODS = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;plus&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;minus&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;execute&amp;quot;,
&lt;br&gt;@@ -75,14 +75,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** from key to string */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static java.util.Map&amp;lt; MethodKey, String&amp;gt; byKey;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final java.util.Map&amp;lt; MethodKey, String&amp;gt; byKey;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** form string to key */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static java.util.Map&amp;lt;String,MethodKey&amp;gt; byString;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final java.util.Map&amp;lt;String,MethodKey&amp;gt; byString;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** the list of keys we generated &amp; test against */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static MethodKey[] keyList;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final MethodKey[] keyList;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Creates &amp; inserts a key into the byKey &amp; byString map */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static void setUpKey(String name, Class&amp;lt;?&amp;gt;[] parms) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static void setUpKey(String name, Class&amp;lt;?&amp;gt;[] parms) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MethodKey key = new MethodKey(name, parms);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String str = key.toString();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;byKey.put(key, str);
&lt;br&gt;@@ -162,7 +162,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static final int LOOP = 3;//00;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final int LOOP = 3;//00;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testPerfKey() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int l = 0; l &amp;lt; LOOP; ++l)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885490---in--commons-proper-jexl-trunk-src-test-java-org-apache-commons-jexl2%3A-ArrayAccessTest.java-CacheTest.java-UnifiedJEXLTest.java-util-introspection-MethodKeyTest.java-tp26577909p26577909.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26577730</id>
	<title>svn commit: r885485 - /commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java</title>
	<published>2009-11-30T08:39:19Z</published>
	<updated>2009-11-30T08:39:19Z</updated>
	<author>
		<name>sebb-3</name>
	</author>
	<content type="html">Author: sebb
&lt;br&gt;Date: Mon Nov 30 16:39:19 2009
&lt;br&gt;New Revision: 885485
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885485&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885485&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Use IODH idiom instead of volatile and double-checked locking
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java?rev=885485&amp;r1=885484&amp;r2=885485&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java?rev=885485&amp;r1=885484&amp;r2=885485&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java (original)
&lt;br&gt;+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/util/Introspector.java Mon Nov 30 16:39:19 2009
&lt;br&gt;@@ -33,8 +33,12 @@
&lt;br&gt;&amp;nbsp; * @since 1.0
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class Introspector {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/** The default uberspector that handles all introspection patterns. */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static volatile Uberspect uberSpect;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static class UberspectHolder{// Implements init on demand holder idiom
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** The default uberspector that handles all introspection patterns. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private static final Uberspect UBERSPECT = new UberspectImpl(LogFactory.getLog(Introspector.class));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** The logger to use for all warnings &amp; errors. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected final Log rlog;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** The (low level) introspector to use for introspection services. */
&lt;br&gt;@@ -105,20 +109,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * instead of the default one.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;@return Uberspect the default uberspector instance.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// CSOFF: DoubleCheckedLocking
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static Uberspect getUberspect() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// uses a double-locking pattern
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (uberSpect == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized (Uberspect.class) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (uberSpect == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log logger = LogFactory.getLog(Introspector.class);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uberSpect = new UberspectImpl(logger);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return uberSpect;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return UberspectHolder.UBERSPECT;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// CSON: DoubleCheckedLocking
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Creates a new instance of Uberspect.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885485----commons-proper-jexl-trunk-src-main-java-org-apache-commons-jexl2-util-Introspector.java-tp26577730p26577730.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26566603</id>
	<title>svn commit: r885279 - /commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java</title>
	<published>2009-11-29T13:53:37Z</published>
	<updated>2009-11-29T13:53:37Z</updated>
	<author>
		<name>luc-17</name>
	</author>
	<content type="html">Author: luc
&lt;br&gt;Date: Sun Nov 29 21:53:36 2009
&lt;br&gt;New Revision: 885279
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885279&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885279&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Prevent NaN to occur for singular matrices
&lt;br&gt;Numerical inaccuracies in the underlying eigendecomposition could induce
&lt;br&gt;very small negative eigenvalues, so the square root produced NaNs. The
&lt;br&gt;eigenvalues really cannot be negative, so it is safe to replace the negative
&lt;br&gt;ones by 0.
&lt;br&gt;There are remaining problems with singular matrices:
&lt;br&gt;&amp;nbsp;- the singular vectors also contain NaNs
&lt;br&gt;&amp;nbsp;- the solver does not really work in least square sense and
&lt;br&gt;&amp;nbsp; &amp;nbsp;complain about singular matrices
&lt;br&gt;JIRA: MATH-320 
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java?rev=885279&amp;r1=885278&amp;r2=885279&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java?rev=885279&amp;r1=885278&amp;r2=885279&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java Sun Nov 29 21:53:36 2009
&lt;br&gt;@@ -115,7 +115,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MathUtils.SAFE_MIN);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;singularValues = eigenDecomposition.getRealEigenvalues();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; singularValues.length; ++i) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;singularValues[i] = Math.sqrt(singularValues[i]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double si = singularValues[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;singularValues[i] = (si &amp;lt; 0) ? 0.0 : Math.sqrt(si);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -133,14 +134,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;double[] ei1 = eData[0];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;iData[0] = ei1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; n - 1; ++i) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// compute Bt.E.S^(-1) where E is the eigenvectors matrix
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// compute B.E.S^(-1) where E is the eigenvectors matrix
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// we reuse the array from matrix E to store the result
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double mi = mainBidiagonal[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double si = secondaryBidiagonal[i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double[] ei0 = ei1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ei1 = eData[i + 1];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;iData[i + 1] = ei1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int j = 0; j &amp;lt; n; ++j) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ei0[j] = (mainBidiagonal[i] * ei0[j] +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;secondaryBidiagonal[i] * ei1[j]) / singularValues[j];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ei0[j] = (mi * ei0[j] + si * ei1[j]) / singularValues[j];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// last row
&lt;br&gt;@@ -215,12 +217,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; m - 1; ++i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// compute Bt.E.S^(-1) where E is the eigenvectors matrix
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// we reuse the array from matrix E to store the result
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double mi = mainBidiagonal[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double si = secondaryBidiagonal[i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double[] ei0 = ei1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ei1 = eData[i + 1];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;iData[i + 1] = ei1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int j = 0; j &amp;lt; m; ++j) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ei0[j] = (mainBidiagonal[i] * ei0[j] +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;secondaryBidiagonal[i] * ei1[j]) / singularValues[j];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ei0[j] = (mi * ei0[j] + si * ei1[j]) / singularValues[j];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// last row
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885279----commons-proper-math-trunk-src-main-java-org-apache-commons-math-linear-SingularValueDecompositionImpl.java-tp26566603p26566603.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26566546</id>
	<title>svn commit: r885278 - in /commons/proper/math/trunk/src/main/java/org/apache/commons/math: ./ analysis/polynomials/ analysis/solvers/ distribution/ fraction/ linear/ optimization/direct/ optimization/linear/ stat/descriptive/ stat/inference/ transform/...</title>
	<published>2009-11-29T13:47:52Z</published>
	<updated>2009-11-29T13:47:52Z</updated>
	<author>
		<name>luc-17</name>
	</author>
	<content type="html">Author: luc
&lt;br&gt;Date: Sun Nov 29 21:47:51 2009
&lt;br&gt;New Revision: 885278
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885278&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885278&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;replaced duplicated strings by a single static string in many classes
&lt;br&gt;this will later allow enabling the MultipleStringLiterals rule in checkstyle
&lt;br&gt;(there are many other duplicated strings, so this cannot be enabled yet, I'll
&lt;br&gt;do another pass on it later on)
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/FunctionEvaluationException.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/MessagesResources_fr.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/BigFraction.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/Fraction.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/FunctionEvaluationException.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/FunctionEvaluationException.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/FunctionEvaluationException.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/FunctionEvaluationException.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/FunctionEvaluationException.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -31,6 +31,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -4305020489115478365L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for failed evaluation. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String FAILED_EVALUATION_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;evaluation failed for argument = {0}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Argument causing function evaluation failure */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private double[] argument;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -41,7 +45,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param argument &amp;nbsp;the failing function argument
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public FunctionEvaluationException(double argument) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(&amp;quot;evaluation failed for argument = {0}&amp;quot;, argument);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(FAILED_EVALUATION_MESSAGE, argument);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.argument = new double[] { argument };
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -53,7 +57,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @since 2.0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public FunctionEvaluationException(double[] argument) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(&amp;quot;evaluation failed for argument = {0}&amp;quot;, new ArrayRealVector(argument));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(FAILED_EVALUATION_MESSAGE, new ArrayRealVector(argument));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.argument = argument.clone();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/MessagesResources_fr.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/MessagesResources_fr.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/MessagesResources_fr.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/MessagesResources_fr.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/MessagesResources_fr.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -43,10 +43,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;cannot raise an integral value to a negative power ({0}^{1})&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;impossible d''\u00e9lever une valeur enti\u00e8re &amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;\u00e0 une puissance n\u00e9gative ({0}^{1})&amp;quot; },
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{ &amp;quot;invalid rounding method {0}, valid methods: {1} ({2}), {3} ({4}),&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot; {5} ({6}), {7} ({8}), {9} ({10}), {11} ({12}), {13} ({14}), {15} ({16})&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;m\u00e9thode d''arondi {0} invalide, m\u00e9thodes valides : {1} ({2}), {3} ({4}),&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot; {5} ({6}), {7} ({8}), {9} ({10}), {11} ({12}), {13} ({14}), {15} ({16})&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{ &amp;quot;invalid rounding method {0}, valid methods: {1} ({2}), {3} ({4}), {5} ({6}), {7} ({8}), {9} ({10}), {11} ({12}), {13} ({14}), {15} ({16})&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;m\u00e9thode d''arondi {0} invalide, m\u00e9thodes valides : {1} ({2}), {3} ({4}), {5} ({6}), {7} ({8}), {9} ({10}), {11} ({12}), {13} ({14}), {15} ({16})&amp;quot; },
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;Cannot normalize to an infinite value&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;impossible de normaliser vers une valeur infinie&amp;quot; },
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;Cannot normalize to NaN&amp;quot;,
&lt;br&gt;@@ -225,7 +223,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.optimization.direct.DirectSearchOptimizer
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;simplex must contain at least one point&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;le simplex doit contenir au moins un point&amp;quot; },
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{ &amp;quot;equals vertices {0} and {1} in simplex configuration&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{ &amp;quot;equal vertices {0} and {1} in simplex configuration&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;sommets {0} et {1} \u00e9gaux dans la configuration du simplex&amp;quot; },
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.estimation.AbstractEstimation
&lt;br&gt;@@ -289,25 +287,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;minimal step size ({0,number,0.00E00}) reached, integration needs {1,number,0.00E00}&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;pas minimal ({0,number,0.00E00}) atteint, l''int\u00e9gration n\u00e9cessite {1,number,0.00E00}&amp;quot; },
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: state vector has dimension {0},&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; absolute tolerance vector has dimension {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;incompatibilit\u00e9 de dimensions entre le vecteur d''\u00e9tat ({0}),&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; et le vecteur de tol\u00e9rance absolue ({1})&amp;quot; },
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: state vector has dimension {0},&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; relative tolerance vector has dimension {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;incompatibilit\u00e9 de dimensions entre le vecteur d''\u00e9tat ({0}),&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; et le vecteur de tol\u00e9rance relative ({1})&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: state vector has dimension {0}, absolute tolerance vector has dimension {1}&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;incompatibilit\u00e9 de dimensions entre le vecteur d''\u00e9tat ({0}), et le vecteur de tol\u00e9rance absolue ({1})&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: state vector has dimension {0}, relative tolerance vector has dimension {1}&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;incompatibilit\u00e9 de dimensions entre le vecteur d''\u00e9tat ({0}), et le vecteur de tol\u00e9rance relative ({1})&amp;quot; },
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.ode.nonstiff.RungeKuttaIntegrator
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: ODE problem has dimension {0},&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; initial state vector has dimension {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;incompatibilit\u00e9 de dimensions entre le probl\u00e8me ODE ({0}),&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; et le vecteur d''\u00e9tat initial ({1})&amp;quot; },
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: ODE problem has dimension {0},&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; final state vector has dimension {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;incompatibilit\u00e9 de dimensions entre le probl\u00e8me ODE ({0}),&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; et le vecteur d''\u00e9tat final ({1})&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: ODE problem has dimension {0}, initial state vector has dimension {1}&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;incompatibilit\u00e9 de dimensions entre le probl\u00e8me ODE ({0}), et le vecteur d''\u00e9tat initial ({1})&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: ODE problem has dimension {0}, final state vector has dimension {1}&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;incompatibilit\u00e9 de dimensions entre le probl\u00e8me ODE ({0}), et le vecteur d''\u00e9tat final ({1})&amp;quot; },
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;too small integration interval: length = {0}&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;intervalle d''int\u00e9gration trop petit : {0}&amp;quot; },
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -392,7 +382,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.linear.decomposition.QRDecompositionImpl
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.linear.decomposition.SingularValueDecompositionImpl
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: got {0}x{1} but expected {2}x{3}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;dimensions erronn\u00e9es : {0}x{1} \u00e0 la place de {2}x{3}&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;dimensions incoh\u00e9rentes : {0}x{1} \u00e0 la place de {2}x{3}&amp;quot; },
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.linear.decomposition.CholeskyDecompositionImpl
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.linear.decomposition.EigenDecompositionImpl
&lt;br&gt;@@ -402,7 +392,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.linear.ArrayRealVector
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.linear.SparseRealVector
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;dimension de vecteur erronn\u00e9e : {0} \u00e0 la place de {1}&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;taille de vecteur invalide : {0} au lieu de {1} attendue&amp;quot; },
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.linear.ArrayRealVector
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// org.apache.commons.math.linear.ArrayFieldVector
&lt;br&gt;@@ -420,10 +410,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;nombre de lignes invalide : {0} (doit \u00eatre positif)&amp;quot; },
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;invalid column dimension: {0} (must be positive)&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;nombre de colonnes invalide : {0} (doit \u00eatre positif)&amp;quot; },
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{ &amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;taille de vecteur invalide : {0} au lieu de {1} attendue&amp;quot; },
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{ &amp;quot;dimensions mismatch: got {0}x{1} but expected {2}x{3}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;dimensions incoh\u00e9rentes : {0}x{1} \u00e0 la place de {2}x{3}&amp;quot; },
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;matrix must have at least one row&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;une matrice doit comporter au moins une ligne&amp;quot; },
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;quot;matrix must have at least one column&amp;quot;,
&lt;br&gt;@@ -648,11 +634,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; // org.apache.commons.math.stat.descriptive.DescriptiveStatistics
&lt;br&gt;&amp;nbsp; &amp;nbsp; { &amp;quot;window size must be positive ({0})&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;la taille de la fen\u00eatre doit \u00eatre positive ({0})&amp;quot; },
&lt;br&gt;- &amp;nbsp; { &amp;quot;percentile implementation {0} does not support setQuantile&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;quot;l''implantation de pourcentage {0} ne dispose pas de la m\u00e9thode setQuantile&amp;quot; },
&lt;br&gt;- &amp;nbsp; { &amp;quot;cannot access setQuantile method in percentile implementation {0}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;quot;acc\u00e8s impossible \u00e0 la m\u00e9thode setQuantile&amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;quot; dans l''implantation de pourcentage {0}&amp;quot; },
&lt;br&gt;+ &amp;nbsp; { &amp;quot;percentile implementation {0} does not support {1}&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;quot;l''implantation de pourcentage {0} ne dispose pas de la m\u00e9thode {1}&amp;quot; },
&lt;br&gt;+ &amp;nbsp; { &amp;quot;cannot access {0} method in percentile implementation {1}&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;quot;acc\u00e8s impossible \u00e0 la m\u00e9thode {0}&amp;quot; +
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;quot; dans l''implantation de pourcentage {1}&amp;quot; },
&lt;br&gt;&amp;nbsp; &amp;nbsp; { &amp;quot;out of bounds quantile value: {0}, must be in (0, 100]&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;valeur de quantile {0} hors bornes, doit \u00eatre dans l''intervalle ]0, 100]&amp;quot; },
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -679,11 +665,9 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; // org.apache.commons.math.stat.descriptive.moment.Kurtosis
&lt;br&gt;&amp;nbsp; &amp;nbsp; { &amp;quot;statistics constructed from external moments cannot be incremented&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;quot;les statistiques bas\u00e9es sur des moments externes &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;quot;ne peuvent pas \u00eatre incr\u00e9ment\u00e9es&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;quot;les statistiques bas\u00e9es sur des moments externes ne peuvent pas \u00eatre incr\u00e9ment\u00e9es&amp;quot; },
&lt;br&gt;&amp;nbsp; &amp;nbsp; { &amp;quot;statistics constructed from external moments cannot be cleared&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;quot;les statistiques bas\u00e9es sur des moments externes &amp;quot; +
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;quot;ne peuvent pas \u00eatre remises \u00e0 z\u00e9ro&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;quot;les statistiques bas\u00e9es sur des moments externes ne peuvent pas \u00eatre remises \u00e0 z\u00e9ro&amp;quot; },
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; // org.apache.commons.math.stat.inference.ChiSquareTestImpl
&lt;br&gt;&amp;nbsp; &amp;nbsp; { &amp;quot;expected array length = {0}, must be at least 2&amp;quot;,
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/polynomials/PolynomialFunction.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -33,8 +33,12 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class PolynomialFunction implements DifferentiableUnivariateRealFunction, Serializable {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for empty coefficients array. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String EMPTY_ARRAY_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;empty polynomials coefficients array&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Serializtion identifier
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Serialization identifier
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -7726511984200295583L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -62,7 +66,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public PolynomialFunction(double c[]) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (c.length &amp;lt; 1) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;empty polynomials coefficients array&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(EMPTY_ARRAY_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int l = c.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while ((l &amp;gt; 1) &amp;&amp; (c[l - 1] == 0)) {
&lt;br&gt;@@ -122,7 +126,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected static double evaluate(double[] coefficients, double argument) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int n = coefficients.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (n &amp;lt; 1) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;empty polynomials coefficients array&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(EMPTY_ARRAY_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;double result = coefficients[n - 1];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int j = n -2; j &amp;gt;=0; j--) {
&lt;br&gt;@@ -231,7 +235,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected static double[] differentiate(double[] coefficients) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int n = coefficients.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (n &amp;lt; 1) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;empty polynomials coefficients array&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(EMPTY_ARRAY_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (n == 1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new double[]{0};
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/LaguerreSolver.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -37,6 +37,15 @@
&lt;br&gt;&amp;nbsp; * @since 1.2
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class LaguerreSolver extends UnivariateRealSolverImpl {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for non-polynomial function. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NON_POLYNOMIAL_FUNCTION_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;function is not polynomial&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for non-positive degree. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NON_POSITIVE_DEGREE_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;polynomial degree must be positive: degree={0}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** polynomial function to solve.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @deprecated as of 2.0 the function is not stored anymore in the instance
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;@@ -60,7 +69,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (f instanceof PolynomialFunction) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p = (PolynomialFunction) f;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;function is not polynomial&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(NON_POLYNOMIAL_FUNCTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -162,7 +171,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check function type
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!(f instanceof PolynomialFunction)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;function is not polynomial&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(NON_POLYNOMIAL_FUNCTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check for zeros before verifying bracketing
&lt;br&gt;@@ -255,7 +264,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int iterationCount = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (n &amp;lt; 1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;polynomial degree must be positive: degree={0}&amp;quot;, n);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NON_POSITIVE_DEGREE_MESSAGE, n);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Complex c[] = new Complex[n+1]; &amp;nbsp; &amp;nbsp;// coefficients for deflated polynomial
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt;= n; i++) {
&lt;br&gt;@@ -303,7 +312,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int n = coefficients.length - 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (n &amp;lt; 1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;polynomial degree must be positive: degree={0}&amp;quot;, n);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NON_POSITIVE_DEGREE_MESSAGE, n);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Complex N &amp;nbsp;= new Complex(n, &amp;nbsp; &amp;nbsp; 0.0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Complex N1 = new Complex(n - 1, 0.0);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/UnivariateRealSolverUtils.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -27,6 +27,11 @@
&lt;br&gt;&amp;nbsp; * @version $Revision$ $Date$
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class UnivariateRealSolverUtils {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for null function.*/
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NULL_FUNCTION_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;function is null&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Default constructor.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;@@ -168,7 +173,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FunctionEvaluationException {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (function == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;function is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(NULL_FUNCTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (maximumIterations &amp;lt;= 0) &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;@@ -225,7 +230,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static void setup(UnivariateRealFunction f) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (f == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;function is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(NULL_FUNCTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/AbstractIntegerDistribution.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -32,6 +32,14 @@
&lt;br&gt;&amp;nbsp;public abstract class AbstractIntegerDistribution extends AbstractDistribution
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;implements IntegerDistribution, Serializable {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for endpoints in wrong order. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String WRONG_ORDER_ENDPOINTS_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;lower endpoint ({0}) must be less than or equal to upper endpoint ({1})&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for out of range point. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String OUT_OF_RANGE_POINT =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;{0} out of [{1}, {2}] range&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -1146319659338487221L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -79,8 +87,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws MathException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (x0 &amp;gt; x1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;lower endpoint ({0}) must be less than or equal to upper endpoint ({1})&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x0, x1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WRONG_ORDER_ENDPOINTS_MESSAGE, x0, x1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Math.floor(x0) &amp;lt; x0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return cumulativeProbability(((int) Math.floor(x0)) + 1,
&lt;br&gt;@@ -137,8 +144,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public double cumulativeProbability(int x0, int x1) throws MathException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (x0 &amp;gt; x1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;lower endpoint ({0}) must be less than or equal to upper endpoint ({1})&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x0, x1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WRONG_ORDER_ENDPOINTS_MESSAGE, x0, x1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return cumulativeProbability(x1) - cumulativeProbability(x0 - 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -157,7 +163,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public int inverseCumulativeProbability(final double p) throws MathException{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (p &amp;lt; 0.0 || p &amp;gt; 1.0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;{0} out of [{1}, {2}] range&amp;quot;, p, 0.0, 1.0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUT_OF_RANGE_POINT, p, 0.0, 1.0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// by default, do simple bisection.
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/FDistributionImpl.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -32,6 +32,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;extends AbstractContinuousDistribution
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;implements FDistribution, Serializable &amp;nbsp;{
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for non positive degrees of freddom. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NON_POSITIVE_DEGREES_OF_FREEDOM_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;degrees of freedom must be positive ({0})&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -8516354193418641566L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -164,8 +168,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setNumeratorDegreesOfFreedom(double degreesOfFreedom) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (degreesOfFreedom &amp;lt;= 0.0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;degrees of freedom must be positive ({0})&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;degreesOfFreedom);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NON_POSITIVE_DEGREES_OF_FREEDOM_MESSAGE, degreesOfFreedom);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.numeratorDegreesOfFreedom = degreesOfFreedom;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -187,8 +190,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setDenominatorDegreesOfFreedom(double degreesOfFreedom) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (degreesOfFreedom &amp;lt;= 0.0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;degrees of freedom must be positive ({0})&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;degreesOfFreedom);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NON_POSITIVE_DEGREES_OF_FREEDOM_MESSAGE, degreesOfFreedom);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.denominatorDegreesOfFreedom = degreesOfFreedom;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/BigFraction.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/BigFraction.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/BigFraction.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/BigFraction.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/BigFraction.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -80,6 +80,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -5630213147331578515L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for zero denominator. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String FORBIDDEN_ZERO_DENOMINATOR =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;denominator must be different from 0&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** &amp;lt;code&amp;gt;BigInteger&amp;lt;/code&amp;gt; representation of 100. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final BigInteger ONE_HUNDRED_DOUBLE = BigInteger.valueOf(100);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -125,7 +129,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNullPointerException(&amp;quot;denominator is null&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (BigInteger.ZERO.equals(den)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(&amp;quot;denominator must be different from 0&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(FORBIDDEN_ZERO_DENOMINATOR);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (BigInteger.ZERO.equals(num)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;numerator &amp;nbsp; = BigInteger.ZERO;
&lt;br&gt;@@ -615,7 +619,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public BigFraction divide(final BigInteger bg) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (BigInteger.ZERO.equals(bg)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(&amp;quot;denominator must be different from 0&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(FORBIDDEN_ZERO_DENOMINATOR);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new BigFraction(numerator, denominator.multiply(bg));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -668,7 +672,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public BigFraction divide(final BigFraction fraction) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (BigInteger.ZERO.equals(fraction.numerator)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(&amp;quot;denominator must be different from 0&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(FORBIDDEN_ZERO_DENOMINATOR);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return multiply(fraction.reciprocal());
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/Fraction.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/Fraction.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/Fraction.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/Fraction.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/fraction/Fraction.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -77,6 +77,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** A fraction representing &amp;quot;-1 / 1&amp;quot;. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final Fraction MINUS_ONE = new Fraction(-1, 1);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for zero denominator. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String ZERO_DENOMINATOR_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;zero denominator in fraction {0}/{1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for overflow. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String OVERFLOW_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;overflow in fraction {0}/{1}, cannot negate&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for null fraction. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NULL_FRACTION =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;null fraction&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = 3698073679419233275L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -252,13 +264,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Fraction(int num, int den) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (den == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(&amp;quot;zero denominator in fraction {0}/{1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; num, den);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ZERO_DENOMINATOR_MESSAGE, num, den);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (den &amp;lt; 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (num == Integer.MIN_VALUE || den == Integer.MIN_VALUE) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(&amp;quot;overflow in fraction {0}/{1}, cannot negate&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; num, den);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OVERFLOW_MESSAGE, num, den);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;num = -num;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;den = -den;
&lt;br&gt;@@ -409,8 +421,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Fraction negate() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (numerator==Integer.MIN_VALUE) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(&amp;quot;overflow in fraction {0}/{1}, cannot negate&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; numerator, denominator);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OVERFLOW_MESSAGE, numerator, denominator);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new Fraction(-numerator, denominator);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -481,7 +493,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Fraction addSub(Fraction fraction, boolean isAdd) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fraction == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;null fraction&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(NULL_FRACTION);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// zero is identity for addition.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (numerator == 0) {
&lt;br&gt;@@ -538,7 +550,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Fraction multiply(Fraction fraction) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fraction == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;null fraction&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(NULL_FRACTION);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (numerator == 0 || fraction.numerator == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ZERO;
&lt;br&gt;@@ -573,7 +585,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Fraction divide(Fraction fraction) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fraction == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;null fraction&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(NULL_FRACTION);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fraction.numerator == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(
&lt;br&gt;@@ -606,8 +618,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static Fraction getReducedFraction(int numerator, int denominator) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (denominator == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;zero denominator in fraction {0}/{1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;numerator, denominator);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ZERO_DENOMINATOR_MESSAGE, numerator, denominator);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (numerator==0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ZERO; // normalize zero.
&lt;br&gt;@@ -620,8 +631,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (numerator==Integer.MIN_VALUE ||
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;denominator==Integer.MIN_VALUE) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createArithmeticException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;overflow in fraction {0}/{1}, cannot negate&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;numerator, denominator);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OVERFLOW_MESSAGE, numerator, denominator);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;numerator = -numerator;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;denominator = -denominator;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowFieldMatrix.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -39,6 +39,26 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = 7260756672015356458L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for at least one row. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String AT_LEAST_ONE_ROW_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;matrix must have at least one row&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for at least one column. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String AT_LEAST_ONE_COLUMN_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;matrix must have at least one column&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for different rows lengths. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DIFFERENT_ROWS_LENGTHS_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some rows have length {0} while others have length {1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for no entry at selected indices. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NO_ENTRY_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for vector lengths mismatch. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String VECTOR_LENGTHS_MISMATCH =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Entries of the matrix */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected T[][] data;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -111,17 +131,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nRows = d.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (nRows == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;matrix must have at least one row&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AT_LEAST_ONE_ROW_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nCols = d[0].length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (nCols == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;matrix must have at least one column&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AT_LEAST_ONE_COLUMN_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int r = 1; r &amp;lt; nRows; r++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (d[r].length != nCols) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some rows have length {0} while others have length {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nCols, d[r].length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIFFERENT_ROWS_LENGTHS_MESSAGE, nCols, d[r].length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data = d;
&lt;br&gt;@@ -306,29 +327,28 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (data == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (row &amp;gt; 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalStateException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;first {0} rows are not initialized yet&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;first {0} rows are not initialized yet&amp;quot;, row);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (column &amp;gt; 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalStateException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;first {0} columns are not initialized yet&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;first {0} columns are not initialized yet&amp;quot;, column);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nRows = subMatrix.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (nRows == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;matrix must have at least one row&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AT_LEAST_ONE_ROW_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nCols = subMatrix[0].length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (nCols == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;matrix must have at least one column&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AT_LEAST_ONE_COLUMN_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data = buildArray(getField(), subMatrix.length, nCols);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; data.length; ++i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (subMatrix[i].length != nCols) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some rows have length {0} while others have length {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nCols, subMatrix[i].length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIFFERENT_ROWS_LENGTHS_MESSAGE, nCols, subMatrix[i].length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.arraycopy(subMatrix[i], 0, data[i + row], column, nCols);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -346,8 +366,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return data[row][column];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MatrixIndexException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -359,8 +378,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data[row][column] = value;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MatrixIndexException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -372,8 +390,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data[row][column] = data[row][column].add(increment);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MatrixIndexException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -385,8 +402,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data[row][column] = data[row][column].multiply(factor);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MatrixIndexException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -410,8 +426,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nCols = this.getColumnDimension();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (v.length != nCols) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;v.length, nCols);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VECTOR_LENGTHS_MISMATCH, v.length, nCols);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final T[] out = buildArray(getField(), nRows);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int row = 0; row &amp;lt; nRows; row++) {
&lt;br&gt;@@ -434,8 +449,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nCols = getColumnDimension();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (v.length != nRows) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;v.length, nRows);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VECTOR_LENGTHS_MISMATCH, v.length, nRows);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final T[] out = buildArray(getField(), nCols);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/Array2DRowRealMatrix.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -54,6 +54,26 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -1067294169172445528L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for at least one row. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String AT_LEAST_ONE_ROW_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;matrix must have at least one row&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for at least one column. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String AT_LEAST_ONE_COLUMN_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;matrix must have at least one column&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for different rows lengths. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DIFFERENT_ROWS_LENGTHS_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some rows have length {0} while others have length {1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for no entry at selected indices. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NO_ENTRY_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for vector lengths mismatch. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String VECTOR_LENGTHS_MISMATCH =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Entries of the matrix */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected double data[][];
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -120,17 +140,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nRows = d.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (nRows == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;matrix must have at least one row&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AT_LEAST_ONE_ROW_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nCols = d[0].length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (nCols == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;matrix must have at least one column&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AT_LEAST_ONE_COLUMN_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int r = 1; r &amp;lt; nRows; r++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (d[r].length != nCols) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some rows have length {0} while others have length {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nCols, d[r].length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIFFERENT_ROWS_LENGTHS_MESSAGE, nCols, d[r].length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data = d;
&lt;br&gt;@@ -314,29 +335,28 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (data == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (row &amp;gt; 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalStateException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;first {0} rows are not initialized yet&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;first {0} rows are not initialized yet&amp;quot;, row);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (column &amp;gt; 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalStateException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;first {0} columns are not initialized yet&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;first {0} columns are not initialized yet&amp;quot;, column);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nRows = subMatrix.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (nRows == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;matrix must have at least one row&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AT_LEAST_ONE_ROW_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nCols = subMatrix[0].length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (nCols == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(&amp;quot;matrix must have at least one column&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AT_LEAST_ONE_COLUMN_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data = new double[subMatrix.length][nCols];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; data.length; ++i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (subMatrix[i].length != nCols) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some rows have length {0} while others have length {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nCols, subMatrix[i].length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIFFERENT_ROWS_LENGTHS_MESSAGE, nCols, subMatrix[i].length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.arraycopy(subMatrix[i], 0, data[i + row], column, nCols);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -354,8 +374,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return data[row][column];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MatrixIndexException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -367,8 +386,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data[row][column] = value;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MatrixIndexException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -380,8 +398,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data[row][column] += increment;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MatrixIndexException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -393,8 +410,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data[row][column] *= factor;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MatrixIndexException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;no entry at indices ({0}, {1}) in a {2}x{3} matrix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NO_ENTRY_MESSAGE, row, column, getRowDimension(), getColumnDimension());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -418,8 +434,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nCols = this.getColumnDimension();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (v.length != nCols) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;v.length, nCols);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VECTOR_LENGTHS_MISMATCH, v.length, nCols);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double[] out = new double[nRows];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int row = 0; row &amp;lt; nRows; row++) {
&lt;br&gt;@@ -442,8 +457,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int nCols = getColumnDimension();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (v.length != nRows) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;v.length, nRows);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VECTOR_LENGTHS_MISMATCH, v.length, nRows);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double[] out = new double[nCols];
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -29,6 +29,10 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class ArrayRealVector implements RealVector, Serializable {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for non fitting position and size. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NON_FITTING_POSITION_AND_SIZE_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;position {0} and size {1} don't fit to the size of the input array {2}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -1097961340710804027L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -112,8 +116,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public ArrayRealVector(double[] d, int pos, int size) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (d.length &amp;lt; pos + size) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;position {0} and size {1} don't fit to the size of the input array {2}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pos, size, d.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NON_FITTING_POSITION_AND_SIZE_MESSAGE, pos, size, d.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data = new double[size];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.arraycopy(d, pos, data, 0, size);
&lt;br&gt;@@ -139,8 +142,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public ArrayRealVector(Double[] d, int pos, int size) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (d.length &amp;lt; pos + size) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;position {0} and size {1} don't fit to the size of the input array {2}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pos, size, d.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NON_FITTING_POSITION_AND_SIZE_MESSAGE, pos, size, d.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data = new double[size];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = pos; i &amp;lt; pos + size; i++) {
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/LUDecompositionImpl.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -36,6 +36,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Default bound to determine effective singularity in LU decomposition */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final double DEFAULT_TOO_SMALL = 10E-12;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for vector length mismatch. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String VECTOR_LENGTH_MISMATCH_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Entries of LU decomposition. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private double lu[][];
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -262,8 +266,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int m = pivot.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (b.length != m) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b.length, m);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VECTOR_LENGTH_MISMATCH_MESSAGE, b.length, m);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (singular) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new SingularMatrixException();
&lt;br&gt;@@ -307,8 +310,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int m = pivot.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (b.getDimension() != m) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;vector length mismatch: got {0} but expected {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b.getDimension(), m);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VECTOR_LENGTH_MISMATCH_MESSAGE, b.getDimension(), m);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (singular) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new SingularMatrixException();
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/DirectSearchOptimizer.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -87,6 +87,14 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public abstract class DirectSearchOptimizer implements MultivariateRealOptimizer {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for equal vertices. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String EQUAL_VERTICES_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;equal vertices {0} and {1} in simplex configuration&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for dimension mismatch. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DIMENSION_MISMATCH_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;dimension mismatch {0} != {1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Simplex. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected RealPointValuePair[] simplex;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -146,8 +154,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int j = 0; j &amp;lt; i + 1; ++j) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (steps[j] == 0.0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;equals vertices {0} and {1} in simplex configuration&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;j, j + 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EQUAL_VERTICES_MESSAGE, j, j + 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.arraycopy(steps, 0, vertexI, 0, j + 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -184,8 +191,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// safety checks
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (refI.length != n) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;dimension mismatch {0} != {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;refI.length, n);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIMENSION_MISMATCH_MESSAGE, refI.length, n);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int j = 0; j &amp;lt; i; ++j) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double[] refJ = referenceSimplex[j];
&lt;br&gt;@@ -198,8 +204,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (allEquals) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;equals vertices {0} and {1} in simplex configuration&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;i, j);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EQUAL_VERTICES_MESSAGE, i, j);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -360,8 +365,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int n = startPoint.length;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (n != startConfiguration.length) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;dimension mismatch {0} != {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;n, startConfiguration.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIMENSION_MISMATCH_MESSAGE, n, startConfiguration.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// set first vertex
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/linear/SimplexTableau.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -62,6 +62,9 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;class SimplexTableau implements Serializable {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Column label for negative vars. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NEGATIVE_VAR_COLUMN_LABEL = &amp;quot;x-&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -1369660067587938365L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -131,7 +134,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columnLabels.add(&amp;quot;x&amp;quot; + i);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!restrictToNonNegative) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columnLabels.add(&amp;quot;x-&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columnLabels.add(NEGATIVE_VAR_COLUMN_LABEL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; getNumSlackVariables(); i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columnLabels.add(&amp;quot;s&amp;quot; + i);
&lt;br&gt;@@ -363,7 +366,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return current solution
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected RealPointValuePair getSolution() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;int negativeVarColumn = columnLabels.indexOf(&amp;quot;x-&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;int negativeVarColumn = columnLabels.indexOf(NEGATIVE_VAR_COLUMN_LABEL);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Integer negativeVarBasicRow = negativeVarColumn &amp;gt; 0 ? getBasicRow(negativeVarColumn) : null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;double mostNegative = negativeVarBasicRow == null ? 0 : getEntry(negativeVarBasicRow, getRhsOffset());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/descriptive/DescriptiveStatistics.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -65,6 +65,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serialization UID */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = 4133067267405273064L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Name of the setQuantile method. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String SET_QUANTILE_METHOD_NAME = &amp;quot;setQuantile&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for unsupported setQuantile. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String UNSUPPORTED_METHOD_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;percentile implementation {0} does not support {1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for illegal accesson setquantile. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String ILLEGAL_ACCESS_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;cannot access {0} method in percentile implementation {1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** hold the window size **/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected int windowSize = INFINITE_WINDOW;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -377,17 +388,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((Percentile) percentileImpl).setQuantile(p);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;percentileImpl.getClass().getMethod(&amp;quot;setQuantile&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;percentileImpl.getClass().getMethod(SET_QUANTILE_METHOD_NAME,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Class[] {Double.TYPE}).invoke(percentileImpl,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Object[] {Double.valueOf(p)});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NoSuchMethodException e1) { // Setter guard should prevent
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;percentile implementation {0} does not support setQuantile&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;percentileImpl.getClass().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UNSUPPORTED_METHOD_MESSAGE,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;percentileImpl.getClass().getName(), SET_QUANTILE_METHOD_NAME);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalAccessException e2) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;cannot access setQuantile method in percentile implementation {0}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;percentileImpl.getClass().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ILLEGAL_ACCESS_MESSAGE,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SET_QUANTILE_METHOD_NAME, percentileImpl.getClass().getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (InvocationTargetException e3) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(e3.getCause());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -560,7 +571,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public synchronized void setPercentileImpl(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UnivariateStatistic percentileImpl) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;percentileImpl.getClass().getMethod(&amp;quot;setQuantile&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;percentileImpl.getClass().getMethod(SET_QUANTILE_METHOD_NAME,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Class[] {Double.TYPE}).invoke(percentileImpl,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Object[] {Double.valueOf(50.0d)});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NoSuchMethodException e1) {
&lt;br&gt;@@ -569,8 +580,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;percentileImpl.getClass().getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IllegalAccessException e2) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;cannot access setQuantile method in percentile implementation {0}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;percentileImpl.getClass().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ILLEGAL_ACCESS_MESSAGE,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SET_QUANTILE_METHOD_NAME, percentileImpl.getClass().getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (InvocationTargetException e3) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(e3.getCause());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/TTestImpl.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -33,6 +33,10 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class TTestImpl implements TTest &amp;nbsp;{
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for insufficient data. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String INSUFFICIENT_DATA_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;insufficient data for t statistic, needs at least 2, got {0}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Distribution used to compute inference statistics. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private TDistribution distribution;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1039,7 +1043,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws IllegalArgumentException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((data == null) || (data.length &amp;lt; 2)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;insufficient data for t statistic, needs at least 2, got {0}&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INSUFFICIENT_DATA_MESSAGE,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(data == null) ? 0 : data.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -1052,7 +1056,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws IllegalArgumentException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((stat == null) || (stat.getN() &amp;lt; 2)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;insufficient data for t statistic, needs at least 2, got {0}&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INSUFFICIENT_DATA_MESSAGE,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(stat == null) ? 0 : stat.getN());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/transform/FastFourierTransformer.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -48,6 +48,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;static final long serialVersionUID = 5138259215438106000L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for not power of 2. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String NOT_POWER_OF_TWO_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;{0} is not a power of 2, consider padding for fix&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for dimension mismatch. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DIMENSION_MISMATCH_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some dimensions don't match: {0} != {1}&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for not computed roots of unity. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String MISSING_ROOTS_OF_UNITY_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;roots of unity have not been computed yet&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for out of range root index. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String OUT_OF_RANGE_ROOT_INDEX_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;out of range root of unity index {0} (must be in [{1};{2}])&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** roots of unity */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private RootsOfUnity roots = new RootsOfUnity();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -494,8 +510,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void verifyDataSet(double d[]) throws IllegalArgumentException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!isPowerOf2(d.length)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;{0} is not a power of 2, consider padding for fix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NOT_POWER_OF_TWO_MESSAGE, d.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -508,8 +523,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void verifyDataSet(Object o[]) throws IllegalArgumentException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!isPowerOf2(o.length)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;{0} is not a power of 2, consider padding for fix&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NOT_POWER_OF_TWO_MESSAGE, o.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -663,15 +677,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (vector == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (dimensionSize.length &amp;gt; 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some dimensions don't match: {0} != {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0, dimensionSize.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIMENSION_MISMATCH_MESSAGE, 0, dimensionSize.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (vector.length != dimensionSize.length) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some dimensions don't match: {0} != {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;vector.length, dimensionSize.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIMENSION_MISMATCH_MESSAGE, vector.length, dimensionSize.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object lastDimension = multiDimensionalComplexArray;
&lt;br&gt;@@ -694,15 +706,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (vector == null) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (dimensionSize.length &amp;gt; 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some dimensions don't match: {0} != {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0, dimensionSize.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIMENSION_MISMATCH_MESSAGE, 0, dimensionSize.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (vector.length != dimensionSize.length) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;some dimensions don't match: {0} != {1}&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;vector.length,dimensionSize.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DIMENSION_MISMATCH_MESSAGE, vector.length,dimensionSize.length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] lastDimension = (Object[]) multiDimensionalComplexArray;
&lt;br&gt;@@ -818,7 +828,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (omegaCount == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalStateException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;roots of unity have not been computed yet&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MISSING_ROOTS_OF_UNITY_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return isForward;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -882,12 +892,11 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (omegaCount == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalStateException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;roots of unity have not been computed yet&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MISSING_ROOTS_OF_UNITY_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((k &amp;lt; 0) || (k &amp;gt;= omegaCount)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;out of range root of unity index {0} (must be in [{1};{2}])&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;k, 0, omegaCount - 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUT_OF_RANGE_ROOT_INDEX_MESSAGE, k, 0, omegaCount - 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return omegaReal[k];
&lt;br&gt;@@ -906,12 +915,11 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (omegaCount == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalStateException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;roots of unity have not been computed yet&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MISSING_ROOTS_OF_UNITY_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((k &amp;lt; 0) || (k &amp;gt;= omegaCount)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createIllegalArgumentException(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;out of range root of unity index {0} (must be in [{1};{2}])&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;k, 0, omegaCount - 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUT_OF_RANGE_ROOT_INDEX_MESSAGE, k, 0, omegaCount - 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return isForward ? omegaImaginaryForward[k] : omegaImaginaryInverse[k];
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToDoubleHashMap.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -50,6 +50,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -3646337053166149105L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for map modification during iteration. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String CONCURRENT_MODIFICATION_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;map has been modified while iterating&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for exhausted iterator. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String EXHAUSTED_ITERATOR_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;iterator exhausted&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Load factor for the map. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final float LOAD_FACTOR = 0.5f;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -526,10 +534,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int key()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws ConcurrentModificationException, NoSuchElementException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (referenceCount != count) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(&amp;quot;map has been modified while iterating&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CONCURRENT_MODIFICATION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (current &amp;lt; 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(&amp;quot;iterator exhausted&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return keys[current];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -543,10 +552,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public double value()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws ConcurrentModificationException, NoSuchElementException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (referenceCount != count) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(&amp;quot;map has been modified while iterating&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CONCURRENT_MODIFICATION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (current &amp;lt; 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(&amp;quot;iterator exhausted&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return values[current];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -560,7 +570,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws ConcurrentModificationException, NoSuchElementException {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (referenceCount != count) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(&amp;quot;map has been modified while iterating&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CONCURRENT_MODIFICATION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// advance on step
&lt;br&gt;@@ -574,7 +585,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;next = -2;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (current &amp;lt; 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(&amp;quot;iterator exhausted&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java?rev=885278&amp;r1=885277&amp;r2=885278&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/OpenIntToFieldHashMap.java Sun Nov 29 21:47:51 2009
&lt;br&gt;@@ -53,6 +53,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Serializable version identifier. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -9179080286849120720L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for map modification during iteration. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String CONCURRENT_MODIFICATION_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;map has been modified while iterating&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Message for exhausted iterator. */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String EXHAUSTED_ITERATOR_MESSAGE =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;iterator exhausted&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/** Load factor for the map. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final float LOAD_FACTOR = 0.5f;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -538,10 +546,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int key()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws ConcurrentModificationException, NoSuchElementException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (referenceCount != count) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(&amp;quot;map has been modified while iterating&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CONCURRENT_MODIFICATION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (current &amp;lt; 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(&amp;quot;iterator exhausted&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return keys[current];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -555,10 +564,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public T value()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws ConcurrentModificationException, NoSuchElementException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (referenceCount != count) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(&amp;quot;map has been modified while iterating&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CONCURRENT_MODIFICATION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (current &amp;lt; 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(&amp;quot;iterator exhausted&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return values[current];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -572,7 +582,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws ConcurrentModificationException, NoSuchElementException {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (referenceCount != count) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(&amp;quot;map has been modified while iterating&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createConcurrentModificationException(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CONCURRENT_MODIFICATION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// advance on step
&lt;br&gt;@@ -586,7 +597,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ArrayIndexOutOfBoundsException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;next = -2;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (current &amp;lt; 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(&amp;quot;iterator exhausted&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw MathRuntimeException.createNoSuchElementException(EXHAUSTED_ITERATOR_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885278---in--commons-proper-math-trunk-src-main-java-org-apache-commons-math%3A-.--analysis-polynomials--analysis-solvers--distribution--fraction--linear--optimization-direct--optimization-linear--stat-descriptive--stat-inference--transform-...-tp26566546p26566546.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26566276</id>
	<title>svn commit: r885268 - /commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java</title>
	<published>2009-11-29T13:21:52Z</published>
	<updated>2009-11-29T13:21:52Z</updated>
	<author>
		<name>luc-17</name>
	</author>
	<content type="html">Author: luc
&lt;br&gt;Date: Sun Nov 29 21:21:50 2009
&lt;br&gt;New Revision: 885268
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885268&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885268&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;fixed some NaN appearing in eigenvectors when null pivots occurred in dstqds or dqds algorithms
&lt;br&gt;this is a partial fix for MATH-297 but not a complete one as for example computing the
&lt;br&gt;eigendecomposition if identity leads to three times the same vector ...
&lt;br&gt;JIRA: MATH-297
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java?rev=885268&amp;r1=885267&amp;r2=885268&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java?rev=885268&amp;r1=885267&amp;r2=885268&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/EigenDecompositionImpl.java Sun Nov 29 21:21:50 2009
&lt;br&gt;@@ -1832,14 +1832,35 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; nM1; ++i) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double di &amp;nbsp; = d[i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double li &amp;nbsp; = l[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double ldi &amp;nbsp;= li * di;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double diP1 = di + si;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double liP1 = li * di / diP1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double liP1 = ldi / diP1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[sixI] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= si;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[sixI + 1] &amp;nbsp; &amp;nbsp;= diP1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[sixI + 2] &amp;nbsp; &amp;nbsp;= liP1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;si = li * liP1 * si - lambda;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sixI += 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Double.isNaN(si)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// one of the pivot was null, use a slower but safer version of dstqds
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;si = -lambda;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sixI = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; nM1; ++i) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double di &amp;nbsp; = d[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double li &amp;nbsp; = l[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double ldi &amp;nbsp;= li * di;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;double diP1 = di + si;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Math.abs(diP1) &amp;lt; minPivot) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;diP1 = -minPivot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double liP1 = ldi / diP1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[sixI] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= si;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[sixI + 1] &amp;nbsp; &amp;nbsp;= diP1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[sixI + 2] &amp;nbsp; &amp;nbsp;= liP1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;si = li * ((liP1 == 0) ? li * di : liP1 * si) - lambda;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sixI += 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[6 * nM1 + 1] = d[nM1] + si;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[6 * nM1] &amp;nbsp; &amp;nbsp; = si;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -1868,6 +1889,25 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pi = pi * t - lambda;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sixI -= 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Double.isNaN(pi)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// one of the pivot was null, use a slower but safer version of dqds
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pi = d[nM1] - lambda;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sixI = 6 * (nM1 - 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = nM1 - 1; i &amp;gt;= 0; --i) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double di &amp;nbsp; = d[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double li &amp;nbsp; = l[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;double diP1 = di * li * li + pi;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Math.abs(diP1) &amp;lt; minPivot) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;diP1 = -minPivot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double t &amp;nbsp; &amp;nbsp;= di / diP1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[sixI + &amp;nbsp;9] &amp;nbsp; = pi;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[sixI + 10] &amp;nbsp; = diP1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[sixI + &amp;nbsp;5] &amp;nbsp; = li * t;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pi = ((t == 0) ? di : pi * t) - lambda;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sixI -= 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[3] = pi;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;work[4] = pi;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885268----commons-proper-math-trunk-src-main-java-org-apache-commons-math-linear-EigenDecompositionImpl.java-tp26566276p26566276.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26565513</id>
	<title>svn commit: r885261 - /commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java</title>
	<published>2009-11-29T12:07:02Z</published>
	<updated>2009-11-29T12:07:02Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Sun Nov 29 20:07:02 2009
&lt;br&gt;New Revision: 885261
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885261&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885261&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Improved javadoc. Added comment per JIRA: DBCP-307
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java?rev=885261&amp;r1=885260&amp;r2=885261&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java?rev=885261&amp;r1=885260&amp;r2=885261&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java (original)
&lt;br&gt;+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java Sun Nov 29 20:07:02 2009
&lt;br&gt;@@ -73,8 +73,8 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Close and free all {@link PreparedStatement}s or {@link CallableStatement} from my pool, and
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * close my underlying connection.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Close and free all {@link PreparedStatement}s or {@link CallableStatement} from the pool, and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * close the underlying connection.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public synchronized void close() throws SQLException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(null != _pstmtPool) {
&lt;br&gt;@@ -94,7 +94,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Create or obtain a {@link PreparedStatement} from my pool.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Create or obtain a {@link PreparedStatement} from the pool.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param sql the sql string used to define the PreparedStatement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link PoolablePreparedStatement}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public PreparedStatement prepareStatement(String sql) throws SQLException {
&lt;br&gt;@@ -114,7 +115,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Create or obtain a {@link PreparedStatement} from my pool.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Create or obtain a {@link PreparedStatement} from the pool.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param sql the sql string used to define the PreparedStatement
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param resultSetType result set type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param resultSetConcurrency result set concurrency
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link PoolablePreparedStatement}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
&lt;br&gt;@@ -135,7 +139,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create or obtain a {@link CallableStatement} from the pool.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param sql the sql string used to define the CallableStatement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link PoolableCallableStatement}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws SQLException
&lt;br&gt;@@ -155,8 +158,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create or obtain a {@link CallableStatement} from the pool.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param sql the sql string used to define the CallableStatement
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param resultSetType result set type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param resultSetConcurrency result set concurrency
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return a {@link PoolableCallableStatement}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws SQLException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @since 1.3
&lt;br&gt;@@ -202,6 +206,9 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create a PStmtKey for the given arguments.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param sql the sql string used to define the statement
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param resultSetType result set type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param resultSetConcurrency result set concurrency
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected Object createKey(String sql, int resultSetType, int resultSetConcurrency) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String catalog = null;
&lt;br&gt;@@ -213,6 +220,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create a PStmtKey for the given arguments.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param sql the sql string used to define the statement
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param resultSetType result set type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param resultSetConcurrency result set concurrency
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param stmtType statement type - either {@link #STATEMENT_CALLABLESTMT} or {@link #STATEMENT_PREPAREDSTMT}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected Object createKey(String sql, int resultSetType, int resultSetConcurrency, byte stmtType) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String catalog = null;
&lt;br&gt;@@ -224,6 +235,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create a PStmtKey for the given arguments.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param sql the sql string used to define the statement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected Object createKey(String sql) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String catalog = null;
&lt;br&gt;@@ -235,6 +247,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create a PStmtKey for the given arguments.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param sql the sql string used to define the statement
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param stmtType statement type - either {@link #STATEMENT_CALLABLESTMT} or {@link #STATEMENT_PREPAREDSTMT}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;protected Object createKey(String sql, byte stmtType) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String catalog = null;
&lt;br&gt;@@ -272,7 +286,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new PoolableCallableStatement(getDelegate().prepareCall( key._sql), key, _pstmtPool, this);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else { // Both _resultSetType and _resultSetConcurrency are non-null here (both or neither are set by constructors)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(key._stmtType == STATEMENT_PREPAREDSTMT) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new PoolablePreparedStatement(getDelegate().prepareStatement(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;key._sql, key._resultSetType.intValue(),key._resultSetConcurrency.intValue()), key, _pstmtPool, this);
&lt;br&gt;@@ -406,7 +420,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public boolean equals(Object that) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PStmtKey key = (PStmtKey)that;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( ((null == _sql &amp;&amp; null == key._sql) || _sql.equals(key._sql)) &amp;&amp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( ((null == _sql &amp;&amp; null == key._sql) || _sql.equals(key._sql)) &amp;&amp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((null == _catalog &amp;&amp; null == key._catalog) || _catalog.equals(key._catalog)) &amp;&amp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((null == _resultSetType &amp;&amp; null == key._resultSetType) || _resultSetType.equals(key._resultSetType)) &amp;&amp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((null == _resultSetConcurrency &amp;&amp; null == key._resultSetConcurrency) || _resultSetConcurrency.equals(key._resultSetConcurrency)) &amp;&amp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885261----commons-proper-dbcp-trunk-src-java-org-apache-commons-dbcp-PoolingConnection.java-tp26565513p26565513.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26559679</id>
	<title>svn commit: r885195 - /commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java</title>
	<published>2009-11-28T22:30:24Z</published>
	<updated>2009-11-28T22:30:24Z</updated>
	<author>
		<name>Paul Benedict-2</name>
	</author>
	<content type="html">Author: pbenedict
&lt;br&gt;Date: Sun Nov 29 06:30:23 2009
&lt;br&gt;New Revision: 885195
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885195&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885195&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;LANG-508: Allow exception message parameters as varargs, employ String#format to format exception message, full documentation update
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java?rev=885195&amp;r1=885194&amp;r2=885195&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java?rev=885195&amp;r1=885194&amp;r2=885195&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java (original)
&lt;br&gt;+++ commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java Sun Nov 29 06:30:23 2009
&lt;br&gt;@@ -21,25 +21,46 @@
&lt;br&gt;&amp;nbsp;import java.util.Map;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;- * &amp;lt;p&amp;gt;Assists in validating arguments.&amp;lt;/p&amp;gt;
&lt;br&gt;- * 
&lt;br&gt;- * &amp;lt;p&amp;gt;The class is based along the lines of JUnit. If an argument value is 
&lt;br&gt;- * deemed invalid, an IllegalArgumentException is thrown. For example:&amp;lt;/p&amp;gt;
&lt;br&gt;+ * &amp;lt;p&amp;gt;This class assists in validating arguments. The validation methods are 
&lt;br&gt;+ * based along the following principles: 
&lt;br&gt;+ * &amp;lt;ul&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;lt;li&amp;gt;An invalid &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; argument causes a {@link NullPointerException}.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;lt;li&amp;gt;A non-&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; argument causes an {@link IllegalArgumentException}.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;lt;li&amp;gt;An invalid index into an array/collection/map/string causes an {@link IndexOutOfBoundsException}.&amp;lt;/li&amp;gt; 
&lt;br&gt;+ * &amp;lt;/ul&amp;gt;
&lt;br&gt;+ * &amp;nbsp;
&lt;br&gt;+ * &amp;lt;p&amp;gt;All exceptions messages are &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax&lt;/a&gt;&amp;quot;&amp;gt;format strings&amp;lt;/a&amp;gt;
&lt;br&gt;+ * as defined by the Java platform. For example:&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; * 
&lt;br&gt;&amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- * Validate.isTrue( i &amp;gt; 0, &amp;quot;The value must be greater than zero: &amp;quot;, i);
&lt;br&gt;- * Validate.notNull( surname, &amp;quot;The surname must not be null&amp;quot;);
&lt;br&gt;+ * Validate.isTrue(i &amp;gt; 0, &amp;quot;The value must be greater than zero: %d&amp;quot;, i);
&lt;br&gt;+ * Validate.notNull(surname, &amp;quot;The surname must not be %s&amp;quot;, null);
&lt;br&gt;&amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- *
&lt;br&gt;+ * 
&lt;br&gt;&amp;nbsp; * @author Apache Software Foundation
&lt;br&gt;&amp;nbsp; * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26559679&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ola.berg@...&lt;/a&gt;&amp;quot;&amp;gt;Ola Berg&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp; * @author Gary Gregory
&lt;br&gt;&amp;nbsp; * @author Norm Deane
&lt;br&gt;- * @since 2.0
&lt;br&gt;+ * @author Paul Benedict
&lt;br&gt;&amp;nbsp; * @version $Id$
&lt;br&gt;+ * @see java.lang.String#format(String, Object...)
&lt;br&gt;+ * @since 2.0
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class Validate {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_IS_NULL_EXCEPTION_MESSAGE = &amp;quot;The validated object is null&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_IS_TRUE_EXCEPTION_MESSAGE = &amp;quot;The validated expression is false&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_NO_NULL_ELEMENTS_ARRAY_EXCEPTION_MESSAGE = &amp;quot;The validated array contains null element at index: %d&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_NO_NULL_ELEMENTS_COLLECTION_EXCEPTION_MESSAGE = &amp;quot;The validated collection contains null element at index: %d&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_NOT_BLANK_EXCEPTION_MESSAGE = &amp;quot;The validated character sequence is blank&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_NOT_EMPTY_ARRAY_EXCEPTION_MESSAGE = &amp;quot;The validated array is empty&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_NOT_EMPTY_CHAR_SEQUENCE_EXCEPTION_MESSAGE = &amp;quot;The validated character sequence is empty&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_NOT_EMPTY_COLLECTION_EXCEPTION_MESSAGE = &amp;quot;The validated collection is empty&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_NOT_EMPTY_MAP_EXCEPTION_MESSAGE = &amp;quot;The validated map is empty&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_VALID_INDEX_ARRAY_EXCEPTION_MESSAGE = &amp;quot;The validated array index is invalid: %d&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_VALID_INDEX_CHAR_SEQUENCE_EXCEPTION_MESSAGE = &amp;quot;The validated character sequence is invalid: %d&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String DEFAULT_VALID_INDEX_COLLECTION_EXCEPTION_MESSAGE = &amp;quot;The validated collection index is invalid: %d&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Constructor. This class should not normally be instantiated.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;@@ -51,133 +72,134 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the test result is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This is used when validating according to an arbitrary boolean expression,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * such as validating a primitive number or using your own custom validation 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * expression.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the argument condition is &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;; otherwise 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * throwing an exception with the specified message. This method is useful when
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * validating according to an arbitrary boolean expression, such as validating a 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * primitive number or using your own custom validation expression.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.isTrue( myObject.isOk(), &amp;quot;The object is not OK: &amp;quot;, myObject);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.isTrue(myObject.isOk(), &amp;quot;The object is not OK: %s&amp;quot;, myObject);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;For performance reasons, the object is passed as a separate parameter and
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * appended to the message string only in the case of an error.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * appended to the exception message only in the case of an error.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param expression &amp;nbsp;a boolean expression
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see if the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;expression is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param value &amp;nbsp;the value to append to the message in case of error
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param expression the boolean expression to check 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param value the value to append to the message when invalid
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if expression is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, long)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, double)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void isTrue(boolean expression, String message, Object value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (expression == false) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message + value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, value));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the test result is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This is used when validating according to an arbitrary boolean expression,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * such as validating a primitive number or using your own custom validation 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * expression.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the argument condition is &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;; otherwise 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * throwing an exception with the specified message. This method is useful when
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * validating according to an arbitrary boolean expression, such as validating a 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * primitive number or using your own custom validation expression.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.isTrue( i &amp;gt; 0, &amp;quot;The value must be greater than zero: &amp;quot;, i);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.isTrue(i &amp;gt; 0.0, &amp;quot;The value must be greater than zero: %d&amp;quot;, i);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;For performance reasons, the long value is passed as a separate parameter and
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * appended to the message string only in the case of an error.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * appended to the exception message only in the case of an error.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param expression &amp;nbsp;a boolean expression
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see if the expression is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param value &amp;nbsp;the value to append to the message in case of error
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param expression the boolean expression to check 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param value the value to append to the message when invalid
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if expression is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, double)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, Object)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void isTrue(boolean expression, String message, long value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (expression == false) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message + value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, value));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the test result is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This is used when validating according to an arbitrary boolean expression,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * such as validating a primitive number or using your own custom validation 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * expression.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the argument condition is &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;; otherwise 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * throwing an exception with the specified message. This method is useful when
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * validating according to an arbitrary boolean expression, such as validating a 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * primitive number or using your own custom validation expression.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.isTrue( d &amp;gt; 0.0, &amp;quot;The value must be greater than zero: &amp;quot;, d);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.isTrue(d &amp;gt; 0.0, &amp;quot;The value must be greater than zero: %s&amp;quot;, d);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;For performance reasons, the double value is passed as a separate parameter and
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * appended to the message string only in the case of an error.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * appended to the exception message only in the case of an error.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param expression &amp;nbsp;a boolean expression
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see if the expression
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param value &amp;nbsp;the value to append to the message in case of error
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param expression the boolean expression to check 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param value the value to append to the message when invalid
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if expression is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, long)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, Object)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void isTrue(boolean expression, String message, double value) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (expression == false) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message + value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, value));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the test result is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This is used when validating according to an arbitrary boolean expression,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * such as validating a primitive number or using your own custom validation 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * expression.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the argument condition is &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;; otherwise 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * throwing an exception with the specified message. This method is useful when
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * validating according to an arbitrary boolean expression, such as validating a 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * primitive number or using your own custom validation expression.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.isTrue( (i &amp;gt; 0), &amp;quot;The value must be greater than zero&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.isTrue( myObject.isOk(), &amp;quot;The object is not OK&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Validate.isTrue(i &amp;gt;= min &amp;&amp; i &amp;lt;= max, &amp;quot;The value must be between %d and %d&amp;quot;, min, max);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Validate.isTrue(myObject.isOk(), &amp;quot;The object is not okay&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;For performance reasons, the message string should not involve a string append,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * instead use the {@link #isTrue(boolean, String, Object)} method.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param expression &amp;nbsp;a boolean expression
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see if the expression
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param expression the boolean expression to check 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param values the optional values for the formatted exception message
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if expression is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, long)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, double)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, Object)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void isTrue(boolean expression, String message) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void isTrue(boolean expression, String message, Object... values) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (expression == false) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, values));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the test result is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;This is used when validating according to an arbitrary boolean expression,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * such as validating a primitive number or using your own custom validation 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * expression.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the argument condition is &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;; otherwise 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * throwing an exception. This method is useful when validating according 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * to an arbitrary boolean expression, such as validating a 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * primitive number or using your own custom validation expression.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.isTrue( i &amp;gt; 0 );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.isTrue( myObject.isOk() );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Validate.isTrue(i &amp;gt; 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Validate.isTrue(myObject.isOk());&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is 'The validated expression is false'.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message of the exception is &amp;quot;The validated expression is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * false&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param expression &amp;nbsp;a boolean expression
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param expression the boolean expression to check 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if expression is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, long)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, double)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, Object)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #isTrue(boolean, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void isTrue(boolean expression) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (expression == false) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;The validated expression is false&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(DEFAULT_IS_TRUE_EXCEPTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -185,512 +207,568 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument is not &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * otherwise throwing an exception.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notNull(myObject, &amp;quot;The object must not be null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notNull(myObject, &amp;quot;The object must not be null&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message of the exception is &amp;quot;The validated object is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param object &amp;nbsp;the object to check is not &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;if the object is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input object, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the object is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the object type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param object the object to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated object (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; for method chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the object is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notNull(Object, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T notNull(T object, String message) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (object == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return object;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T notNull(T object) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notNull(object, DEFAULT_IS_NULL_EXCEPTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notNull(myObject);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument is not &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * otherwise throwing an exception with the specified message.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notNull(myObject, &amp;quot;The object must not be null&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param object &amp;nbsp;the object to check is not &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input object, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the object is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the object type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param object the object to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param values the optional values for the formatted exception message
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated object (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; for method chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the object is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notNull(Object)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T notNull(T object) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notNull(object, &amp;quot;The validated object is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T notNull(T object, String message, Object... values) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (object == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NullPointerException(String.format(message, values));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return object;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// notEmpty array
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument array is empty (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or no elements).&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notEmpty(myArray, &amp;quot;The array must not be empty&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param array &amp;nbsp;the array to check is not empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see if the array is empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input array, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or empty, for chaining
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument array is neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * nor a length of zero (no elements); otherwise throwing an exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * with the specified message.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notEmpty(myArray, &amp;quot;The array must not be empty&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the array type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param array the array to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated array (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the array is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notEmpty(Object[])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T[] notEmpty(T[] array, String message) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (array == null || array.length == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T[] notEmpty(T[] array, String message, Object... values) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (array == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NullPointerException(String.format(message, values));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (array.length == 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, values));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument array is empty (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or no elements).&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notEmpty(myArray);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument array is neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * nor a length of zero (no elements); otherwise throwing an exception. 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is 'The validated array is empty'.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notEmpty(myArray);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is &amp;quot;The validated array is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * empty&amp;quot;.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param array &amp;nbsp;the array to check is not empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input array, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or empty, for chaining
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the array type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param array the array to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated array (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the array is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notEmpty(Object[], String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T[] notEmpty(T[] array) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notEmpty(array, &amp;quot;The validated array is empty&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notEmpty(array, DEFAULT_NOT_EMPTY_ARRAY_EXCEPTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// notEmpty collection
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument Collection is empty (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or no elements).&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notEmpty(myCollection, &amp;quot;The collection must not be empty&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param collection &amp;nbsp;the collection to check is not empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see if the collection is empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input collection, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or empty, for chaining
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument collection is neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * nor a size of zero (no elements); otherwise throwing an exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * with the specified message.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notEmpty(myCollection, &amp;quot;The collection must not be empty&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the collection type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param collection the collection to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated collection (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the collection is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the collection is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notEmpty(Object[])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T notEmpty(T collection, String message) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (collection == null || collection.size() == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T notEmpty(T collection, String message, Object... values) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (collection == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NullPointerException(String.format(message, values));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (collection.size() == 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, values));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return collection;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument Collection is empty (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or no elements).&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notEmpty(myCollection);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument collection is neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * nor a size of zero (no elements); otherwise throwing an exception. 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is 'The validated collection is empty'.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notEmpty(myCollection);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is &amp;quot;The validated collection is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * empty&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param collection &amp;nbsp;the collection to check is not empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input collection, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or empty, for chaining
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the collection type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param collection the collection to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated collection (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the collection is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the collection is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notEmpty(Collection, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T notEmpty(T collection) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notEmpty(collection, &amp;quot;The validated collection is empty&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notEmpty(collection, DEFAULT_NOT_EMPTY_COLLECTION_EXCEPTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// notEmpty map
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument Map is empty (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or no elements).&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notEmpty(myMap, &amp;quot;The map must not be empty&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param map &amp;nbsp;the map to check is not empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see if the map is empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input map, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or empty, for chaining
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument map is neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * nor a size of zero (no elements); otherwise throwing an exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * with the specified message.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notEmpty(myMap, &amp;quot;The map must not be empty&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the map type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param map the map to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated map (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the map is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the map is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notEmpty(Object[])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Map&amp;lt;?, ?&amp;gt;&amp;gt; T notEmpty(T map, String message) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (map == null || map.size() == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Map&amp;lt;?, ?&amp;gt;&amp;gt; T notEmpty(T map, String message, Object... values) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (map == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NullPointerException(String.format(message, values));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (map.size() == 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, values));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return map;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument Map is empty (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or no elements).&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notEmpty(myMap);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument map is neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * nor a size of zero (no elements); otherwise throwing an exception. 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is 'The validated map is empty'.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notEmpty(myMap);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is &amp;quot;The validated map is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * empty&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param map &amp;nbsp;the map to check is not empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input map, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or empty, for chaining
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the map type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param map the map to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated map (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the map is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the map is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notEmpty(Map, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Map&amp;lt;?, ?&amp;gt;&amp;gt; T notEmpty(T map) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notEmpty(map, &amp;quot;The validated map is empty&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notEmpty(map, DEFAULT_NOT_EMPTY_MAP_EXCEPTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// notEmpty string
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument String is empty (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or zero length).&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument character sequence is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; nor a length of zero (no characters); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * otherwise throwing an exception with the specified message.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notEmpty(myString, &amp;quot;The string must not be empty&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notEmpty(myString, &amp;quot;The string must not be empty&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param string &amp;nbsp;the string to check is not empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see if the string is empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input string, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or empty, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the string is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the character sequence type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param chars the character sequence to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated character sequence (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the character sequence is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the character sequence is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notEmpty(CharSequence)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T notEmpty(T string, String message) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (string == null || string.length() == 0) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T notEmpty(T chars, String message, Object... values) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (chars == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NullPointerException(String.format(message, values));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (chars.length() == 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, values));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return string;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return chars;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument String is empty (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or zero length).&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument character sequence is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; nor a length of zero (no characters); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * otherwise throwing an exception with the specified message.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notEmpty(myString);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is 'The validated string is empty'.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notEmpty(myString);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is &amp;quot;The validated 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * character sequence is empty&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param string &amp;nbsp;the string to check is not empty
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input string, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or empty, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the string is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the character sequence type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param chars the character sequence to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated character sequence (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the character sequence is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the character sequence is empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notEmpty(CharSequence, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T notEmpty(T string) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notEmpty(string, &amp;quot;The validated string is empty&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T notEmpty(T chars) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notEmpty(chars, DEFAULT_NOT_EMPTY_CHAR_SEQUENCE_EXCEPTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// notBlank string
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument String is blank (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, empty or whitespace).&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notBlank(myString, &amp;quot;The string must not be blank&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument character sequence is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, a length of zero (no characters), empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * nor whitespace; otherwise throwing an exception with the specified 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * message.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param string &amp;nbsp;the string to check is not blank
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message you would like to see if the string is blank
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input string, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or blank, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the string is blank
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @see StringUtils#isBlank(CharSequence)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notBlank(myString, &amp;quot;The string must not be blank&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the character sequence type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param chars the character sequence to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated character sequence (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the character sequence is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the character sequence is blank
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notBlank(CharSequence)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T notBlank(T string, String message) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (StringUtils.isBlank(string)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T notBlank(T chars, String message, Object... values) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (chars == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NullPointerException(String.format(message, values));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (StringUtils.isBlank(chars)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, values));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return string;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return chars;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument String is blank (&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, empty or whitespace).&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument character sequence is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * neither &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, a length of zero (no characters), empty
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * nor whitespace; otherwise throwing an exception.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.notBlank(myString);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is 'The validated string is blank'.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param string &amp;nbsp;the string to check is not blank
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the input string, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; or blank, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the string is blank
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @see StringUtils#isBlank(CharSequence)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.notBlank(myString);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is &amp;quot;The validated character 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * sequence is blank&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the character sequence type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param chars the character sequence to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated character sequence (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the character sequence is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the character sequence is blank
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #notBlank(CharSequence, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T notBlank(T string) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notBlank(string, &amp;quot;The validated string is blank&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T notBlank(T chars) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return notBlank(chars, DEFAULT_NOT_BLANK_EXCEPTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// notNullElements array
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument array has &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; elements or is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.noNullElements(myArray, &amp;quot;The array must not contain null elements&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param array &amp;nbsp;the array to check
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message if the array has
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; elements
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input array, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the array has &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;elements or is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument array is neither 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; nor contains any elements that are &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * otherwise throwing an exception with the specified message.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.noNullElements(myArray, &amp;quot;The array contain null at position %d&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, then the message in the exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is &amp;quot;The validated object is null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array has a &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; element, then the iteration 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * index of the invalid element is appended to the &amp;lt;code&amp;gt;values&amp;lt;/code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * argument.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the array type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param array the array to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated array (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if an element is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #noNullElements(Object[])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T[] noNullElements(T[] array, String message) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T[] noNullElements(T[] array, String message, Object... values) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(array);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; array.length; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (array[i] == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] values2 = ArrayUtils.add(values, i);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, values2));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument array has &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; elements or is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.noNullElements(myArray);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array has a null element the message in the exception is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 'The validated array contains null element at index: '.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param array &amp;nbsp;the array to check
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input array, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the array has &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;elements or is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument array is neither 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; nor contains any elements that are &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * otherwise throwing an exception.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.noNullElements(myArray);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, then the message in the exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is &amp;quot;The validated object is null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array has a &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; element, then the message in the
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * exception is &amp;quot;The validated array contains null element at index: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;quot followed by the index.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the array type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param array the array to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated array (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if an element is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #noNullElements(Object[], String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T[] noNullElements(T[] array) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(array);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; array.length; i++) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (array[i] == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;The validated array contains null element at index: &amp;quot; + i);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return array;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return noNullElements(array, DEFAULT_NO_NULL_ELEMENTS_ARRAY_EXCEPTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// notNullElements collection
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument Collection has &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; elements or is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.noNullElements(myCollection, &amp;quot;The collection must not contain null elements&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the collection is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param collection &amp;nbsp;the collection to check
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message if the collection has
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; elements
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input collection, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the collection has
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; elements or is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument collection is neither 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; nor contains any elements that are &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * otherwise throwing an exception with the specified message.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.noNullElements(myCollection, &amp;quot;The collection contains null at position %d&amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the collection is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, then the message in the exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is &amp;quot;The validated object is null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the collection has a &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; element, then the iteration 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * index of the invalid element is appended to the &amp;lt;code&amp;gt;values&amp;lt;/code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * argument.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the collection type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param collection the collection to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated collection (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if an element is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #noNullElements(Collection, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T noNullElements(T collection, String message) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T noNullElements(T collection, String message, Object... values) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(collection);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;?&amp;gt; it = collection.iterator(); it.hasNext();) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int i = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;?&amp;gt; it = collection.iterator(); it.hasNext(); i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (it.next() == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] values2 = ArrayUtils.addAll(values, i);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(String.format(message, values2));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return collection;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * if the argument Collection has &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; elements or is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.noNullElements(myCollection);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;The message in the exception is 'The validated collection contains null element at index: '.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the collection is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param collection &amp;nbsp;the collection to check
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input collection, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the collection has
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp;&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; elements or is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate that the specified argument collection is neither 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; nor contains any elements that are &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * otherwise throwing an exception.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.noNullElements(myCollection);&amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the collection is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, then the message in the exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is &amp;quot;The validated object is null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array has a &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; element, then the message in the
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * exception is &amp;quot;The validated collection contains null element at index: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;quot followed by the index.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the collection type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param collection the collection to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated collection (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; method for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if an element is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #noNullElements(Collection, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T noNullElements(T collection) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(collection);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int i = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;?&amp;gt; it = collection.iterator(); it.hasNext(); i++) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (it.next() == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;The validated collection contains null element at index: &amp;quot; + i);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return collection;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return noNullElements(collection, DEFAULT_NO_NULL_ELEMENTS_COLLECTION_EXCEPTION_MESSAGE);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// validIndex array
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt; if the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * index for the argument array is invalid or if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validates that the index is within the bounds of the argument 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * array; otherwise throwing an exception with the specified message.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.validIndex(myArray, 2, &amp;quot;The array index is invalid: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.validIndex(myArray, 2, &amp;quot;The array index is invalid: &amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param array &amp;nbsp;the array to check, not null
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message if the array index is invalid
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input array, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the array index is invalid or null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, then the message of the exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is &amp;quot;The validated object is null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the array type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param array the array to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param index the index
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated array (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; for method chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IndexOutOfBoundsException if the index is invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #validIndex(Object[], int)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T[] validIndex(T[] array, int index, String message) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T[] validIndex(T[] array, int index, String message, Object... values) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(array);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (index &amp;lt; 0 || index &amp;gt;= array.length) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message + index);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IndexOutOfBoundsException(String.format(message, values));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return array;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt; if the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * index for the argument array is invalid or if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validates that the index is within the bounds of the argument 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * array; otherwise throwing an exception.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.validIndex(myArray, 2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.validIndex(myArray, 2);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array index is invalid the message in the exception is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 'The validated array index is invalid: ' followed by the index.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, then the message of the exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is &amp;quot;The validated object is null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param array &amp;nbsp;the array to check, not null
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input array, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the array index is invalid or null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the index is invalid, then the message of the exception is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;quot;The validated array index is invalid: &amp;quot; followed by the 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * index.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the array type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param array the array to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param index the index
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated array (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; for method chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the array is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IndexOutOfBoundsException if the index is invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #validIndex(Object[], int, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static &amp;lt;T&amp;gt; T[] validIndex(T[] array, int index) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return validIndex(array, index, &amp;quot;The validated array index is invalid: &amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return validIndex(array, index, DEFAULT_VALID_INDEX_ARRAY_EXCEPTION_MESSAGE, index);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// validIndex collection
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt; if the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * index for the argument collection is invalid or if the collection is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validates that the index is within the bounds of the argument 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * collection; otherwise throwing an exception with the specified message.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.validIndex(myCollection, 2, &amp;quot;The collection index is invalid: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.validIndex(myCollection, 2, &amp;quot;The collection index is invalid: &amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the collection is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the collection is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, then the message of the 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * exception is &amp;quot;The validated object is null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param coll &amp;nbsp;the collection to check, not null
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message if the collection index is invalid
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input collection, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the collection index is invalid or null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the collection type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param collection the collection to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param index the index
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated collection (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; for chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the collection is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IndexOutOfBoundsException if the index is invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #validIndex(Collection, int)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T validIndex(T coll, int index, String message) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(coll);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (index &amp;lt; 0 || index &amp;gt;= coll.size()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message + index);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T validIndex(T collection, int index, String message, Object... values) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(collection);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (index &amp;lt; 0 || index &amp;gt;= collection.size()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IndexOutOfBoundsException(String.format(message, values));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return coll;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return collection;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt; if the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * index for the argument collection is invalid or if the collection is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validates that the index is within the bounds of the argument 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * collection; otherwise throwing an exception.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.validIndex(myCollection, 2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the collection index is invalid the message in the exception is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 'The validated collection index is invalid: ' followed by the index.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.validIndex(myCollection, 2);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the collection is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param coll &amp;nbsp;the collection to check, not null
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input collection, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the collection index is invalid or null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the index is invalid, then the message of the exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is &amp;quot;The validated collection index is invalid: &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * followed by the index.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the collection type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param collection the collection to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param index the index
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated collection (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; for method chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the collection is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IndexOutOfBoundsException if the index is invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #validIndex(Collection, int, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T validIndex(T coll, int index) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return validIndex(coll, index, &amp;quot;The validated collection index is invalid: &amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends Collection&amp;lt;?&amp;gt;&amp;gt; T validIndex(T collection, int index) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return validIndex(collection, index, DEFAULT_VALID_INDEX_COLLECTION_EXCEPTION_MESSAGE, index);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// validIndex string
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//---------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt; if the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * index for the argument character sequence (including String and StringBuffer)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * is invalid or if the string is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validates that the index is within the bounds of the argument 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * character sequence; otherwise throwing an exception with the 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * specified message.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.validIndex(myStr, 2, &amp;quot;The string index is invalid: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.validIndex(myStr, 2, &amp;quot;The string index is invalid: &amp;quot;);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the string is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the character sequence is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, then the message 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * of the exception is &amp;quot;The validated object is null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param str &amp;nbsp;the string to check, not null
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param message &amp;nbsp;the exception message if the string index is invalid
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input string, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the string index is invalid or null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the character sequence type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param chars the character sequence to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param index the index
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param message the exception message if invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated character sequence (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; for method chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the character sequence is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IndexOutOfBoundsException if the index is invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #validIndex(CharSequence, int)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T validIndex(T str, int index, String message) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(str);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (index &amp;lt; 0 || index &amp;gt;= str.length()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(message + index);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T validIndex(T chars, int index, String message, Object... values) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(chars);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (index &amp;lt; 0 || index &amp;gt;= chars.length()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IndexOutOfBoundsException(String.format(message, values));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return str;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return chars;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validate an argument, throwing &amp;lt;code&amp;gt;IllegalArgumentException&amp;lt;/code&amp;gt; if the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * index for the argument character sequence (including String and StringBuffer)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * is invalid or if the string is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Validate.validIndex(myStr, 2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the string index is invalid the message in the exception is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 'The validated string index is invalid: ' followed by the index.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Validates that the index is within the bounds of the argument 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * character sequence; otherwise throwing an exception.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;Validate.validIndex(myStr, 2);&amp;lt;/pre&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the string is null then the message in the exception is 'The validated object is null'.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the character sequence is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, then the message 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * of the exception is &amp;quot;The validated object is 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * null&amp;quot;.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;If the index is invalid, then the message of the exception 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * is &amp;quot;The validated character sequence index is invalid: &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * followed by the index.&amp;lt;/p&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param str &amp;nbsp;the string to check, not null
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return the validated input string, never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, for chaining
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException if the string index is invalid or null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param &amp;lt;T&amp;gt; the character sequence type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param chars the character sequence to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param index the index
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the validated character sequence (never &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt; for method chaining)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NullPointerException if the character sequence is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws IndexOutOfBoundsException if the index is invalid
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #validIndex(CharSequence, int, String, Object...)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T validIndex(T str, int index) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return validIndex(str, index, &amp;quot;The validated string index is invalid: &amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static &amp;lt;T extends CharSequence&amp;gt; T validIndex(T chars, int index) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return validIndex(chars, index, DEFAULT_VALID_INDEX_CHAR_SEQUENCE_EXCEPTION_MESSAGE, index);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885195----commons-proper-lang-trunk-src-java-org-apache-commons-lang-Validate.java-tp26559679p26559679.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26558419</id>
	<title>svn commit: r885180 - in /commons/sandbox/flatfile/trunk: pom.xml src/site/xdoc/issue-tracking.xml</title>
	<published>2009-11-28T16:31:39Z</published>
	<updated>2009-11-28T16:31:39Z</updated>
	<author>
		<name>niallp</name>
	</author>
	<content type="html">Author: niallp
&lt;br&gt;Date: Sun Nov 29 00:31:38 2009
&lt;br&gt;New Revision: 885180
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885180&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885180&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Generate Issue Tracking page for flatfile
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/sandbox/flatfile/trunk/src/site/xdoc/issue-tracking.xml &amp;nbsp; (with props)
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/sandbox/flatfile/trunk/pom.xml
&lt;br&gt;&lt;br&gt;Modified: commons/sandbox/flatfile/trunk/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/sandbox/flatfile/trunk/pom.xml?rev=885180&amp;r1=885179&amp;r2=885180&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/sandbox/flatfile/trunk/pom.xml?rev=885180&amp;r1=885179&amp;r2=885180&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/sandbox/flatfile/trunk/pom.xml (original)
&lt;br&gt;+++ commons/sandbox/flatfile/trunk/pom.xml Sun Nov 29 00:31:38 2009
&lt;br&gt;@@ -131,6 +131,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.source&amp;gt;1.5&amp;lt;/maven.compile.source&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.target&amp;gt;1.5&amp;lt;/maven.compile.target&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.componentid&amp;gt;flatfile&amp;lt;/commons.componentid&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;commons.jira.componentid&amp;gt;12312476&amp;lt;/commons.jira.componentid&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;reporting&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;@@ -139,7 +140,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-pmd-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;targetJdk&amp;gt;1.5&amp;lt;/targetJdk&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;targetJdk&amp;gt;${maven.compile.target}&amp;lt;/targetJdk&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;&lt;br&gt;Added: commons/sandbox/flatfile/trunk/src/site/xdoc/issue-tracking.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/sandbox/flatfile/trunk/src/site/xdoc/issue-tracking.xml?rev=885180&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/sandbox/flatfile/trunk/src/site/xdoc/issue-tracking.xml?rev=885180&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/sandbox/flatfile/trunk/src/site/xdoc/issue-tracking.xml (added)
&lt;br&gt;+++ commons/sandbox/flatfile/trunk/src/site/xdoc/issue-tracking.xml Sun Nov 29 00:31:38 2009
&lt;br&gt;@@ -0,0 +1,100 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+this work for additional information regarding copyright ownership.
&lt;br&gt;+The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+(the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+See the License for the specific language governing permissions and
&lt;br&gt;+limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ +======================================================================+
&lt;br&gt;+ |**** &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;****|
&lt;br&gt;+ |**** &amp;nbsp; &amp;nbsp; &amp;nbsp;THIS FILE IS GENERATED BY THE COMMONS BUILD PLUGIN &amp;nbsp; &amp;nbsp; &amp;nbsp;****|
&lt;br&gt;+ |**** &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO NOT EDIT DIRECTLY &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;****|
&lt;br&gt;+ |**** &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;****|
&lt;br&gt;+ +======================================================================+
&lt;br&gt;+ | TEMPLATE FILE: sandbox-issue-tracking-template.xml &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |
&lt;br&gt;+ | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
&lt;br&gt;+ +======================================================================+
&lt;br&gt;+ | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ | 1) Re-generate using: mvn commons:sandbox-jira-page &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ | 2) Set the following properties in the component's pom: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ | &amp;nbsp; &amp;nbsp;- commons.jira.componentid (required, numeric) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ | 3) Example Properties &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ | &amp;nbsp;&amp;lt;properties&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ | &amp;nbsp; &amp;nbsp;&amp;lt;commons.jira.componentid&amp;gt;12311182&amp;lt;/commons.jira.componentid&amp;gt; &amp;nbsp; &amp;nbsp; |
&lt;br&gt;+ | &amp;nbsp;&amp;lt;/properties&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |
&lt;br&gt;+ | &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;+ +======================================================================+
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;document&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Commons Flatfile (Sandbox) Issue tracking&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;author email=&amp;quot;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26558419&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev@...&lt;/a&gt;&amp;quot;&amp;gt;Commons Documentation Team&amp;lt;/author&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;body&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;section name=&amp;quot;Commons Flatfile (Sandbox) Issue tracking&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;Commons Flatfile (Sandbox) uses &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/&lt;/a&gt;&amp;quot;&amp;gt;ASF JIRA&amp;lt;/a&amp;gt; for tracking issues.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;See the &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/browse/SANDBOX&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/browse/SANDBOX&lt;/a&gt;&amp;quot;&amp;gt;Sandbox JIRA project page&amp;lt;/a&amp;gt;.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;To use JIRA you may need to &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/secure/Signup!default.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/Signup!default.jspa&lt;/a&gt;&amp;quot;&amp;gt;create an account&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;(if you have previously created/updated Commons issues using Bugzilla an account will have been automatically
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;created and you can use the &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/secure/ForgotPassword!default.jspa&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/ForgotPassword!default.jspa&lt;/a&gt;&amp;quot;&amp;gt;Forgot Password&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;page to get a new password).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;If you would like to report a bug, or raise an enhancement request with
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;Commons Flatfile (Sandbox) please do the following:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ol&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;pid=12310491&amp;amp;component=12312476&amp;amp;sorter/field=issuekey&amp;amp;sorter/order=DESC&amp;amp;status=1&amp;amp;status=3&amp;amp;status=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;pid=12310491&amp;amp;component=12312476&amp;amp;sorter/field=issuekey&amp;amp;sorter/order=DESC&amp;amp;status=1&amp;amp;status=3&amp;amp;status=4&lt;/a&gt;&amp;quot;&amp;gt;Search existing open bugs&amp;lt;/a&amp;gt;.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If you find your issue listed then please add a comment with your details.&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;mail-lists.html&amp;quot;&amp;gt;Search the mailing list archive(s)&amp;lt;/a&amp;gt;.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;You may find your issue or idea has already been discussed.&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;Decide if your issue is a bug or an enhancement.&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;Submit either a &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310491&amp;amp;components=12312476&amp;amp;issuetype=1&amp;amp;priority=4&amp;amp;assignee=-1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310491&amp;amp;components=12312476&amp;amp;issuetype=1&amp;amp;priority=4&amp;amp;assignee=-1&lt;/a&gt;&amp;quot;&amp;gt;bug report&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;or &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310491&amp;amp;components=12312476&amp;amp;issuetype=4&amp;amp;priority=4&amp;amp;assignee=-1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310491&amp;amp;components=12312476&amp;amp;issuetype=4&amp;amp;priority=4&amp;amp;assignee=-1&lt;/a&gt;&amp;quot;&amp;gt;enhancement request&amp;lt;/a&amp;gt;.&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/ol&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;Please also remember these points:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ul&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;the more information you provide, the better we can help you&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;test cases are vital, particularly for any proposed enhancements&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;the developers of Commons Flatfile (Sandbox) are all unpaid volunteers&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/ul&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;For more information on subversion and creating patches see the
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://www.apache.org/dev/contributors.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/dev/contributors.html&lt;/a&gt;&amp;quot;&amp;gt;Apache Contributors Guide&amp;lt;/a&amp;gt;.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;You may also find these links useful:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ul&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;pid=12310491&amp;amp;component=12312476&amp;amp;sorter/field=issuekey&amp;amp;sorter/order=DESC&amp;amp;status=1&amp;amp;status=3&amp;amp;status=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;pid=12310491&amp;amp;component=12312476&amp;amp;sorter/field=issuekey&amp;amp;sorter/order=DESC&amp;amp;status=1&amp;amp;status=3&amp;amp;status=4&lt;/a&gt;&amp;quot;&amp;gt;All Open Commons Flatfile (Sandbox) bugs&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;pid=12310491&amp;amp;component=12312476&amp;amp;sorter/field=issuekey&amp;amp;sorter/order=DESC&amp;amp;status=5&amp;amp;status=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;pid=12310491&amp;amp;component=12312476&amp;amp;sorter/field=issuekey&amp;amp;sorter/order=DESC&amp;amp;status=5&amp;amp;status=6&lt;/a&gt;&amp;quot;&amp;gt;All Resolved Commons Flatfile (Sandbox) bugs&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;pid=12310491&amp;amp;component=12312476&amp;amp;sorter/field=issuekey&amp;amp;sorter/order=DESC&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;pid=12310491&amp;amp;component=12312476&amp;amp;sorter/field=issuekey&amp;amp;sorter/order=DESC&lt;/a&gt;&amp;quot;&amp;gt;All Commons Flatfile (Sandbox) bugs&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/ul&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/section&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/body&amp;gt;
&lt;br&gt;+&amp;lt;/document&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: commons/sandbox/flatfile/trunk/src/site/xdoc/issue-tracking.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: commons/sandbox/flatfile/trunk/src/site/xdoc/issue-tracking.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Date Author Id Revision HeadURL
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885180---in--commons-sandbox-flatfile-trunk%3A-pom.xml-src-site-xdoc-issue-tracking.xml-tp26558419p26558419.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26558266</id>
	<title>svn commit: r885179 - /commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/SQLNestedException.java</title>
	<published>2009-11-28T16:10:52Z</published>
	<updated>2009-11-28T16:10:52Z</updated>
	<author>
		<name>niallp</name>
	</author>
	<content type="html">Author: niallp
&lt;br&gt;Date: Sun Nov 29 00:10:52 2009
&lt;br&gt;New Revision: 885179
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885179&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885179&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;DBCP-310 Simplify SQLNestedException now minimum is JDK 1.4
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/SQLNestedException.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/SQLNestedException.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/SQLNestedException.java?rev=885179&amp;r1=885178&amp;r2=885179&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/SQLNestedException.java?rev=885179&amp;r1=885178&amp;r2=885179&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/SQLNestedException.java (original)
&lt;br&gt;+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/SQLNestedException.java Sun Nov 29 00:10:52 2009
&lt;br&gt;@@ -28,34 +28,12 @@
&lt;br&gt;&amp;nbsp; * 
&lt;br&gt;&amp;nbsp; * @author Dirk Verbeeck
&lt;br&gt;&amp;nbsp; * @version $Revision$ $Date$
&lt;br&gt;- * @deprecated Use '(SQLException) new SQLException(msg).initCause(e)' instead; this class will be removed in DBCP 1.4
&lt;br&gt;+ * @deprecated Use '(SQLException) new SQLException(msg).initCause(e)' instead; this class will be removed in DBCP 2.0
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class SQLNestedException extends SQLException {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = 1046151479543081202L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/* Throwable.getCause detection as found in commons-lang */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static final Method THROWABLE_CAUSE_METHOD;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Method getCauseMethod;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getCauseMethod = Throwable.class.getMethod(&amp;quot;getCause&amp;quot;, (Class[]) null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getCauseMethod = null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;THROWABLE_CAUSE_METHOD = getCauseMethod;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static boolean hasThrowableCauseMethod() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return THROWABLE_CAUSE_METHOD != null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Holds the reference to the exception or error that caused
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * this exception to be thrown.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private final Throwable cause;
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Constructs a new &amp;lt;code&amp;gt;SQLNestedException&amp;lt;/code&amp;gt; with specified
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * detail message and nested &amp;lt;code&amp;gt;Throwable&amp;lt;/code&amp;gt;.
&lt;br&gt;@@ -66,33 +44,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public SQLNestedException(String msg, Throwable cause) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(msg);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.cause = cause;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (cause != null){
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final PrintWriter logWriter = DriverManager.getLogWriter();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (logWriter != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logWriter.print(&amp;quot;Caused by: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cause.printStackTrace(logWriter);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Throwable getCause() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return this.cause;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void printStackTrace(PrintStream s) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.printStackTrace(s);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((cause != null) &amp;&amp; !hasThrowableCauseMethod()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s.print(&amp;quot;Caused by: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.cause.printStackTrace(s);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void printStackTrace(PrintWriter s) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.printStackTrace(s);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((cause != null) &amp;&amp; !hasThrowableCauseMethod()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s.print(&amp;quot;Caused by: &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.cause.printStackTrace(s);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initCause(cause);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885179----commons-proper-dbcp-trunk-src-java-org-apache-commons-dbcp-SQLNestedException.java-tp26558266p26558266.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26558255</id>
	<title>svn commit: r885178 - /commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java</title>
	<published>2009-11-28T16:08:59Z</published>
	<updated>2009-11-28T16:08:59Z</updated>
	<author>
		<name>niallp</name>
	</author>
	<content type="html">Author: niallp
&lt;br&gt;Date: Sun Nov 29 00:08:59 2009
&lt;br&gt;New Revision: 885178
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885178&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885178&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;DBCP-311 Don't log and re-throw exceptions
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java?rev=885178&amp;r1=885177&amp;r2=885178&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java?rev=885178&amp;r1=885177&amp;r2=885178&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java (original)
&lt;br&gt;+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java Sun Nov 29 00:08:59 2009
&lt;br&gt;@@ -145,8 +145,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xaDataSourceClass = Class.forName(xaDataSource);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Throwable t) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String message = &amp;quot;Cannot load XA data source class '&amp;quot; + xaDataSource + &amp;quot;'&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logWriter.println(message);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.printStackTrace(logWriter);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw (SQLException)new SQLException(message).initCause(t);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -154,8 +152,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xaDataSourceInstance = (XADataSource) xaDataSourceClass.newInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Throwable t) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String message = &amp;quot;Cannot create XA data source of class '&amp;quot; + xaDataSource + &amp;quot;'&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logWriter.println(message);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.printStackTrace(logWriter);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw (SQLException)new SQLException(message).initCause(t);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885178----commons-proper-dbcp-trunk-src-java-org-apache-commons-dbcp-managed-BasicManagedDataSource.java-tp26558255p26558255.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26554475</id>
	<title>svn commit: r885109 - /commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java</title>
	<published>2009-11-28T08:16:00Z</published>
	<updated>2009-11-28T08:16:00Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Sat Nov 28 16:15:59 2009
&lt;br&gt;New Revision: 885109
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885109&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885109&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Javadoc only. &amp;nbsp;Fixed broken link.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java?rev=885109&amp;r1=885108&amp;r2=885109&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java?rev=885109&amp;r1=885108&amp;r2=885109&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java (original)
&lt;br&gt;+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/PoolingConnection.java Sat Nov 28 16:15:59 2009
&lt;br&gt;@@ -255,10 +255,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * {@link KeyedPoolableObjectFactory} method for creating
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * {@link PoolablePreparedStatement}s or {@link PoolableCallableStatement}s.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * The {@link PStmtKey#_stmtType} field in the key determines whether
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * The &amp;lt;code&amp;gt;stmtType&amp;lt;/code&amp;gt; field in the key determines whether 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * a PoolablePreparedStatement or PoolableCallableStatement is created.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param obj the key for the {@link PreparedStatement} to be created
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #createKey(String, int, int, byte)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Object makeObject(Object obj) throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(null == obj || !(obj instanceof PStmtKey)) {
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885109----commons-proper-dbcp-trunk-src-java-org-apache-commons-dbcp-PoolingConnection.java-tp26554475p26554475.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26554468</id>
	<title>svn commit: r885108 - /commons/proper/dbcp/trunk/pom.xml</title>
	<published>2009-11-28T08:14:59Z</published>
	<updated>2009-11-28T08:14:59Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Sat Nov 28 16:14:58 2009
&lt;br&gt;New Revision: 885108
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885108&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885108&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Changed jdk level to 1.6
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/pom.xml
&lt;br&gt;&lt;br&gt;Modified: commons/proper/dbcp/trunk/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/pom.xml?rev=885108&amp;r1=885107&amp;r2=885108&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/pom.xml?rev=885108&amp;r1=885107&amp;r2=885108&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/pom.xml (original)
&lt;br&gt;+++ commons/proper/dbcp/trunk/pom.xml Sat Nov 28 16:14:58 2009
&lt;br&gt;@@ -214,9 +214,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/dependencies&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;!-- Target Java versions are actually 1.4, 1.5 and 1.6 --&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.source&amp;gt;1.5&amp;lt;/maven.compile.source&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.target&amp;gt;1.5&amp;lt;/maven.compile.target&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;!-- Target Java versions are actually 1.4, 1.5 and 1.6
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; but maven build only supports 1.6 --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.source&amp;gt;1.6&amp;lt;/maven.compile.source&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;maven.compile.target&amp;gt;1.6&amp;lt;/maven.compile.target&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.componentid&amp;gt;dbcp&amp;lt;/commons.componentid&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.release.version&amp;gt;1.2.2&amp;lt;/commons.release.version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;commons.binary.suffix&amp;gt;&amp;lt;/commons.binary.suffix&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885108----commons-proper-dbcp-trunk-pom.xml-tp26554468p26554468.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26554374</id>
	<title>svn commit: r885104 - /commons/proper/dbcp/trunk/pom.xml</title>
	<published>2009-11-28T08:02:57Z</published>
	<updated>2009-11-28T08:02:57Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Sat Nov 28 16:02:57 2009
&lt;br&gt;New Revision: 885104
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885104&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885104&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Updated pool javadoc link.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/pom.xml
&lt;br&gt;&lt;br&gt;Modified: commons/proper/dbcp/trunk/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/pom.xml?rev=885104&amp;r1=885103&amp;r2=885104&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/pom.xml?rev=885104&amp;r1=885103&amp;r2=885104&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/pom.xml (original)
&lt;br&gt;+++ commons/proper/dbcp/trunk/pom.xml Sat Nov 28 16:02:57 2009
&lt;br&gt;@@ -332,7 +332,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;links&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link&amp;gt;&lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/j2se/1.5.0/docs/api&lt;/a&gt;&amp;lt;/link&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link&amp;gt;&lt;a href=&quot;http://commons.apache.org/pool/api-1.5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://commons.apache.org/pool/api-1.5&lt;/a&gt;&amp;lt;/link&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link&amp;gt;&lt;a href=&quot;http://commons.apache.org/pool/api-1.5.4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://commons.apache.org/pool/api-1.5.4&lt;/a&gt;&amp;lt;/link&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link&amp;gt;&lt;a href=&quot;http://java.sun.com/j2ee/sdk_1.3/techdocs/api&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/j2ee/sdk_1.3/techdocs/api&lt;/a&gt;&amp;lt;/link&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/links&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885104----commons-proper-dbcp-trunk-pom.xml-tp26554374p26554374.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26552232</id>
	<title>svn commit: r885084 - /commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java</title>
	<published>2009-11-28T03:09:45Z</published>
	<updated>2009-11-28T03:09:45Z</updated>
	<author>
		<name>niallp</name>
	</author>
	<content type="html">Author: niallp
&lt;br&gt;Date: Sat Nov 28 11:09:45 2009
&lt;br&gt;New Revision: 885084
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885084&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885084&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Use initCause() method with SQLException rather than commeting out for pre-JDK-1.6
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java?rev=885084&amp;r1=885083&amp;r2=885084&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java?rev=885084&amp;r1=885083&amp;r2=885084&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java (original)
&lt;br&gt;+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp/managed/BasicManagedDataSource.java Sat Nov 28 11:09:45 2009
&lt;br&gt;@@ -147,11 +147,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String message = &amp;quot;Cannot load XA data source class '&amp;quot; + xaDataSource + &amp;quot;'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logWriter.println(message);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.printStackTrace(logWriter);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new SQLException(message
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* JDBC_4_ANT_KEY_BEGIN */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;, t
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* JDBC_4_ANT_KEY_END */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw (SQLException)new SQLException(message).initCause(t);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;@@ -160,11 +156,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String message = &amp;quot;Cannot create XA data source of class '&amp;quot; + xaDataSource + &amp;quot;'&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logWriter.println(message);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.printStackTrace(logWriter);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new SQLException(message
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* JDBC_4_ANT_KEY_BEGIN */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;, t
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* JDBC_4_ANT_KEY_END */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw (SQLException)new SQLException(message).initCause(t);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -209,11 +201,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (RuntimeException e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw e;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new SQLException(&amp;quot;Cannot create PoolableConnectionFactory (&amp;quot; + e.getMessage() + &amp;quot;)&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* JDBC_4_ANT_KEY_BEGIN */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;, e
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* JDBC_4_ANT_KEY_END */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw (SQLException)new SQLException(&amp;quot;Cannot create PoolableConnectionFactory (&amp;quot; + e.getMessage() + &amp;quot;)&amp;quot;).initCause(e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885084----commons-proper-dbcp-trunk-src-java-org-apache-commons-dbcp-managed-BasicManagedDataSource.java-tp26552232p26552232.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26549093</id>
	<title>svn commit: r885049 - /commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java</title>
	<published>2009-11-27T15:27:16Z</published>
	<updated>2009-11-27T15:27:16Z</updated>
	<author>
		<name>luc-17</name>
	</author>
	<content type="html">Author: luc
&lt;br&gt;Date: Fri Nov 27 23:27:16 2009
&lt;br&gt;New Revision: 885049
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885049&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885049&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;removed an unneeded constant
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java?rev=885049&amp;r1=885048&amp;r2=885049&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java?rev=885049&amp;r1=885048&amp;r2=885049&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java Fri Nov 27 23:27:16 2009
&lt;br&gt;@@ -128,12 +128,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; final double s3 &amp;nbsp;= Math.sqrt(3.0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; final double s14 = Math.sqrt(14.0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; final double s42 = Math.sqrt(42.0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; final double s1553 = Math.sqrt(1553.0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RealMatrix uRef = MatrixUtils.createRealMatrix(new double[][] {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;-1.0 / s14, &amp;nbsp;5.0 / s42, &amp;nbsp;1.0 / s3 },
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;-2.0 / s14, -4.0 / s42, &amp;nbsp;1.0 / s3 },
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;-3.0 / s14, &amp;nbsp;1.0 / s42, -1.0 / s3 }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;-1.0 / s14, &amp;nbsp;5.0 / (s3 * s14), &amp;nbsp;1.0 / s3 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;-2.0 / s14, -4.0 / (s3 * s14), &amp;nbsp;1.0 / s3 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;-3.0 / s14, &amp;nbsp;1.0 / (s3 * s14), -1.0 / s3 }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; });
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RealMatrix bRef = MatrixUtils.createRealMatrix(new double[][] {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { -s14, s1553 / s14, &amp;nbsp; 0.0 },
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885049----commons-proper-math-trunk-src-test-java-org-apache-commons-math-linear-BiDiagonalTransformerTest.java-tp26549093p26549093.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26549078</id>
	<title>svn commit: r885048 - /commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java</title>
	<published>2009-11-27T15:24:13Z</published>
	<updated>2009-11-27T15:24:13Z</updated>
	<author>
		<name>luc-17</name>
	</author>
	<content type="html">Author: luc
&lt;br&gt;Date: Fri Nov 27 23:24:12 2009
&lt;br&gt;New Revision: 885048
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885048&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885048&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;added a test with a singular matrix
&lt;br&gt;updated class to Junit4
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java?rev=885048&amp;r1=885047&amp;r2=885048&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java?rev=885048&amp;r1=885047&amp;r2=885048&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BiDiagonalTransformerTest.java Fri Nov 27 23:24:12 2009
&lt;br&gt;@@ -20,12 +20,10 @@
&lt;br&gt;&amp;nbsp;import org.apache.commons.math.linear.BiDiagonalTransformer;
&lt;br&gt;&amp;nbsp;import org.apache.commons.math.linear.MatrixUtils;
&lt;br&gt;&amp;nbsp;import org.apache.commons.math.linear.RealMatrix;
&lt;br&gt;+import org.junit.Assert;
&lt;br&gt;+import org.junit.Test;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import junit.framework.Test;
&lt;br&gt;-import junit.framework.TestCase;
&lt;br&gt;-import junit.framework.TestSuite;
&lt;br&gt;-
&lt;br&gt;-public class BiDiagonalTransformerTest extends TestCase {
&lt;br&gt;+public class BiDiagonalTransformerTest {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private double[][] testSquare = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{ 24.0 / 25.0, 43.0 / 25.0 },
&lt;br&gt;@@ -39,10 +37,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;nbsp;-360.0 / 625.0, &amp;nbsp;192.0 / 625.0, 1756.0 / 625.0 },
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public BiDiagonalTransformerTest(String name) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(name);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testDimensions() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkdimensions(MatrixUtils.createRealMatrix(testSquare));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkdimensions(MatrixUtils.createRealMatrix(testNonSquare));
&lt;br&gt;@@ -53,15 +48,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int m = matrix.getRowDimension();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int n = matrix.getColumnDimension();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BiDiagonalTransformer transformer = new BiDiagonalTransformer(matrix);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(m, transformer.getU().getRowDimension());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(m, transformer.getU().getColumnDimension());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(m, transformer.getB().getRowDimension());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(n, transformer.getB().getColumnDimension());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(n, transformer.getV().getRowDimension());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(n, transformer.getV().getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(m, transformer.getU().getRowDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(m, transformer.getU().getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(m, transformer.getB().getRowDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(n, transformer.getB().getColumnDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(n, transformer.getV().getRowDimension());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(n, transformer.getV().getColumnDimension());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testAEqualUSVt() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkAEqualUSVt(MatrixUtils.createRealMatrix(testSquare));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkAEqualUSVt(MatrixUtils.createRealMatrix(testNonSquare));
&lt;br&gt;@@ -74,15 +70,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RealMatrix b = transformer.getB();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RealMatrix v = transformer.getV();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;double norm = u.multiply(b).multiply(v.transpose()).subtract(matrix).getNorm();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(0, norm, 1.0e-14);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(0, norm, 1.0e-14);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testUOrthogonal() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkOrthogonal(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testSquare)).getU());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkOrthogonal(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testNonSquare)).getU());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkOrthogonal(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testNonSquare).transpose()).getU());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testVOrthogonal() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkOrthogonal(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testSquare)).getV());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkOrthogonal(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testNonSquare)).getV());
&lt;br&gt;@@ -92,9 +90,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void checkOrthogonal(RealMatrix m) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RealMatrix mTm = m.transpose().multiply(m);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RealMatrix id &amp;nbsp;= MatrixUtils.createRealIdentityMatrix(mTm.getRowDimension());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(0, mTm.subtract(id).getNorm(), 1.0e-14);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(0, mTm.subtract(id).getNorm(), 1.0e-14);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testBBiDiagonal() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkBiDiagonal(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testSquare)).getB());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkBiDiagonal(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testNonSquare)).getB());
&lt;br&gt;@@ -108,17 +107,61 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int j = 0; j &amp;lt; cols; ++j) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rows &amp;lt; cols) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i &amp;lt; j) || (i &amp;gt; j + 1)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(0, m.getEntry(i, j), 1.0e-16);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(0, m.getEntry(i, j), 1.0e-16);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i &amp;lt; j - 1) || (i &amp;gt; j)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(0, m.getEntry(i, j), 1.0e-16);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(0, m.getEntry(i, j), 1.0e-16);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSingularMatrix() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; BiDiagonalTransformer transformer =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new BiDiagonalTransformer(MatrixUtils.createRealMatrix(new double[][] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{ 1.0, 2.0, 3.0 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{ 2.0, 3.0, 4.0 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{ 3.0, 5.0, 7.0 }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; final double s3 &amp;nbsp;= Math.sqrt(3.0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; final double s14 = Math.sqrt(14.0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; final double s42 = Math.sqrt(42.0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; final double s1553 = Math.sqrt(1553.0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; RealMatrix uRef = MatrixUtils.createRealMatrix(new double[][] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;-1.0 / s14, &amp;nbsp;5.0 / s42, &amp;nbsp;1.0 / s3 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;-2.0 / s14, -4.0 / s42, &amp;nbsp;1.0 / s3 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;-3.0 / s14, &amp;nbsp;1.0 / s42, -1.0 / s3 }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; });
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; RealMatrix bRef = MatrixUtils.createRealMatrix(new double[][] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { -s14, s1553 / s14, &amp;nbsp; 0.0 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;0.0, -87 * s3 / (s14 * s1553), -s3 * s14 / s1553 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &amp;nbsp;0.0, 0.0, 0.0 }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; });
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; RealMatrix vRef = MatrixUtils.createRealMatrix(new double[][] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { 1.0, &amp;nbsp; 0.0, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { 0.0, &amp;nbsp;-23 / s1553, &amp;nbsp;32 / s1553 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { 0.0, &amp;nbsp;-32 / s1553, -23 / s1553 }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; });
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; // check values against known references
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; RealMatrix u = transformer.getU();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; Assert.assertEquals(0, u.subtract(uRef).getNorm(), 1.0e-14);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; RealMatrix b = transformer.getB();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; Assert.assertEquals(0, b.subtract(bRef).getNorm(), 1.0e-14);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; RealMatrix v = transformer.getV();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; Assert.assertEquals(0, v.subtract(vRef).getNorm(), 1.0e-14);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; // check the same cached instance is returned the second time
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; Assert.assertTrue(u == transformer.getU());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; Assert.assertTrue(b == transformer.getB());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; Assert.assertTrue(v == transformer.getV());
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testMatricesValues() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BiDiagonalTransformer transformer =
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testSquare));
&lt;br&gt;@@ -138,27 +181,24 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check values against known references
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RealMatrix u = transformer.getU();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(0, u.subtract(uRef).getNorm(), 1.0e-14);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(0, u.subtract(uRef).getNorm(), 1.0e-14);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RealMatrix b = transformer.getB();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(0, b.subtract(bRef).getNorm(), 1.0e-14);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(0, b.subtract(bRef).getNorm(), 1.0e-14);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RealMatrix v = transformer.getV();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(0, v.subtract(vRef).getNorm(), 1.0e-14);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(0, v.subtract(vRef).getNorm(), 1.0e-14);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check the same cached instance is returned the second time
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(u == transformer.getU());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(b == transformer.getB());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(v == transformer.getV());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertTrue(u == transformer.getU());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertTrue(b == transformer.getB());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertTrue(v == transformer.getV());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testUpperOrLower() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testSquare)).isUpperBiDiagonal());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testNonSquare)).isUpperBiDiagonal());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testNonSquare).transpose()).isUpperBiDiagonal());
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static Test suite() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new TestSuite(BiDiagonalTransformerTest.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertTrue(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testSquare)).isUpperBiDiagonal());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertTrue(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testNonSquare)).isUpperBiDiagonal());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertFalse(new BiDiagonalTransformer(MatrixUtils.createRealMatrix(testNonSquare).transpose()).isUpperBiDiagonal());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885048----commons-proper-math-trunk-src-test-java-org-apache-commons-math-linear-BiDiagonalTransformerTest.java-tp26549078p26549078.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26548139</id>
	<title>svn commit: r885027 - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math/util/MathUtils.java site/xdoc/changes.xml test/java/org/apache/commons/math/stat/clustering/KMeansPlusPlusClustererTest.java</title>
	<published>2009-11-27T13:45:39Z</published>
	<updated>2009-11-27T13:45:39Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Fri Nov 27 21:45:38 2009
&lt;br&gt;New Revision: 885027
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885027&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885027&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Fixed an overflow error in MathUtils.distance that was causing KMeansPlusPlusClusterer to fail with a NullPointerException when
&lt;br&gt;component distances between points exceeded Integer.MAXVALUE.
&lt;br&gt;JIRA: MATH-305
&lt;br&gt;Reported by Erik van Ingen
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/site/xdoc/changes.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/test/java/org/apache/commons/math/stat/clustering/KMeansPlusPlusClustererTest.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java?rev=885027&amp;r1=885026&amp;r2=885027&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java?rev=885027&amp;r1=885026&amp;r2=885027&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/MathUtils.java Fri Nov 27 21:45:38 2009
&lt;br&gt;@@ -1621,9 +1621,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the L&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; distance between the two points
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static double distance(int[] p1, int[] p2) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;int sum = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;double sum = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; p1.length; i++) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int dp = p1[i] - p2[i];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final double dp = p1[i] - p2[i];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sum += dp * dp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Math.sqrt(sum);
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/site/xdoc/changes.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/site/xdoc/changes.xml?rev=885027&amp;r1=885026&amp;r2=885027&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/site/xdoc/changes.xml?rev=885027&amp;r1=885026&amp;r2=885027&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/site/xdoc/changes.xml (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/site/xdoc/changes.xml Fri Nov 27 21:45:38 2009
&lt;br&gt;@@ -39,6 +39,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;body&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;release version=&amp;quot;2.1&amp;quot; date=&amp;quot;TBD&amp;quot; description=&amp;quot;TBD&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;action dev=&amp;quot;psteitz&amp;quot; type=&amp;quot;fix&amp;quot; issue=&amp;quot;MATH-305&amp;quot; due-to=&amp;quot;Erik van Ingen&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Fixed an overflow error in MathUtils.distance that was causing KMeansPlusPlusClusterer
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;to fail with a NullPointerException when component distances between points
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exceeded Integer.MAXVALUE.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/action&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;action dev=&amp;quot;psteitz&amp;quot; type=&amp;quot;update&amp;quot; issue=&amp;quot;MATH-315&amp;quot; due-to=&amp;quot;Mikkel Meyer Andersen&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Added generationsEvolved property to GeneticAlgorithm to track the number of generations
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;evolved by the evolve() method before reaching the StoppingCondition.
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/stat/clustering/KMeansPlusPlusClustererTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/stat/clustering/KMeansPlusPlusClustererTest.java?rev=885027&amp;r1=885026&amp;r2=885027&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/stat/clustering/KMeansPlusPlusClustererTest.java?rev=885027&amp;r1=885026&amp;r2=885027&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/stat/clustering/KMeansPlusPlusClustererTest.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/stat/clustering/KMeansPlusPlusClustererTest.java Fri Nov 27 21:45:38 2009
&lt;br&gt;@@ -93,5 +93,27 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(cluster3Found);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * JIRA: MATH-305
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Two points, one cluster, one iteration
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testPerformClusterAnalysisDegenerate() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KMeansPlusPlusClusterer&amp;lt;EuclideanIntegerPoint&amp;gt; transformer = new KMeansPlusPlusClusterer&amp;lt;EuclideanIntegerPoint&amp;gt;(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Random(1746432956321l));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EuclideanIntegerPoint[] points = new EuclideanIntegerPoint[] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new EuclideanIntegerPoint(new int[] { 1959, 325100 }),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new EuclideanIntegerPoint(new int[] { 1960, 373200 }), };
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Cluster&amp;lt;EuclideanIntegerPoint&amp;gt;&amp;gt; clusters = transformer.cluster(Arrays.asList(points), 1, 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(1, clusters.size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(2, (clusters.get(0).getPoints().size()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EuclideanIntegerPoint pt1 = new EuclideanIntegerPoint(new int[] { 1959, 325100 });
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EuclideanIntegerPoint pt2 = new EuclideanIntegerPoint(new int[] { 1960, 373200 });
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(clusters.get(0).getPoints().contains(pt1));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(clusters.get(0).getPoints().contains(pt2));
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885027---in--commons-proper-math-trunk-src%3A-main-java-org-apache-commons-math-util-MathUtils.java-site-xdoc-changes.xml-test-java-org-apache-commons-math-stat-clustering-KMeansPlusPlusClustererTest.java-tp26548139p26548139.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26547748</id>
	<title>svn commit: r885013 - /commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/clustering/EuclideanIntegerPoint.java</title>
	<published>2009-11-27T13:05:04Z</published>
	<updated>2009-11-27T13:05:04Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Fri Nov 27 21:05:04 2009
&lt;br&gt;New Revision: 885013
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885013&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885013&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Added toString.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/clustering/EuclideanIntegerPoint.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/clustering/EuclideanIntegerPoint.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/clustering/EuclideanIntegerPoint.java?rev=885013&amp;r1=885012&amp;r2=885013&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/clustering/EuclideanIntegerPoint.java?rev=885013&amp;r1=885012&amp;r2=885013&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/clustering/EuclideanIntegerPoint.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/clustering/EuclideanIntegerPoint.java Fri Nov 27 21:05:04 2009
&lt;br&gt;@@ -98,5 +98,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return hashCode;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** {@inheritDoc} */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String toString() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final StringBuffer buff = new StringBuffer(&amp;quot;(&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final int[] coordinates = getPoint();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; coordinates.length; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buff.append(coordinates[i]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (i &amp;lt; coordinates.length - 1) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buff.append(&amp;quot;,&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buff.append(&amp;quot;)&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return buff.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885013----commons-proper-math-trunk-src-main-java-org-apache-commons-math-stat-clustering-EuclideanIntegerPoint.java-tp26547748p26547748.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26547735</id>
	<title>svn commit: r885009 - /commons/proper/math/trunk/src/test/java/org/apache/commons/math/genetics/GeneticAlgorithmTestBinary.java</title>
	<published>2009-11-27T13:03:35Z</published>
	<updated>2009-11-27T13:03:35Z</updated>
	<author>
		<name>psteitz</name>
	</author>
	<content type="html">Author: psteitz
&lt;br&gt;Date: Fri Nov 27 21:03:34 2009
&lt;br&gt;New Revision: 885009
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=885009&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=885009&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Fixed test case for number of generations evolved.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; commons/proper/math/trunk/src/test/java/org/apache/commons/math/genetics/GeneticAlgorithmTestBinary.java
&lt;br&gt;&lt;br&gt;Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/genetics/GeneticAlgorithmTestBinary.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/genetics/GeneticAlgorithmTestBinary.java?rev=885009&amp;r1=885008&amp;r2=885009&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/genetics/GeneticAlgorithmTestBinary.java?rev=885009&amp;r1=885008&amp;r2=885009&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/genetics/GeneticAlgorithmTestBinary.java (original)
&lt;br&gt;+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/genetics/GeneticAlgorithmTestBinary.java Fri Nov 27 21:03:34 2009
&lt;br&gt;@@ -48,6 +48,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MUTATION_RATE,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new TournamentSelection(TOURNAMENT_ARITY)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(0, ga.getGenerationsEvolved());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// initial population
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Population initial = randomPopulation();
&lt;br&gt;@@ -67,9 +69,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// however, for some implementations of GA, this need not be true :)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(bestFinal.compareTo(bestInitial) &amp;gt; 0);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//System.out.println(bestInitial);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//System.out.println(bestFinal);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(NUM_GENERATIONS, ga.getGenerationsEvolved());
&lt;br&gt;+ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Commons---Dev-f317.html&quot; embed=&quot;fixTarget[317]&quot; target=&quot;_top&quot; &gt;Commons - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r885009----commons-proper-math-trunk-src-test-java-org-apache-commons-math-genetics-GeneticAlgorithmTestBinary.java-tp26547735p26547735.html" />
</entry>

</feed>
