Author: mbenson
Date: Tue Jul 24 15:21:59 2007
New Revision: 559243
URL: http://svn.apache.org/viewvc?view=rev&rev=559243
Log:
defer call to delegateIteratorToList()
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/types/Path.java
Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/Path.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/Path.java?view=diff&rev=559243&r1=559242&r2=559243
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/Path.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/Path.java Tue Jul 24
15:21:59 2007
@@ -142,7 +142,7 @@
}
- private final boolean preserveBC = delegateIteratorToList();
+ private Boolean preserveBC;
private Union union = null;
@@ -687,7 +687,7 @@
return ((Path) getCheckedRef()).iterator();
}
dieOnCircularReference();
- if (preserveBC) {
+ if (getPreserveBC()) {
return new FileResourceIterator(null, list());
}
return union == null ? EMPTY_ITERATOR
@@ -726,8 +726,7 @@
* The default behavior of this method is to return <code>true</code> for
any subclass
* that implements <code>list()</code>; this can, of course, be avoided by
overriding
* this method to return <code>false</code>. It is not expected that the
result of this
- * method should change over time; thus it is called a single time during
instance
- * initialization.
+ * method should change over time, thus it is called only once.
* @return <code>true</code> if <code>iterator()</code> should delegate to
<code>list()</code>.
*/
protected boolean delegateIteratorToList() {
@@ -741,5 +740,12 @@
//shouldn't happen, but
return false;
}
+ }
+
+ private synchronized boolean getPreserveBC() {
+ if (preserveBC == null) {
+ preserveBC = delegateIteratorToList() ? Boolean.TRUE :
Boolean.FALSE;
+ }
+ return preserveBC.booleanValue();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]