YIKES!!!!!!!!!!! -- dims
On Sun, 05 Dec 2004 18:54:58 -0500, Stefano Mazzocchi <[EMAIL PROTECTED]> wrote: > Davanum Srinivas wrote: > > Stefano, > > > > i think i poked through all the jars in JDK 1.4 and did not find > > it...hence the question. > > Found it!!! > > The problem is in the XJavac task that Xerces2 uses to compile stuff > (probably it's a left-over workaround from an ant bug on the javac task). > > Now, not only I can't find the sourcecode of that sucker (I had to > decompile it with jad (find it attached) but here is the offending part: > > String s = ((String) properties.get( "java.vendor" )).toUpperCase( > Locale.ENGLISH ); > if(s.indexOf("IBM") >= 0) > { > // create an IBM-specific classpath > } > else if(s.indexOf("SUN") >= 0 || > s.indexOf("BLACKDOWN") >= 0 || > s.indexOf("APPLE") >= 0) > { > // build the regular classpath > } > > note how the classpath *IS*NOT*BUILT* if neither of the above match! > > I would strongly lobby with the xerces people to get rid of that silly task. > > -- > Stefano. > > > // Decompiled by Jad v1.5.8c. Copyright 2001 Pavel Kouznetsov. > // Jad home page: http://www.geocities.com/kpdus/jad.html > // Decompiler options: packimports(3) > // Source File Name: XJavac.java > > package org.apache.xerces.util; > > import java.util.Hashtable; > import java.util.Locale; > import org.apache.tools.ant.BuildException; > import org.apache.tools.ant.taskdefs.Javac; > import org.apache.tools.ant.types.Path; > import org.apache.tools.ant.util.JavaEnvUtils; > > public class XJavac extends Javac > { > > public XJavac() > { > } > > public void execute() > throws BuildException > { > if(isJDK14OrHigher()) > { > java.util.Properties properties = null; > try > { > properties = System.getProperties(); > } > catch(Exception exception) > { > throw new BuildException("unable to determine java vendor > because could not access system properties!"); > } > String s = > ((String)properties.get("java.vendor")).toUpperCase(Locale.ENGLISH); > if(s.indexOf("IBM") >= 0) > { > Path path = createBootclasspath(); > String s1 = System.getProperty("java.home"); > StringBuffer stringbuffer = new StringBuffer(); > stringbuffer.append(s1).append("/lib/charsets.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/core.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/graphics.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/javaws.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/jaws.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/security.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/server.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/ext/JawBridge.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/ext/gskikm.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/ext/ibmjceprovider.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/ext/indicim.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/ext/jaccess.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/ext/ldapsec.jar:"); > path.createPathElement().setPath(stringbuffer.toString()); > stringbuffer.replace(s1.length(), stringbuffer.length(), > "/lib/ext/oldcertpath.jar"); > path.createPathElement().setPath(stringbuffer.toString()); > setBootclasspath(path); > } else > if(s.indexOf("SUN") >= 0 || s.indexOf("BLACKDOWN") >= 0 || > s.indexOf("APPLE") >= 0) > { > Path path1 = createBootclasspath(); > Path path2 = getClasspath(); > path1.append(path2); > String s2 = (String)properties.get("sun.boot.class.path"); > Path path3 = new Path(null); > path3.createPathElement().setPath(s2); > path1.append(path3); > setBootclasspath(path1); > } > } > super.execute(); > } > > private boolean isJDK14OrHigher() > { > String s = JavaEnvUtils.getJavaVersion(); > return s.equals("1.4") || !s.equals("1.3") && !s.equals("1.2") && > !s.equals("1.1") && !s.equals("1.0"); > } > } > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Davanum Srinivas - http://webservices.apache.org/~dims/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]