bootstrapping problem with StringBuilder

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 27 Apr 2006 21:03:39 +0200
Edwin Steiner <edwin.steiner@xxxxxxx> wrote:

> Hello classpath hackers!
> 
> I'm testing cacao with an "ecj -target 1.5"-compiled classpath in
> addition to the jikes-compiled classpath I normally use. With ecj I
> ran into a bootstrapping problem that made both cacao and jamvm fail:
> 
> What makes the difference is that ecj uses StringBuilder instead of
> StringBuffer in gnu/classpath/SystemProperties.<clinit>()V.
> 
> StringBuilder uses System.arraycopy, which in turn requires executing
> System.<clinit>, which indirectly needs gnu/classpath/SystemProperties.getProperty,
> which in turn throws a NullPointerException because the system
> properties have not yet been initialized.
> 
> A solution to this is to use VMSystem.arraycopy instead of
> System.arraycopy. (StringBuffer already does that.)
> 
> Cheers
> -Edwin
> 
> Index: java/lang/StringBuilder.java
> ===================================================================
> RCS file: /sources/classpath/classpath/java/lang/StringBuilder.java,v
> retrieving revision 1.7
> diff -u -p -r1.7 StringBuilder.java
> --- java/lang/StringBuilder.java	2 Mar 2006 20:18:44 -0000	1.7
> +++ java/lang/StringBuilder.java	27 Apr 2006 19:03:02 -0000
> @@ -206,7 +206,7 @@ public final class StringBuilder
>          int max = value.length * 2 + 2;
>          minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
>          char[] nb = new char[minimumCapacity];
> -        System.arraycopy(value, 0, nb, 0, count);
> +        VMSystem.arraycopy(value, 0, nb, 0, count);
>          value = nb;
>        }
>    }
> 

Yes, I know about this from when I was first bootstrapping the generics branch
about 18 months ago.  The fix is on that branch, but obviously hasn't been merged
across yet.  I'll try to do so before the release.
-- 
Andrew :-)

Department of Computer Science
University of Sheffield

http://www.dcs.shef.ac.uk/~andrew

Say No2ID - Renew your UK passport in May 2006
http://www.renewforfreedom.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
Url : http://developer.classpath.org/pipermail/classpath/attachments/20060428/e4675bee/attachment.pgp

[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux