ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michel CASABIANCA <c...@sdv.fr>
Subject Re: More meaningfull parser errors (was Re: I want to become an Ant developer)
Date Tue, 04 Apr 2000 13:44:07 GMT
Hi

Stefan Bodewig <bodewig@bost.de> writes:
>  SM> yes, xerces is much better at error codes than projectX, for what
>  SM> I've seen, but maybe it's a problem with Ant that doesn't print
>  SM> that information passed on the SAXExceptions...
>  
> No, I don't think so. I've downloaded Xerces, hacked together an
> org.apache.tools.ant.Parser implementation for it (anybody
> interested?) and tried the following part (surrounded by a valid
> build file):
> 
>     <javac srcdir="${src.dir}"
>            destdir="${build.classes}"
>            classpath="${classpath}"
> <!--           debug="on" -->
>            deprecation="on"
>            optimize="on" >
> 
> The result using projectX
> 
> BUILD CONFIG ERROR: Can't open config file: buildfail.xml due to:
> org.xml.sax.SAXParseException: com.sun.xml.parser/P-031 <
> 
> followed by a stack trace with no new information. I've also dumped
> out the original stack trace of the SAXParseException, dind't really
> help much.
> 
> The result using Xerces
> 
> BUILD CONFIG ERROR: Can't open config file: buildfail.xml due to: org.xml.sax.SAXParseException:
Element type "javac" must be followed by either attribute specifications, ">" or "/>".
> 
> and the stack trace.
> 
> So yes switching parser does help indeed.

I don't agree : according to my experience, error messages from
ProjectX are better. But there is a localization bug that produces
"raw error codes" such as com.sun.xml.parser/P-031.

I am french and have the same problem. The parser tries to apply
your local but fails because it doesn't have German messages. I
have writen a patch, see my home page :

http://www.sdv.fr/pages/casa/html/projectx.html

Sorry, it's in french (a localization bug ;o). To address this,
you can edit com/sun/xml/parser/Parser.java file :

replace :

  if (locale == null)
     locale = Locale.getDefault ();

with :

  if (locale == null) {
     locale = Locale.getDefault ();
     // casa: test if default locale is supported
     if(!messages.isLocaleSupported (locale.toString ()))
        locale = new Locale("en","US");
  }

If locale is not supported, I apply en_US. So you will have
english messages instead of code. You can also add localized
messages in property files (I've done it for french, see my
page).

If you apply that patch, parsing your buggy code would
produce :

  Attribute names must not start with "<" characters.

Does anybody from Sun reads this :o)
-- 
+---------------------------+--------------------------------+
| Michel CASABIANCA         | http://www.sdv.fr/pages/casa   |
| mailto:casa@sdv.fr        | Articles sur Java et XML       |
| Développement Java et XML | Applications et Applets de Jeu |
+---------------------------+--------------------------------+

Mime
View raw message