logo       

XMLC 2.1 compatibility with JDK 1.3: msg#00046

java.enhydra.xmlc

Subject: XMLC 2.1 compatibility with JDK 1.3

Hi, all. I'm currently using a version of XMLC somewhere between 2.0.1 and 2.1
that was "lifted" from the Enhydra Application Server release 4.1. It's been
working fine but, because of external drivers, I'm trying to migrate to the
real 2.1 release.

Here's my question: Is it possible that the XMLC 2.1 release was compiled using
JDK 1.4? I ask because I'm getting in some circumstances -- not directly
related to XMLC but using the xerces XMLSerializer -- I'm getting

java.lang.NoSuchMethodError: java.lang.StringBuffer: method
append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer; not found
at
org.apache.xml.serialize.IndentPrinter.printText(IndentPrinter.java:186)

Here is the method:

private StringBuffer _text;
...
public void printText( StringBuffer text )
{
_text.append( text );
}

The JDK 1.3 StringBuffer didn't have an append method that took a StringBuffer
as an argument. Compiling against JDK should have produced a binding to the
append(Object) method instead. JDK 1.4 _did_ introduce an append(StringBuffer)
method. When I decompile the class using Jad I get:

public void printText(StringBuffer text)
{
_text.append(text);
// 0 0:aload_0
// 1 1:getfield #5 <Field StringBuffer _text>
// 2 4:aload_1
// 3 5:invokevirtual #10 <Method StringBuffer
StringBuffer.append(StringBuffer)>
// 4 8:pop
// 5 9:return
}

This clearly shows that the method binding is to append(StringBuffer), not
append(Object). The only way I can see that the method was incorrectly bound is
if the compilation was done using JDK 1.4. Unfortunately that would seem to
raise the spectre of actual JDK 1.3 compatibility ...

Comments?

Jim Cakalic


Confidentiality Warning: This e-mail contains information intended only for
the use of the individual or entity named above. If the reader of this e-mail
is not the intended recipient or the employee or agent responsible for
delivering it to the intended recipient, any dissemination, publication or
copying of this e-mail is strictly prohibited. The sender does not accept any
responsibility for any loss, disruption or damage to your data or computer
system that may occur while using data contained in, or transmitted with, this
e-mail. If you have received this e-mail in error, please immediately notify
us by return e-mail. Thank you.


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise