This is my forst time posting to the list.  If I should submit this
patch in some other way, please let me know.

I think this is a bug in Ant.  

What happens is that Ant accesses the system properties list not by
using the standard well-defined interface but by accessing its
underlying hash table.  The Java Language spec is ambiguous about what
happens in this case: it says that every property list can contain
another property list as its "defaults", but what it does not say is
whether accessing the underlying hash table gives access to the
defaults.

It seems to me that if you have a Properties object then you should be
using the Properties interface.  The spec doesn't guarantee anything
about the internal structure of the system properties.

Andrew.


*** Project.java~       Thu Oct 11 14:58:28 2001
--- Project.java        Tue Feb 11 21:00:57 2003
*************** public class Project {
*** 393,401 ****
      public void setSystemProperties() {
          Properties systemP = System.getProperties();
!         Enumeration e = systemP.keys();
          while (e.hasMoreElements()) {
!             Object name = e.nextElement();
!             String value = systemP.get(name).toString();
!             this.setProperty(name.toString(), value);
          }
      }
--- 393,401 ----
      public void setSystemProperties() {
          Properties systemP = System.getProperties();
!         Enumeration e = systemP.propertyNames();
          while (e.hasMoreElements()) {
!             String name = e.nextElement().toString();
!             String value = systemP.getProperty(name).toString();
!             this.setProperty(name, value);
          }
      }

Reply via email to