From mark at klomp.org Thu May 1 00:12:44 2008 From: mark at klomp.org (Mark Wielaard) Date: Thu, 01 May 2008 09:12:44 +0200 Subject: IcedTea In-Reply-To: <17c6771e0804301637q7cec77e7n413dfde90e5d4c9d@mail.gmail.com> References: <17c6771e0804301321j2c071fcdq1a5460a798d8527d@mail.gmail.com> <4818F153.4000703@redhat.com> <17c6771e0804301637q7cec77e7n413dfde90e5d4c9d@mail.gmail.com> Message-ID: <1209625964.3996.28.camel@dijkstra.wildebeest.org> Hi Andrew, On Thu, 2008-05-01 at 00:37 +0100, Andrew John Hughes wrote: > In working with OpenJDK, using IcedTea would make it much easier for > me to build and work with, so having an up-to-date icedtea branch > would be very useful. As I say, I can easily merge across the patches > locally from icedtea6, but are people happy for me to push these to > the icedtea tree? Yes, that would be great. It is basically compile times that stop me from immediately applying stuff to 7 also. But with a little help I think we can keep up with both trees. Cheers, Mark From twisti at complang.tuwien.ac.at Thu May 1 01:32:36 2008 From: twisti at complang.tuwien.ac.at (Christian Thalinger) Date: Thu, 01 May 2008 10:32:36 +0200 Subject: IcedTea In-Reply-To: <17c6771e0804301637q7cec77e7n413dfde90e5d4c9d@mail.gmail.com> References: <17c6771e0804301321j2c071fcdq1a5460a798d8527d@mail.gmail.com> <4818F153.4000703@redhat.com> <17c6771e0804301637q7cec77e7n413dfde90e5d4c9d@mail.gmail.com> Message-ID: <1209630756.32341.0.camel@workstation.home.at> On Thu, 2008-05-01 at 00:37 +0100, Andrew John Hughes wrote: > In working with OpenJDK, using IcedTea would make it much easier for > me to build and work with, so having an up-to-date icedtea branch > would be very useful. As I say, I can easily merge across the patches > locally from icedtea6, but are people happy for me to push these to > the icedtea tree? I'd be happy :-) - twisti From mark at klomp.org Thu May 1 01:58:12 2008 From: mark at klomp.org (Mark Wielaard) Date: Thu, 01 May 2008 08:58:12 +0000 Subject: changeset in /hg/icedtea6: Fix some Gervill nits (correct Soundb... Message-ID: changeset 57bbbc3db355 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=57bbbc3db355 description: Fix some Gervill nits (correct Soundbank, IOExceptions on URL, wrong name). 2008-05-01 Mark Wielaard * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ DLSSoundbankReader.java (getSoundbank(URL)): Don't throw IOException. (getSoundbank(File)): Allow soundbanks not ending in .dls. * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ PATSoundbankReader.java (getSoundbank(URL)): Don't throw IOException. * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ SF2SoundbankReader.java (getSoundbank(URL)): Likewise. (getSoundbank(File)): Allow soundbanks not ending in .sf2. * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ SoftSynthesizer.java (unloadAllInstruments): Check if Soundbank supported. (unloadInstruments): Likewise. diffstat: 5 files changed, 31 insertions(+), 2 deletions(-) ChangeLog | 15 ++++++++++ overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSoundbankReader.java | 5 ++- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/PATSoundbankReader.java | 2 + overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2SoundbankReader.java | 5 ++- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java | 6 ++++ diffs (101 lines): diff -r 7b560b84e143 -r 57bbbc3db355 ChangeLog --- a/ChangeLog Wed Apr 30 17:08:19 2008 -0400 +++ b/ChangeLog Thu May 01 10:57:58 2008 +0200 @@ -1,3 +1,18 @@ 2008-04-30 Thomas Fitzsimmons + + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ + DLSSoundbankReader.java (getSoundbank(URL)): Don't throw IOException. + (getSoundbank(File)): Allow soundbanks not ending in .dls. + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ + PATSoundbankReader.java (getSoundbank(URL)): Don't throw IOException. + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ + SF2SoundbankReader.java (getSoundbank(URL)): Likewise. + (getSoundbank(File)): Allow soundbanks not ending in .sf2. + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ + SoftSynthesizer.java (unloadAllInstruments): Check if Soundbank + supported. + (unloadInstruments): Likewise. + 2008-04-30 Thomas Fitzsimmons * rt/net/sourceforge/jnlp/security/MoreInfoPane.java: Fix typo. diff -r 7b560b84e143 -r 57bbbc3db355 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSoundbankReader.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSoundbankReader.java Wed Apr 30 17:08:19 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSoundbankReader.java Thu May 01 10:57:58 2008 +0200 @@ -52,6 +52,10 @@ public class DLSSoundbankReader extends { return null; } + catch(IOException ioe) + { + return null; + } } public Soundbank getSoundbank(InputStream stream) throws InvalidMidiDataException, IOException { @@ -68,7 +72,6 @@ public class DLSSoundbankReader extends } public Soundbank getSoundbank(File file) throws InvalidMidiDataException, IOException { - if(!file.getPath().toLowerCase().endsWith(".dls")) return null; try { return new DLSSoundbank(file); diff -r 7b560b84e143 -r 57bbbc3db355 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/PATSoundbankReader.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/PATSoundbankReader.java Wed Apr 30 17:08:19 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/PATSoundbankReader.java Thu May 01 10:57:58 2008 +0200 @@ -59,6 +59,8 @@ public class PATSoundbankReader extends snk.addInstrument(ins); return snk; } catch (InvalidFormatException e) { + return null; + } catch (IOException ioe) { return null; } } diff -r 7b560b84e143 -r 57bbbc3db355 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2SoundbankReader.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2SoundbankReader.java Wed Apr 30 17:08:19 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2SoundbankReader.java Thu May 01 10:57:58 2008 +0200 @@ -55,6 +55,10 @@ public class SF2SoundbankReader extends { return null; } + catch(IOException ioe) + { + return null; + } } public Soundbank getSoundbank(InputStream stream) throws InvalidMidiDataException, IOException { @@ -71,7 +75,6 @@ public class SF2SoundbankReader extends } public Soundbank getSoundbank(File file) throws InvalidMidiDataException, IOException { - if(!file.getPath().toLowerCase().endsWith(".sf2")) return null; try { return new SF2Soundbank(file); diff -r 7b560b84e143 -r 57bbbc3db355 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java Wed Apr 30 17:08:19 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java Thu May 01 10:57:58 2008 +0200 @@ -593,6 +593,9 @@ public class SoftSynthesizer implements } public void unloadAllInstruments(Soundbank soundbank) { + + if(soundbank == null || !isSoundbankSupported(soundbank)) + throw new IllegalArgumentException("Unsupported soundbank: " + soundbank); if(!isOpen()) return; @@ -619,6 +622,9 @@ public class SoftSynthesizer implements public void unloadInstruments(Soundbank soundbank, Patch[] patchList) { + if(soundbank == null || !isSoundbankSupported(soundbank)) + throw new IllegalArgumentException("Unsupported soundbank: " + soundbank); + if(!isOpen()) return; From mwielaard at redhat.com Thu May 1 02:08:40 2008 From: mwielaard at redhat.com (Mark Wielaard) Date: Thu, 01 May 2008 11:08:40 +0200 Subject: Some small Gervill fixes Message-ID: <1209632920.3996.39.camel@dijkstra.wildebeest.org> Hi, I played with Gervill a little and found some small nits. First SoftSynth lets me unload Instruments from unsupported Soundbanks. Second some SoundbankReaders would throw IOExceptions on reads from bad URLs, these could be transient and so shouldn't be thrown to give another SoundbankReader a chance to try the URL again. And last DLSSoundbankReader and SF2SoundbankReader wouldn't let me open wrongly named files. 2008-05-01 Mark Wielaard * com/sun/media/sound/DLSSoundbankReader.java (getSoundbank(URL)): Don't throw IOException. (getSoundbank(File)): Allow soundbanks not ending in .dls. * com/sun/media/sound/PATSoundbankReader.java (getSoundbank(URL)): Don't throw IOException. * com/sun/media/sound/SF2SoundbankReader.java (getSoundbank(URL)): Likewise. (getSoundbank(File)): Allow soundbanks not ending in .sf2. * com/sun/media/sound/SoftSynthesizer.java (unloadAllInstruments): Check if Soundbank supported. (unloadInstruments): Likewise. Let me know what you think. I added these patches to IcedTea. Cheers, Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: patch Type: text/x-patch Size: 2973 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080501/79412736/attachment.bin From mark at klomp.org Thu May 1 16:31:04 2008 From: mark at klomp.org (Mark Wielaard) Date: Thu, 01 May 2008 23:31:04 +0000 Subject: changeset in /hg/icedtea6: Fix SoftChannel controlChange for lea... Message-ID: changeset 8810f9b6e357 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=8810f9b6e357 description: Fix SoftChannel controlChange for least significant control values. 2008-05-01 Mark Wielaard * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ SoftChannel.java (controlChange): Reset least significant controller if necessary. diffstat: 2 files changed, 13 insertions(+), 1 deletion(-) ChangeLog | 6 ++++++ overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java | 8 +++++++- diffs (31 lines): diff -r 57bbbc3db355 -r 8810f9b6e357 ChangeLog --- a/ChangeLog Thu May 01 10:57:58 2008 +0200 +++ b/ChangeLog Fri May 02 01:30:56 2008 +0200 @@ -1,3 +1,9 @@ 2008-05-01 Mark Wielaard + + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ + SoftChannel.java (controlChange): Reset least significant + controller if necessary. + 2008-05-01 Mark Wielaard * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ diff -r 57bbbc3db355 -r 8810f9b6e357 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java Thu May 01 10:57:58 2008 +0200 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java Fri May 02 01:30:56 2008 +0200 @@ -1170,7 +1170,13 @@ public class SoftChannel implements Midi return; } - this.controller[controller] = value; + // Keep track of values (capped to 7 bit). + // Reset least significant (32 through 63) + // controller value when most significant + // (0 through 31) is set. + this.controller[controller] = value & 127; + if (controller < 32) + this.controller[controller + 32] = 0; for (int i = 0; i < voices.length; i++) if (voices[i].active) From mwielaard at redhat.com Thu May 1 16:33:45 2008 From: mwielaard at redhat.com (Mark Wielaard) Date: Fri, 02 May 2008 01:33:45 +0200 Subject: Some small Gervill fixes In-Reply-To: <1209632920.3996.39.camel@dijkstra.wildebeest.org> References: <1209632920.3996.39.camel@dijkstra.wildebeest.org> Message-ID: <1209684825.29815.8.camel@dijkstra.wildebeest.org> Hi, Another small nit. In SoftChannel.controlChange() the controller values for least significant values (32-64) weren't reset to zero when the most significant values were set. This showed up when calling getController(). 2008-05-01 Mark Wielaard * com/sun/media/sound/SoftChannel.java (controlChange): Reset least significant controller if necessary. Let me know what you think. I added this patch to IcedTea. Cheers, Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: patch Type: text/x-patch Size: 631 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080502/199f1053/attachment.bin From Joe.Darcy at Sun.COM Thu May 1 22:15:30 2008 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Thu, 01 May 2008 22:15:30 -0700 Subject: Gervill integrated into IcedTea In-Reply-To: <17c6771e0804301318w4bd72bd9o6a26d82fabcdca6c@mail.gmail.com> References: <1209586413.3996.24.camel@dijkstra.wildebeest.org> <17c6771e0804301318w4bd72bd9o6a26d82fabcdca6c@mail.gmail.com> Message-ID: <481AA372.8010406@sun.com> Andrew John Hughes wrote: > On 30/04/2008, Mark Wielaard wrote: [snip] > As to the jtreg hack, I fiddled about with a similar short bit of > shell hackery a few months back and managed to run the JMX tests this > way. Not a full-proof solution by any means, and I wouldn't attest to > it working well generally, but it does the job for the time being. > > The spec. for the jtreg files is available online. Was it not for a > Free version being in the works from Sun anyway, we could probably > implement a clone. jtreg has just been released under open source: http://blogs.sun.com/jjg/entry/jtreg_4_open_source -Joe From gnu_andrew at member.fsf.org Fri May 2 01:05:53 2008 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Fri, 2 May 2008 09:05:53 +0100 Subject: Gervill integrated into IcedTea In-Reply-To: <481AA372.8010406@sun.com> References: <1209586413.3996.24.camel@dijkstra.wildebeest.org> <17c6771e0804301318w4bd72bd9o6a26d82fabcdca6c@mail.gmail.com> <481AA372.8010406@sun.com> Message-ID: <17c6771e0805020105m73a76857vd69a544636fae7dc@mail.gmail.com> 2008/5/2 Joseph D. Darcy : > Andrew John Hughes wrote: > > > On 30/04/2008, Mark Wielaard wrote: > > > > [snip] > > > > > As to the jtreg hack, I fiddled about with a similar short bit of > > shell hackery a few months back and managed to run the JMX tests this > > way. Not a full-proof solution by any means, and I wouldn't attest to > > it working well generally, but it does the job for the time being. > > > > The spec. for the jtreg files is available online. Was it not for a > > Free version being in the works from Sun anyway, we could probably > > implement a clone. > > > > jtreg has just been released under open source: > > http://blogs.sun.com/jjg/entry/jtreg_4_open_source > > -Joe > Presumably as Free Software as well? The jtreg page merely says: 'The majority of OpenJDK code is released under the GNU General Public License Version 2 (GPLv2).' Does this majority include jtreg? It's not very clear. If it is indeed GPLed, then many thanks to all those who made it possible to finally release this under more acceptable terms! I look forward to using it. -- Andrew :-) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From twisti at complang.tuwien.ac.at Fri May 2 01:21:11 2008 From: twisti at complang.tuwien.ac.at (Christian Thalinger) Date: Fri, 02 May 2008 10:21:11 +0200 Subject: Gervill integrated into IcedTea In-Reply-To: <17c6771e0805020105m73a76857vd69a544636fae7dc@mail.gmail.com> References: <1209586413.3996.24.camel@dijkstra.wildebeest.org> <17c6771e0804301318w4bd72bd9o6a26d82fabcdca6c@mail.gmail.com> <481AA372.8010406@sun.com> <17c6771e0805020105m73a76857vd69a544636fae7dc@mail.gmail.com> Message-ID: <1209716471.32341.2.camel@workstation.home.at> On Fri, 2008-05-02 at 09:05 +0100, Andrew John Hughes wrote: > Presumably as Free Software as well? The jtreg page merely says: > > 'The majority of OpenJDK code is released under the GNU General Public > License Version 2 (GPLv2).' > > Does this majority include jtreg? It's not very clear. > > If it is indeed GPLed, then many thanks to all those who made it > possible to finally release this under more acceptable terms! > I look forward to using it. The COPYRIGHT file says so: Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 only, as published by the Free Software Foundation. - twisti From gnu_andrew at member.fsf.org Fri May 2 02:43:17 2008 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Fri, 2 May 2008 10:43:17 +0100 Subject: Gervill integrated into IcedTea In-Reply-To: <1209716471.32341.2.camel@workstation.home.at> References: <1209586413.3996.24.camel@dijkstra.wildebeest.org> <17c6771e0804301318w4bd72bd9o6a26d82fabcdca6c@mail.gmail.com> <481AA372.8010406@sun.com> <17c6771e0805020105m73a76857vd69a544636fae7dc@mail.gmail.com> <1209716471.32341.2.camel@workstation.home.at> Message-ID: <17c6771e0805020243k2e1e93fbw371b11613c87f8ba@mail.gmail.com> 2008/5/2 Christian Thalinger : > On Fri, 2008-05-02 at 09:05 +0100, Andrew John Hughes wrote: > > Presumably as Free Software as well? The jtreg page merely says: > > > > 'The majority of OpenJDK code is released under the GNU General Public > > License Version 2 (GPLv2).' > > > > Does this majority include jtreg? It's not very clear. > > > > If it is indeed GPLed, then many thanks to all those who made it > > possible to finally release this under more acceptable terms! > > I look forward to using it. > > The COPYRIGHT file says so: > > Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. > DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > > This code is free software; you can redistribute it and/or modify it > under the terms of the GNU General Public License version 2 only, as > published by the Free Software Foundation. > > - twisti > > Ah good, it's just not clear on the website. -- Andrew :-) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From mark at klomp.org Sun May 4 09:47:45 2008 From: mark at klomp.org (Mark Wielaard) Date: Sun, 04 May 2008 16:47:45 +0000 Subject: changeset in /hg/icedtea6: Allow directaudio to reopen hardware ... Message-ID: changeset bb8988602259 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=bb8988602259 description: Allow directaudio to reopen hardware device for line. 2008-05-04 Mark Wielaard * Makefile.am (ICEDTEA_PATCHES): Add patches/icedtea-directaudio-close-trick.patch. * Makefile.in: Regenerated. * patches/icedtea-directaudio-close-trick.patch: New patch. diffstat: 4 files changed, 94 insertions(+), 1 deletion(-) ChangeLog | 7 ++ Makefile.am | 1 Makefile.in | 3 patches/icedtea-directaudio-close-trick.patch | 84 +++++++++++++++++++++++++ diffs (126 lines): diff -r 8810f9b6e357 -r bb8988602259 ChangeLog --- a/ChangeLog Fri May 02 01:30:56 2008 +0200 +++ b/ChangeLog Sun May 04 18:47:31 2008 +0200 @@ -1,3 +1,10 @@ 2008-05-01 Mark Wielaard + + * Makefile.am (ICEDTEA_PATCHES): Add + patches/icedtea-directaudio-close-trick.patch. + * Makefile.in: Regenerated. + * patches/icedtea-directaudio-close-trick.patch: New patch. + 2008-05-01 Mark Wielaard * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ diff -r 8810f9b6e357 -r bb8988602259 Makefile.am --- a/Makefile.am Fri May 02 01:30:56 2008 +0200 +++ b/Makefile.am Sun May 04 18:47:31 2008 +0200 @@ -310,6 +310,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-color-profiles.patch \ patches/icedtea-fonts.patch \ patches/icedtea-gervill.patch \ + patches/icedtea-directaudio-close-trick.patch \ $(GCC_PATCH) \ $(DISTRIBUTION_PATCHES) diff -r 8810f9b6e357 -r bb8988602259 Makefile.in --- a/Makefile.in Fri May 02 01:30:56 2008 +0200 +++ b/Makefile.in Sun May 04 18:47:31 2008 +0200 @@ -413,7 +413,8 @@ ICEDTEA_PATCHES = $(ZERO_PATCHES_COND) \ patches/icedtea-color-createcontext.patch \ patches/icedtea-color-profiles.patch \ patches/icedtea-fonts.patch patches/icedtea-gervill.patch \ - $(GCC_PATCH) $(DISTRIBUTION_PATCHES) $(am__append_7) + patches/icedtea-directaudio-close-trick.patch $(GCC_PATCH) \ + $(DISTRIBUTION_PATCHES) $(am__append_7) # Patch OpenJDK for plug replacements and ecj. ICEDTEA_ECJ_PATCH = patches/icedtea-ecj.patch diff -r 8810f9b6e357 -r bb8988602259 patches/icedtea-directaudio-close-trick.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-directaudio-close-trick.patch Sun May 04 18:47:31 2008 +0200 @@ -0,0 +1,84 @@ +--- /home/mark/src/openjdk/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java 2008-04-13 01:05:30.000000000 +0200 ++++ openjdk/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java 2008-05-04 18:42:39.000000000 +0200 +@@ -394,7 +394,10 @@ + private float leftGain, rightGain; + protected volatile boolean noService = false; // do not run the nService method + +- protected Object lockNative = new Object(); ++ // Guards all native calls and the lastOpened static variable. ++ protected static Object lockNative = new Object(); ++ // Keeps track of last opened line, see implOpen "trick". ++ protected static DirectDL lastOpened; + + // CONSTRUCTOR + protected DirectDL(DataLine.Info info, +@@ -496,20 +499,47 @@ + // align buffer to full frames + bufferSize = ((int) bufferSize / format.getFrameSize()) * format.getFrameSize(); + +- id = nOpen(mixerIndex, deviceID, isSource, +- encoding, +- hardwareFormat.getSampleRate(), +- hardwareFormat.getSampleSizeInBits(), +- hardwareFormat.getFrameSize(), +- hardwareFormat.getChannels(), +- hardwareFormat.getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED), +- hardwareFormat.isBigEndian(), +- bufferSize); ++ synchronized(lockNative) { ++ id = nOpen(mixerIndex, deviceID, isSource, ++ encoding, ++ hardwareFormat.getSampleRate(), ++ hardwareFormat.getSampleSizeInBits(), ++ hardwareFormat.getFrameSize(), ++ hardwareFormat.getChannels(), ++ hardwareFormat.getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED), ++ hardwareFormat.isBigEndian(), ++ bufferSize); ++ ++ if (id == 0) { ++ // Bah... Dirty trick. The most likely cause is an application ++ // already having a line open for this particular hardware ++ // format and forgetting about it. If so, silently close that ++ // implementation and try again. Unfortuantely we can only ++ // open one line per hardware format currently. ++ if (lastOpened != null ++ && hardwareFormat.matches(lastOpened.hardwareFormat)) { ++ lastOpened.implClose(); ++ lastOpened = null; ++ ++ id = nOpen(mixerIndex, deviceID, isSource, ++ encoding, ++ hardwareFormat.getSampleRate(), ++ hardwareFormat.getSampleSizeInBits(), ++ hardwareFormat.getFrameSize(), ++ hardwareFormat.getChannels(), ++ hardwareFormat.getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED), ++ hardwareFormat.isBigEndian(), ++ bufferSize); ++ } ++ ++ if (id == 0) { ++ // TODO: nicer error messages... ++ throw new LineUnavailableException("line with format "+format+" not supported."); ++ } ++ } ++ lastOpened = this; ++ } + +- if (id == 0) { +- // TODO: nicer error messages... +- throw new LineUnavailableException("line with format "+format+" not supported."); +- } + this.bufferSize = nGetBufferSize(id, isSource); + if (this.bufferSize < 1) { + // this is an error! +@@ -616,6 +646,8 @@ + id = 0; + synchronized (lockNative) { + nClose(oldID, isSource); ++ if (lastOpened == this) ++ lastOpened = null; + } + bytePosition = 0; + softwareConversionSize = 0; From mark at klomp.org Sun May 4 10:19:47 2008 From: mark at klomp.org (Mark Wielaard) Date: Sun, 4 May 2008 19:19:47 +0200 Subject: Opening multiple output lines In-Reply-To: <48191A17.3070604@redhat.com> References: <475F1063.6080109@sun.com> <48191A17.3070604@redhat.com> Message-ID: <20080504171929.GA20060@gnu.wildebeest.org> Hi Tom, On Wed, Apr 30, 2008 at 09:17:11PM -0400, Thomas Fitzsimmons wrote: >>> I'm testing a sound-using applet on Fedora 8. Sun JDK 1.6 runs the >>> appletcorrectly but OpenJDK does not. The applet attempts to open two >>> audio playback lines in succession, without closing the first before >>> attempting to open the second. >>> The first open attempt succeeds but the second attempt fails with: >>> >>> javax.sound.sampled.LineUnavailableException: line with format >>> PCM_SIGNED >>> 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported. >>> [...] >>> >>> The exception message is misleading since the line format is >>> supported. The actual cause of the failure is in: >>> >>> PLATFORM_API_LinuxOS_ALSA_PCMUtils.c:openPCMfromDeviceID >>> >>> This call: >>> >>> ret = snd_pcm_open(handle, buffer, >>> isSource?SND_PCM_STREAM_PLAYBACK:SND_PCM_STREAM_CAPTURE, >>> SND_PCM_NONBLOCK); >>> >>> returns the error corresponding to "Device or resource busy". > > Juraj Svec wrote: >> could you please send some more information? Output of the >> TRACE1("Opening ALSA device %s\n", buffer); above the snd_pcm_open would >> be great and also your sound card type and version will definitely help. > > I've attached the output of running AudioSystemGetLineTest against > openjdk-6-src-b09-11_apr_2008 with USE_TRACE defined, > and the description of my sound card reported by lspci -vv. I had the same problem with a similar setup and with applications that forget to close a line they don't use anymore (unfortunately this seems very common). With the current directaudio backend I don't see how multiple lines for the same hardware device could work though. So I am using a trick to look for "sloppy" applications. If the last line opened in the directaudio device was for the same hardware format then we silence that one first so we can hand out a new one. This seems to work surprisingly well. And it doesn't seem to interfere with applications that handle the hardware formats they need explicitly. With gcjwebplugin and this patch we can happily play the vNES games :) Of course a real solution would be to import or write a better mixer that does share lines properly. Cheers, Mark -------------- next part -------------- --- /home/mark/src/openjdk/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java 2008-04-13 01:05:30.000000000 +0200 +++ openjdk/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java 2008-05-04 18:42:39.000000000 +0200 @@ -394,7 +394,10 @@ private float leftGain, rightGain; protected volatile boolean noService = false; // do not run the nService method - protected Object lockNative = new Object(); + // Guards all native calls and the lastOpened static variable. + protected static Object lockNative = new Object(); + // Keeps track of last opened line, see implOpen "trick". + protected static DirectDL lastOpened; // CONSTRUCTOR protected DirectDL(DataLine.Info info, @@ -496,20 +499,47 @@ // align buffer to full frames bufferSize = ((int) bufferSize / format.getFrameSize()) * format.getFrameSize(); - id = nOpen(mixerIndex, deviceID, isSource, - encoding, - hardwareFormat.getSampleRate(), - hardwareFormat.getSampleSizeInBits(), - hardwareFormat.getFrameSize(), - hardwareFormat.getChannels(), - hardwareFormat.getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED), - hardwareFormat.isBigEndian(), - bufferSize); + synchronized(lockNative) { + id = nOpen(mixerIndex, deviceID, isSource, + encoding, + hardwareFormat.getSampleRate(), + hardwareFormat.getSampleSizeInBits(), + hardwareFormat.getFrameSize(), + hardwareFormat.getChannels(), + hardwareFormat.getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED), + hardwareFormat.isBigEndian(), + bufferSize); + + if (id == 0) { + // Bah... Dirty trick. The most likely cause is an application + // already having a line open for this particular hardware + // format and forgetting about it. If so, silently close that + // implementation and try again. Unfortuantely we can only + // open one line per hardware format currently. + if (lastOpened != null + && hardwareFormat.matches(lastOpened.hardwareFormat)) { + lastOpened.implClose(); + lastOpened = null; + + id = nOpen(mixerIndex, deviceID, isSource, + encoding, + hardwareFormat.getSampleRate(), + hardwareFormat.getSampleSizeInBits(), + hardwareFormat.getFrameSize(), + hardwareFormat.getChannels(), + hardwareFormat.getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED), + hardwareFormat.isBigEndian(), + bufferSize); + } + + if (id == 0) { + // TODO: nicer error messages... + throw new LineUnavailableException("line with format "+format+" not supported."); + } + } + lastOpened = this; + } - if (id == 0) { - // TODO: nicer error messages... - throw new LineUnavailableException("line with format "+format+" not supported."); - } this.bufferSize = nGetBufferSize(id, isSource); if (this.bufferSize < 1) { // this is an error! @@ -616,6 +646,8 @@ id = 0; synchronized (lockNative) { nClose(oldID, isSource); + if (lastOpened == this) + lastOpened = null; } bytePosition = 0; softwareConversionSize = 0; From fitzsim at redhat.com Sun May 4 13:00:20 2008 From: fitzsim at redhat.com (Thomas Fitzsimmons) Date: Sun, 04 May 2008 20:00:20 +0000 Subject: changeset in /hg/icedtea6: 2008-05-04 Thomas Fitzsimmons changeset 8e665e78cbfe in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=8e665e78cbfe description: 2008-05-04 Thomas Fitzsimmons * Makefile.am (EXTRA_DIST): Add patches/icedtea-netx-plugin.patch. diffstat: 2 files changed, 5 insertions(+) ChangeLog | 4 ++++ Makefile.am | 1 + diffs (22 lines): diff -r bb8988602259 -r 8e665e78cbfe ChangeLog --- a/ChangeLog Sun May 04 18:47:31 2008 +0200 +++ b/ChangeLog Sun May 04 13:00:16 2008 -0700 @@ -1,3 +1,7 @@ 2008-05-04 Mark Wielaard + + * Makefile.am (EXTRA_DIST): Add patches/icedtea-netx-plugin.patch. + 2008-05-04 Mark Wielaard * Makefile.am (ICEDTEA_PATCHES): Add diff -r bb8988602259 -r 8e665e78cbfe Makefile.am --- a/Makefile.am Sun May 04 18:47:31 2008 +0200 +++ b/Makefile.am Sun May 04 13:00:16 2008 -0700 @@ -42,6 +42,7 @@ EXTRA_DIST = rt generated $(ICEDTEA_PATC gcjwebplugin.cc tools-copy contrib ports \ patches/icedtea-gcc-4.3.patch extra $(ZERO_PATCHES) \ patches/icedtea-cacao.patch javaws.png javaws.desktop \ + patches/icedtea-netx-plugin.patch \ overlays extra jconsole.desktop policytool.desktop # The Binary plugs directory is called jdk1.7.0 for historical reasons. The From fitzsim at redhat.com Sun May 4 13:12:53 2008 From: fitzsim at redhat.com (Thomas Fitzsimmons) Date: Sun, 04 May 2008 20:12:53 +0000 Subject: changeset in /hg/icedtea6: * Makefile.in: Regenerate. Message-ID: changeset 0a1846892905 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0a1846892905 description: * Makefile.in: Regenerate. diffstat: 2 files changed, 2 insertions(+) ChangeLog | 1 + Makefile.in | 1 + diffs (22 lines): diff -r 8e665e78cbfe -r 0a1846892905 ChangeLog --- a/ChangeLog Sun May 04 13:00:16 2008 -0700 +++ b/ChangeLog Sun May 04 13:12:48 2008 -0700 @@ -1,6 +1,7 @@ 2008-05-04 Thomas Fitzsimmons * Makefile.am (EXTRA_DIST): Add patches/icedtea-netx-plugin.patch. + * Makefile.in: Regenerate. 2008-05-04 Mark Wielaard diff -r 8e665e78cbfe -r 0a1846892905 Makefile.in --- a/Makefile.in Sun May 04 13:00:16 2008 -0700 +++ b/Makefile.in Sun May 04 13:12:48 2008 -0700 @@ -258,6 +258,7 @@ EXTRA_DIST = rt generated $(ICEDTEA_PATC gcjwebplugin.cc tools-copy contrib ports \ patches/icedtea-gcc-4.3.patch extra $(ZERO_PATCHES) \ patches/icedtea-cacao.patch javaws.png javaws.desktop \ + patches/icedtea-netx-plugin.patch \ overlays extra jconsole.desktop policytool.desktop From mark at klomp.org Sun May 4 14:35:35 2008 From: mark at klomp.org (Mark Wielaard) Date: Sun, 04 May 2008 21:35:35 +0000 Subject: changeset in /hg/icedtea6: Import HAT SPL/GPLv2 fix. Message-ID: changeset a952ab0e58fb in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a952ab0e58fb description: Import HAT SPL/GPLv2 fix. 2008-05-04 Mark Wielaard * Makefile.am (EXTRA_DIST): Add patches/icedtea-hat-spl-gpl.patch. * Makefile.in: Regenerate. * patches/icedtea-hat-spl-gpl.patch: New patch. diffstat: 4 files changed, 2142 insertions(+), 1 deletion(-) ChangeLog | 6 Makefile.am | 1 Makefile.in | 3 patches/icedtea-hat-spl-gpl.patch | 2133 +++++++++++++++++++++++++++++++++++++ diffs (truncated from 2174 to 500 lines): diff -r 0a1846892905 -r a952ab0e58fb ChangeLog --- a/ChangeLog Sun May 04 13:12:48 2008 -0700 +++ b/ChangeLog Sun May 04 23:35:04 2008 +0200 @@ -1,3 +1,9 @@ 2008-05-04 Thomas Fitzsimmons + + * Makefile.am (EXTRA_DIST): Add patches/icedtea-hat-spl-gpl.patch. + * Makefile.in: Regenerate. + * patches/icedtea-hat-spl-gpl.patch: New patch. + 2008-05-04 Thomas Fitzsimmons * Makefile.am (EXTRA_DIST): Add patches/icedtea-netx-plugin.patch. diff -r 0a1846892905 -r a952ab0e58fb Makefile.am --- a/Makefile.am Sun May 04 13:12:48 2008 -0700 +++ b/Makefile.am Sun May 04 23:35:04 2008 +0200 @@ -312,6 +312,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-fonts.patch \ patches/icedtea-gervill.patch \ patches/icedtea-directaudio-close-trick.patch \ + patches/icedtea-hat-spl-gpl.patch \ $(GCC_PATCH) \ $(DISTRIBUTION_PATCHES) diff -r 0a1846892905 -r a952ab0e58fb Makefile.in --- a/Makefile.in Sun May 04 13:12:48 2008 -0700 +++ b/Makefile.in Sun May 04 23:35:04 2008 +0200 @@ -414,7 +414,8 @@ ICEDTEA_PATCHES = $(ZERO_PATCHES_COND) \ patches/icedtea-color-createcontext.patch \ patches/icedtea-color-profiles.patch \ patches/icedtea-fonts.patch patches/icedtea-gervill.patch \ - patches/icedtea-directaudio-close-trick.patch $(GCC_PATCH) \ + patches/icedtea-directaudio-close-trick.patch \ + patches/icedtea-hat-spl-gpl.patch $(GCC_PATCH) \ $(DISTRIBUTION_PATCHES) $(am__append_7) # Patch OpenJDK for plug replacements and ecj. diff -r 0a1846892905 -r a952ab0e58fb patches/icedtea-hat-spl-gpl.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-hat-spl-gpl.patch Sun May 04 23:35:04 2008 +0200 @@ -0,0 +1,2133 @@ +Changeset: d70a63c92b49 +Author: ohair +Date: 2008-04-30 17:34 -0700 +URL: http://hg.openjdk.java.net/jdk7/build/jdk/rev/d70a63c92b49 + +6695553: Cleanup GPLv2+SPL legal notices in hat sources +Summary: Just correcting the legal notices on the HAT sources. +Reviewed-by: alanb + +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/Main.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/Main.java Wed Apr 30 17:34:41 2008 -0700 +@@ -23,18 +23,10 @@ + * have any questions. + */ + +- + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/build.xml Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/build.xml Wed Apr 30 17:34:41 2008 -0700 +@@ -27,19 +27,9 @@ + + + +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/AbstractJavaHeapObjectVisitor.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/AbstractJavaHeapObjectVisitor.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/ArrayTypeCodes.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/ArrayTypeCodes.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/HackJavaValue.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/HackJavaValue.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaBoolean.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaBoolean.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaByte.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaByte.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaChar.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaChar.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaDouble.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaDouble.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaField.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaField.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaFloat.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaFloat.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObjectVisitor.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObjectVisitor.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaInt.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaInt.java Wed Apr 30 17:34:41 2008 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,20 +25,9 @@ + + + /* +- * The contents of this file are subject to the Sun Public License +- * Version 1.0 (the "License"); you may not use this file except in +- * compliance with the License. A copy of the License is available at +- * http://www.sun.com/, and in the file LICENSE.html in the +- * doc directory. +- * + * The Original Code is HAT. The Initial Developer of the + * Original Code is Bill Foote, with contributions from others +- * at JavaSoft/Sun. Portions created by Bill Foote and others +- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved. +- * +- * In addition to the formal license, I ask that you don't +- * change the history or donations files without permission. +- * ++ * at JavaSoft/Sun. + */ + + package com.sun.tools.hat.internal.model; +--- openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaLazyReadObject.java Fri Apr 18 16:40:32 2008 -0700 ++++ openjdk/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaLazyReadObject.java Wed Apr 30 17:34:41 2008 -0700 From mark at klomp.org Sun May 4 14:37:53 2008 From: mark at klomp.org (Mark Wielaard) Date: Sun, 04 May 2008 23:37:53 +0200 Subject: (J)Hat tool exclusion In-Reply-To: <4814D85A.8050604@sun.com> References: <1209309066.3103.24.camel@dijkstra.wildebeest.org> <4814D85A.8050604@sun.com> Message-ID: <1209937074.3058.1.camel@dijkstra.wildebeest.org> Hi Kelly, On Sun, 2008-04-27 at 12:47 -0700, Kelly O'Hair wrote: > IANAL ... I think this was just an oversight on our part. > I will investigate, since I was the one that initiated dragging > these files into the jdk sources. That was super quick. Thanks! I imported the fix into icedtea6. Distro people, please enable the HAT tool in your packages so it gets the testing it deserves. Cheers, Mark From bugzilla-daemon at icedtea.classpath.org Sun May 4 14:39:19 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 04 May 2008 21:39:19 +0000 Subject: [Bug 143] (J)Hat tool has conflicting GPL/SPL license terms Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=143 mark at klomp.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #1 from mark at klomp.org 2008-05-04 21:39 ------- Fixed in patches/icedtea-hat-spl-gpl.patch: Changeset: d70a63c92b49 Author: ohair Date: 2008-04-30 17:34 -0700 URL: http://hg.openjdk.java.net/jdk7/build/jdk/rev/d70a63c92b49 6695553: Cleanup GPLv2+SPL legal notices in hat sources Summary: Just correcting the legal notices on the HAT sources. Reviewed-by: alanb -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Sun May 4 14:39:19 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 04 May 2008 21:39:19 +0000 Subject: [Bug 138] jdk6 - GPL-compatible free software licenses and documented copyrights and licenses Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=138 Bug 138 depends on bug 143, which changed state. Bug 143 Summary: (J)Hat tool has conflicting GPL/SPL license terms http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=143 What |Old Value |New Value ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From Joe.Darcy at Sun.COM Sun May 4 15:15:12 2008 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Sun, 04 May 2008 15:15:12 -0700 Subject: (J)Hat tool exclusion In-Reply-To: <1209937074.3058.1.camel@dijkstra.wildebeest.org> References: <1209309066.3103.24.camel@dijkstra.wildebeest.org> <4814D85A.8050604@sun.com> <1209937074.3058.1.camel@dijkstra.wildebeest.org> Message-ID: <481E3570.8080703@sun.com> This fix has also been applied to the Sun internal OpenJDK 6 workspaces and will be reflected in our next source drop (after JavaOne). -Joe Mark Wielaard wrote: > Hi Kelly, > > On Sun, 2008-04-27 at 12:47 -0700, Kelly O'Hair wrote: >> IANAL ... I think this was just an oversight on our part. >> I will investigate, since I was the one that initiated dragging >> these files into the jdk sources. > > That was super quick. Thanks! I imported the fix into icedtea6. > Distro people, please enable the HAT tool in your packages so it gets > the testing it deserves. > > Cheers, > > Mark > From mark at klomp.org Sun May 4 15:30:30 2008 From: mark at klomp.org (Mark Wielaard) Date: Mon, 05 May 2008 00:30:30 +0200 Subject: SV: [Audio-engine-dev] Some small Gervill fixes In-Reply-To: <36EC82E93EB0AD40A4301DAD654323868CA4FB2ACA@mail.midverk.is> References: <1209632920.3996.39.camel@dijkstra.wildebeest.org> ,<1209684825.29815.8.camel@dijkstra.wildebeest.org> <36EC82E93EB0AD40A4301DAD654323868CA4FB2ACA@mail.midverk.is> Message-ID: <1209940230.3058.16.camel@dijkstra.wildebeest.org> Hi Karl, On Fri, 2008-05-02 at 16:25 +0000, Karl Helgason wrote: > I am not currently filtering the control values to 0..127 because some > user likes to be able to overdrive the values > for example to set Volume to 255 which mean more than 100% volume (it > was possible with the previous beatnik synthesizer). > This could however result in unpredictable behaviors. > If we want to prevent out of range values we should do that at the > beginning in the controlChange method with if statement. Aha, yes, I see. If the user is allowed to "boost" a control then maybe we should just let them. Reading those "weird" values back in getController() can lead to some strangeness though. > But it is cool to get more code reviewers :) Sun is planning to add > Gervill into OpenJDK 6 after JavaOne. That would be very cool. I am playing with frinika now on top of icedtea/openjdk with gervill integrated (frinika obviously works since it already had an older gervill imported). I never knew midi could be so much fun! > I have added this fix into the CVS and these also: > > - Added: AudioFloatFormatConverter, used to convert > between PCM_SIGNED, PCM_UNSIGNED, PCM_FLOAT in 8/16/24/32 bit (big/little endian), > and resample using (linear/cubic/sinc...) if needed. > - Added: WaveExtensibleReader, used to read WAV files using WAVE_FORMAT_EXTENSIBLE format. > - Added: WaveFloatFileWriter, used to writing WAV files with PCM_FLOAT encoding. > - Fix: AudioFloatConverter tests incorrectly AudioFormat frameSize against SampleSizeInBits > Support for 64-byte float added, and support for 32+ bit PCM samples. > SampleSizeInBits not dividable by 8 are now handled correctly. > - Fix: DLSID(GUID) values incorrectly read from files in DLSSoundBank. > - Fix: WaveFloatFileReader incorrectly sets framrate. > - Fix: DLSSoundbank writes avgBytesPerSec incorrectly if SampleSizeInBits is not dividable by 8. > - Fix: SoftChannel didn't reset concept of LSB control to 0 when MSB control value is set > (according to MIDI 1.0 Detailed Spec. page 12) > - Fix: SoftChannel, added check for illegal noteNumbers. > If illegal notenumber was used in NoteOn/NoteOff > a ArrayOutOfIndex exception was thrown. > > I especially proud of the new AudioFloatFormatConverter, it makes > sample rate conversion available via a FormatConversionProvider. > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4916960 O wow, very nice. I imported the new Gervill CVS version into IcedTea. Thanks, Mark From mark at klomp.org Sun May 4 15:31:59 2008 From: mark at klomp.org (Mark Wielaard) Date: Sun, 04 May 2008 22:31:59 +0000 Subject: changeset in /hg/icedtea6: Import new Gervill CVS. Message-ID: changeset 4706d355d973 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=4706d355d973 description: Import new Gervill CVS. 2008-05-04 Mark Wielaard * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound: Import new Gervill CVS. See CHANGES.txt. Changed: AudioFloatConverter.java, DLSSoundbank.java, SoftChannel.java, WaveFloatFileReader.java. Added: AudioFloatFormatConverter.java, WaveExtensibleFileReader.java, WaveFloatFileWriter.java. Deleted: PATInstrument.java, PATSample.java, PATSoundbankReader.java. diffstat: 12 files changed, 1426 insertions(+), 973 deletions(-) ChangeLog | 9 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatConverter.java | 384 +++++++ overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java | 523 +++++++++ overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt | 19 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSoundbank.java | 20 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/PATInstrument.java | 536 ---------- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/PATSample.java | 113 -- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/PATSoundbankReader.java | 296 ----- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java | 21 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java | 331 ++++++ overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileReader.java | 6 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java | 141 ++ diffs (truncated from 2610 to 500 lines): diff -r a952ab0e58fb -r 4706d355d973 ChangeLog --- a/ChangeLog Sun May 04 23:35:04 2008 +0200 +++ b/ChangeLog Mon May 05 00:31:45 2008 +0200 @@ -1,3 +1,12 @@ 2008-05-04 Mark Wielaard + + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound: + Import new Gervill CVS. See CHANGES.txt. Changed: + AudioFloatConverter.java, DLSSoundbank.java, SoftChannel.java, + WaveFloatFileReader.java. Added: AudioFloatFormatConverter.java, + WaveExtensibleFileReader.java, WaveFloatFileWriter.java. Deleted: + PATInstrument.java, PATSample.java, PATSoundbankReader.java. + 2008-05-04 Mark Wielaard * Makefile.am (EXTRA_DIST): Add patches/icedtea-hat-spl-gpl.patch. diff -r a952ab0e58fb -r 4706d355d973 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatConverter.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatConverter.java Sun May 04 23:35:04 2008 +0200 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatConverter.java Mon May 05 00:31:45 2008 +0200 @@ -27,13 +27,14 @@ package com.sun.media.sound; import java.nio.ByteBuffer; import java.nio.ByteOrder; +import java.nio.DoubleBuffer; import java.nio.FloatBuffer; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioFormat.Encoding; /** - * This class is used to convert between 8,16,24,32 bit signed/unsigned + * This class is used to convert between 8,16,24,32,32+ bit signed/unsigned * big/litle endian fixed/floating point byte buffers and float buffers. * * @version %I%, %E% @@ -43,6 +44,173 @@ public abstract class AudioFloatConverte public abstract class AudioFloatConverter { public static final Encoding PCM_FLOAT = new Encoding("PCM_FLOAT"); + + /*************************************************************************** + * + * LSB Filter, used filter least significant byte in samples arrays. + * + * Is used filter out data in lsb byte + * when SampleSizeInBits is not dividable by 8. + * + **************************************************************************/ + + private static class AudioFloatLSBFilter extends AudioFloatConverter { + + private AudioFloatConverter converter; + final private int offset; + final private int stepsize; + final private byte mask; + private byte[] mask_buffer; + + public AudioFloatLSBFilter(AudioFloatConverter converter, AudioFormat format) + { + int bits = format.getSampleSizeInBits(); + boolean bigEndian = format.isBigEndian(); + this.converter = converter; + stepsize = (bits + 7) / 8; + offset = bigEndian?(stepsize - 1):0; + int lsb_bits = bits % 8; + if(lsb_bits == 0) mask = (byte)0x00; + else if(lsb_bits == 1) mask = (byte)0x80; + else if(lsb_bits == 2) mask = (byte)0xC0; + else if(lsb_bits == 3) mask = (byte)0xE0; + else if(lsb_bits == 4) mask = (byte)0xF0; + else if(lsb_bits == 5) mask = (byte)0xF8; + else if(lsb_bits == 6) mask = (byte)0xFC; + else if(lsb_bits == 7) mask = (byte)0xFE; + else mask = (byte)0xFF; + } + + public byte[] toByteArray(float[] in_buff, int in_offset, int in_len, byte[] out_buff, int out_offset) { + byte[] ret = converter.toByteArray(in_buff, in_offset, in_len, out_buff, out_offset); + + int out_offset_end = in_len*stepsize; + for (int i = out_offset+offset; i < out_offset_end; i+=stepsize) { + out_buff[i] = (byte)(out_buff[i] & mask); + } + + return ret; + } + + public float[] toFloatArray(byte[] in_buff, int in_offset, float[] out_buff, int out_offset, int out_len) { + if(mask_buffer == null || mask_buffer.length < in_buff.length) + mask_buffer = new byte[in_buff.length]; + System.arraycopy(in_buff, 0, mask_buffer, 0, in_buff.length); + int in_offset_end = out_len*stepsize; + for (int i = in_offset+offset; i < in_offset_end; i+=stepsize) { + mask_buffer[i] = (byte)(mask_buffer[i] & mask); + } + float[] ret = converter.toFloatArray(mask_buffer, in_offset, out_buff, out_offset, out_len); + return ret; + } + + } + + /*************************************************************************** + * + * 64 bit float, little/big-endian + * + **************************************************************************/ + + // PCM 64 bit float, little-endian + private static class AudioFloatConversion64L extends AudioFloatConverter { + ByteBuffer bytebuffer = null; + + DoubleBuffer floatbuffer = null; + double[] double_buff = null; + + public float[] toFloatArray(byte[] in_buff, int in_offset, + float[] out_buff, int out_offset, int out_len) { + int in_len = out_len * 8; + if (bytebuffer == null || bytebuffer.capacity() < in_len) { + bytebuffer = ByteBuffer.allocate(in_len).order( + ByteOrder.LITTLE_ENDIAN); + floatbuffer = bytebuffer.asDoubleBuffer(); + } + bytebuffer.position(0); + floatbuffer.position(0); + bytebuffer.put(in_buff, in_offset, in_len); + if(double_buff == null || double_buff.length < out_len+out_offset) + double_buff = new double[out_len+out_offset]; + floatbuffer.get(double_buff, out_offset, out_len); + int out_offset_end = out_offset + out_len; + for (int i = out_offset; i < out_offset_end; i++) { + out_buff[i] = (float)double_buff[i]; + } + return out_buff; + } + + public byte[] toByteArray(float[] in_buff, int in_offset, int in_len, + byte[] out_buff, int out_offset) { + int out_len = in_len * 8; + if (bytebuffer == null || bytebuffer.capacity() < out_len) { + bytebuffer = ByteBuffer.allocate(out_len).order( + ByteOrder.LITTLE_ENDIAN); + floatbuffer = bytebuffer.asDoubleBuffer(); + } + floatbuffer.position(0); + bytebuffer.position(0); + if(double_buff == null || double_buff.length < in_offset+in_len) + double_buff = new double[in_offset+in_len]; + int in_offset_end = in_offset+in_len; + for (int i = in_offset; i < in_offset_end; i++) { + double_buff[i] = in_buff[i]; + } + floatbuffer.put(double_buff, in_offset, in_len); + bytebuffer.get(out_buff, out_offset, out_len); + return out_buff; + } + } + + // PCM 64 bit float, big-endian + private static class AudioFloatConversion64B extends AudioFloatConverter { + ByteBuffer bytebuffer = null; + + DoubleBuffer floatbuffer = null; + double[] double_buff = null; + + public float[] toFloatArray(byte[] in_buff, int in_offset, + float[] out_buff, int out_offset, int out_len) { + int in_len = out_len * 8; + if (bytebuffer == null || bytebuffer.capacity() < in_len) { + bytebuffer = ByteBuffer.allocate(in_len).order( + ByteOrder.BIG_ENDIAN); + floatbuffer = bytebuffer.asDoubleBuffer(); + } + bytebuffer.position(0); + floatbuffer.position(0); + bytebuffer.put(in_buff, in_offset, in_len); + if(double_buff == null || double_buff.length < out_len+out_offset) + double_buff = new double[out_len+out_offset]; + floatbuffer.get(double_buff, out_offset, out_len); + int out_offset_end = out_offset + out_len; + for (int i = out_offset; i < out_offset_end; i++) { + out_buff[i] = (float)double_buff[i]; + } + return out_buff; + } + + public byte[] toByteArray(float[] in_buff, int in_offset, int in_len, + byte[] out_buff, int out_offset) { + int out_len = in_len * 8; + if (bytebuffer == null || bytebuffer.capacity() < out_len) { + bytebuffer = ByteBuffer.allocate(out_len).order( + ByteOrder.BIG_ENDIAN); + floatbuffer = bytebuffer.asDoubleBuffer(); + } + floatbuffer.position(0); + bytebuffer.position(0); + if(double_buff == null || double_buff.length < in_offset+in_len) + double_buff = new double[in_offset+in_len]; + int in_offset_end = in_offset+in_len; + for (int i = in_offset; i < in_offset_end; i++) { + double_buff[i] = in_buff[i]; + } + floatbuffer.put(double_buff, in_offset, in_len); + bytebuffer.get(out_buff, out_offset, out_len); + return out_buff; + } + } /*************************************************************************** * @@ -549,14 +717,196 @@ public abstract class AudioFloatConverte } } + /*************************************************************************** + * + * 32+ bit signed/unsigned, little/big-endian + * + **************************************************************************/ + + // PCM 32+ bit, signed, little-endian + private static class AudioFloatConversion32xSL extends AudioFloatConverter { + + final int xbytes; + + public AudioFloatConversion32xSL(int xbytes) + { + this.xbytes = xbytes; + } + + public float[] toFloatArray(byte[] in_buff, int in_offset, + float[] out_buff, int out_offset, int out_len) { + int ix = in_offset; + int ox = out_offset; + for (int i = 0; i < out_len; i++) { + ix += xbytes; + int x = (in_buff[ix++] & 0xFF) | ((in_buff[ix++] & 0xFF) << 8) + | ((in_buff[ix++] & 0xFF) << 16) + | ((in_buff[ix++] & 0xFF) << 24); + out_buff[ox++] = x * (1.0f / 2147483647.0f); + } + return out_buff; + } + + public byte[] toByteArray(float[] in_buff, int in_offset, int in_len, + byte[] out_buff, int out_offset) { + int ix = in_offset; + int ox = out_offset; + for (int i = 0; i < in_len; i++) { + int x = (int) (in_buff[ix++] * 2147483647.0); + for (int j = 0; j < xbytes; j++) { + out_buff[ox++] = 0; + } + out_buff[ox++] = (byte) x; + out_buff[ox++] = (byte) (x >>> 8); + out_buff[ox++] = (byte) (x >>> 16); + out_buff[ox++] = (byte) (x >>> 24); + } + return out_buff; + } + } + + // PCM 32+ bit, signed, big-endian + private static class AudioFloatConversion32xSB extends AudioFloatConverter { + + final int xbytes; + + public AudioFloatConversion32xSB(int xbytes) + { + this.xbytes = xbytes; + } + + public float[] toFloatArray(byte[] in_buff, int in_offset, + float[] out_buff, int out_offset, int out_len) { + int ix = in_offset; + int ox = out_offset; + for (int i = 0; i < out_len; i++) { + int x = ((in_buff[ix++] & 0xFF) << 24) + | ((in_buff[ix++] & 0xFF) << 16) + | ((in_buff[ix++] & 0xFF) << 8) + | (in_buff[ix++] & 0xFF); + ix += xbytes; + out_buff[ox++] = x * (1.0f / 2147483647.0f); + } + return out_buff; + } + + public byte[] toByteArray(float[] in_buff, int in_offset, int in_len, + byte[] out_buff, int out_offset) { + int ix = in_offset; + int ox = out_offset; + for (int i = 0; i < in_len; i++) { + int x = (int) (in_buff[ix++] * 2147483647.0); + out_buff[ox++] = (byte) (x >>> 24); + out_buff[ox++] = (byte) (x >>> 16); + out_buff[ox++] = (byte) (x >>> 8); + out_buff[ox++] = (byte) x; + for (int j = 0; j < xbytes; j++) { + out_buff[ox++] = 0; + } + } + return out_buff; + } + } + + // PCM 32+ bit, unsigned, little-endian + private static class AudioFloatConversion32xUL extends AudioFloatConverter { + + final int xbytes; + + public AudioFloatConversion32xUL(int xbytes) + { + this.xbytes = xbytes; + } + + public float[] toFloatArray(byte[] in_buff, int in_offset, + float[] out_buff, int out_offset, int out_len) { + int ix = in_offset; + int ox = out_offset; + for (int i = 0; i < out_len; i++) { + ix += xbytes; + int x = (in_buff[ix++] & 0xFF) | ((in_buff[ix++] & 0xFF) << 8) + | ((in_buff[ix++] & 0xFF) << 16) + | ((in_buff[ix++] & 0xFF) << 24); + x -= 2147483647; + out_buff[ox++] = x * (1.0f / 2147483647.0f); + } + return out_buff; + } + + public byte[] toByteArray(float[] in_buff, int in_offset, int in_len, + byte[] out_buff, int out_offset) { + int ix = in_offset; + int ox = out_offset; + for (int i = 0; i < in_len; i++) { + int x = (int) (in_buff[ix++] * 2147483647.0); + x += 2147483647; + for (int j = 0; j < xbytes; j++) { + out_buff[ox++] = 0; + } + out_buff[ox++] = (byte) x; + out_buff[ox++] = (byte) (x >>> 8); + out_buff[ox++] = (byte) (x >>> 16); + out_buff[ox++] = (byte) (x >>> 24); + } + return out_buff; + } + } + + // PCM 32+ bit, unsigned, big-endian + private static class AudioFloatConversion32xUB extends AudioFloatConverter { + + final int xbytes; + + public AudioFloatConversion32xUB(int xbytes) + { + this.xbytes = xbytes; + } + + public float[] toFloatArray(byte[] in_buff, int in_offset, + float[] out_buff, int out_offset, int out_len) { + int ix = in_offset; + int ox = out_offset; + for (int i = 0; i < out_len; i++) { + int x = ((in_buff[ix++] & 0xFF) << 24) + | ((in_buff[ix++] & 0xFF) << 16) + | ((in_buff[ix++] & 0xFF) << 8) + | (in_buff[ix++] & 0xFF); + ix += xbytes; + x -= 2147483647; + out_buff[ox++] = x * (1.0f / 2147483647.0f); + } + return out_buff; + } + + public byte[] toByteArray(float[] in_buff, int in_offset, int in_len, + byte[] out_buff, int out_offset) { + int ix = in_offset; + int ox = out_offset; + for (int i = 0; i < in_len; i++) { + int x = (int) (in_buff[ix++] * 2147483647.0); + x += 2147483647; + out_buff[ox++] = (byte) (x >>> 24); + out_buff[ox++] = (byte) (x >>> 16); + out_buff[ox++] = (byte) (x >>> 8); + out_buff[ox++] = (byte) x; + for (int j = 0; j < xbytes; j++) { + out_buff[ox++] = 0; + } + } + return out_buff; + } + } + + public static AudioFloatConverter getConverter(AudioFormat format) { AudioFloatConverter conv = null; - if (format.getFrameSize() != (format.getSampleSizeInBits() / 8) + if (format.getFrameSize() == 0) return null; + if (format.getFrameSize() != ((format.getSampleSizeInBits()+7) / 8) * format.getChannels()) return null; if (format.getEncoding().equals(Encoding.PCM_SIGNED)) { if (format.isBigEndian()) { - if (format.getSampleSizeInBits() == 8) + if (format.getSampleSizeInBits() <= 8) conv = new AudioFloatConversion8S(); else if (format.getSampleSizeInBits() > 8 && format.getSampleSizeInBits() <= 16) @@ -567,8 +917,10 @@ public abstract class AudioFloatConverte else if (format.getSampleSizeInBits() > 24 && format.getSampleSizeInBits() <= 32) conv = new AudioFloatConversion32SB(); + else if (format.getSampleSizeInBits() > 32) + conv = new AudioFloatConversion32xSB(((format.getSampleSizeInBits()+7)/8)-4); } else { - if (format.getSampleSizeInBits() == 8) + if (format.getSampleSizeInBits() <= 8) conv = new AudioFloatConversion8S(); else if (format.getSampleSizeInBits() > 8 & format.getSampleSizeInBits() <= 16) @@ -579,10 +931,12 @@ public abstract class AudioFloatConverte else if (format.getSampleSizeInBits() > 24 && format.getSampleSizeInBits() <= 32) conv = new AudioFloatConversion32SL(); + else if (format.getSampleSizeInBits() > 32) + conv = new AudioFloatConversion32xSL(((format.getSampleSizeInBits()+7)/8)-4); } } else if (format.getEncoding().equals(Encoding.PCM_UNSIGNED)) { if (format.isBigEndian()) { - if (format.getSampleSizeInBits() == 8) + if (format.getSampleSizeInBits() <= 8) conv = new AudioFloatConversion8U(); else if (format.getSampleSizeInBits() > 8 && format.getSampleSizeInBits() <= 16) @@ -593,8 +947,10 @@ public abstract class AudioFloatConverte else if (format.getSampleSizeInBits() > 24 && format.getSampleSizeInBits() <= 32) conv = new AudioFloatConversion32UB(); + else if (format.getSampleSizeInBits() > 32) + conv = new AudioFloatConversion32xUB(((format.getSampleSizeInBits()+7)/8)-4); } else { - if (format.getSampleSizeInBits() == 8) + if (format.getSampleSizeInBits() <= 8) conv = new AudioFloatConversion8U(); else if (format.getSampleSizeInBits() > 8 && format.getSampleSizeInBits() <= 16) @@ -605,6 +961,8 @@ public abstract class AudioFloatConverte else if (format.getSampleSizeInBits() > 24 && format.getSampleSizeInBits() <= 32) conv = new AudioFloatConversion32UL(); + else if (format.getSampleSizeInBits() > 32) + conv = new AudioFloatConversion32xUL(((format.getSampleSizeInBits()+7)/8)-4); } } else if (format.getEncoding().equals(PCM_FLOAT)) { if (format.getSampleSizeInBits() == 32) { @@ -613,6 +971,20 @@ public abstract class AudioFloatConverte else conv = new AudioFloatConversion32L(); } + else + if (format.getSampleSizeInBits() == 64) { + if (format.isBigEndian()) + conv = new AudioFloatConversion64B(); + else + conv = new AudioFloatConversion64L(); + } + + } + + if ((format.getEncoding().equals(Encoding.PCM_SIGNED) || + format.getEncoding().equals(Encoding.PCM_UNSIGNED)) + && (format.getSampleSizeInBits() % 8 != 0)) { + conv = new AudioFloatLSBFilter(conv, format); } if (conv != null) diff -r a952ab0e58fb -r 4706d355d973 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java Mon May 05 00:31:45 2008 +0200 @@ -0,0 +1,523 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * From langel at redhat.com Mon May 5 07:06:06 2008 From: langel at redhat.com (Lillian Angel) Date: Mon, 05 May 2008 14:06:06 +0000 Subject: changeset in /hg/icedtea6: 2008-05-05 Lillian Angel changeset dce24bd81691 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=dce24bd81691 description: 2008-05-05 Lillian Angel * jconsole.desktop: Fixed typo. diffstat: 2 files changed, 5 insertions(+), 1 deletion(-) ChangeLog | 4 ++++ policytool.desktop | 2 +- diffs (23 lines): diff -r 4706d355d973 -r dce24bd81691 ChangeLog --- a/ChangeLog Mon May 05 00:31:45 2008 +0200 +++ b/ChangeLog Mon May 05 10:06:01 2008 -0400 @@ -1,3 +1,7 @@ 2008-05-04 Mark Wielaard + + * jconsole.desktop: Fixed typo. + 2008-05-04 Mark Wielaard * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound: diff -r 4706d355d973 -r dce24bd81691 policytool.desktop --- a/policytool.desktop Mon May 05 00:31:45 2008 +0200 +++ b/policytool.desktop Mon May 05 10:06:01 2008 -0400 @@ -1,7 +1,7 @@ [Desktop Entry] Name=OpenJDK Policy Tool Comment=Manage OpenJDK policy files -Exec=/usr/binpolicytool +Exec=/usr/bin/policytool Icon=java Terminal=false Type=Application From jsumali at redhat.com Tue May 6 10:11:28 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Tue, 06 May 2008 17:11:28 +0000 Subject: changeset in /hg/icedtea6: 2008-05-06 Joshua Sumali changeset 506ca3ba0559 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=506ca3ba0559 description: 2008-05-06 Joshua Sumali * rt/net/sourceforge/jnlp/security/CertWarningPane.java: Get publisher name from certificate instead of vendor field in jnlp file. diffstat: 2 files changed, 10 insertions(+), 10 deletions(-) ChangeLog | 5 +++++ rt/net/sourceforge/jnlp/security/CertWarningPane.java | 15 +++++---------- diffs (38 lines): diff -r dce24bd81691 -r 506ca3ba0559 ChangeLog --- a/ChangeLog Mon May 05 10:06:01 2008 -0400 +++ b/ChangeLog Tue May 06 13:11:19 2008 -0400 @@ -1,3 +1,8 @@ 2008-05-05 Lillian Angel + + * rt/net/sourceforge/jnlp/security/CertWarningPane.java: Get publisher + name from certificate instead of vendor field in jnlp file. + 2008-05-05 Lillian Angel * jconsole.desktop: Fixed typo. diff -r dce24bd81691 -r 506ca3ba0559 rt/net/sourceforge/jnlp/security/CertWarningPane.java --- a/rt/net/sourceforge/jnlp/security/CertWarningPane.java Mon May 05 10:06:01 2008 -0400 +++ b/rt/net/sourceforge/jnlp/security/CertWarningPane.java Tue May 06 13:11:19 2008 -0400 @@ -91,17 +91,12 @@ public class CertWarningPane extends Sec } try { - //Really ugly way of getting the publisher... - if (file instanceof PluginBridge) { - Certificate c = ((SecurityWarningDialog)optionPane) - .getJarSigner().getPublisher(); - if (c instanceof X509Certificate) { - publisher = getCN(((X509Certificate)c) - .getSubjectX500Principal().getName()); - } + Certificate c = ((SecurityWarningDialog)optionPane) + .getJarSigner().getPublisher(); + if (c instanceof X509Certificate) { + publisher = getCN(((X509Certificate)c) + .getSubjectX500Principal().getName()); } - else - publisher = file.getInformation().getVendor(); } catch (Exception e) { } From jsumali at redhat.com Wed May 7 07:43:03 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Wed, 07 May 2008 14:43:03 +0000 Subject: changeset in /hg/icedtea6: 2008-05-07 Joshua Sumali changeset 1f85b520d105 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=1f85b520d105 description: 2008-05-07 Joshua Sumali * rt/net/sourceforge/jnlp/cache/ResourceTracker.java: Close URL connections nicely instead of leaving them open. diffstat: 2 files changed, 18 insertions(+), 2 deletions(-) ChangeLog | 5 +++++ rt/net/sourceforge/jnlp/cache/ResourceTracker.java | 15 +++++++++++++-- diffs (65 lines): diff -r 506ca3ba0559 -r 1f85b520d105 ChangeLog --- a/ChangeLog Tue May 06 13:11:19 2008 -0400 +++ b/ChangeLog Wed May 07 10:42:42 2008 -0400 @@ -1,3 +1,8 @@ 2008-05-06 Joshua Sumali + + * rt/net/sourceforge/jnlp/cache/ResourceTracker.java: Close URL + connections nicely instead of leaving them open. + 2008-05-06 Joshua Sumali * rt/net/sourceforge/jnlp/security/CertWarningPane.java: Get publisher diff -r 506ca3ba0559 -r 1f85b520d105 rt/net/sourceforge/jnlp/cache/ResourceTracker.java --- a/rt/net/sourceforge/jnlp/cache/ResourceTracker.java Tue May 06 13:11:19 2008 -0400 +++ b/rt/net/sourceforge/jnlp/cache/ResourceTracker.java Wed May 07 10:42:42 2008 -0400 @@ -600,7 +600,8 @@ public class ResourceTracker { try { // create out second in case in does not exist - InputStream in = new BufferedInputStream( resource.connection.getInputStream() ); + URLConnection con = resource.location.openConnection(); + InputStream in = new BufferedInputStream(con.getInputStream()); OutputStream out = CacheUtil.getOutputStream(resource.location, resource.downloadVersion); byte buf[] = new byte[1024]; int rlen; @@ -612,6 +613,10 @@ public class ResourceTracker { in.close(); out.close(); + + // explicitly close the URLConnection. + if (con instanceof HttpURLConnection) + ((HttpURLConnection)con).disconnect(); resource.changeStatus(DOWNLOADING, DOWNLOADED); synchronized(lock) { @@ -648,7 +653,7 @@ public class ResourceTracker { synchronized(resource) { resource.localFile = localFile; - resource.connection = connection; + // resource.connection = connection; resource.size = size; resource.changeStatus(CONNECT|CONNECTING, CONNECTED); @@ -669,6 +674,10 @@ public class ResourceTracker { lock.notifyAll(); // wake up wait's to check for completion } resource.fireDownloadEvent(); // fire CONNECTED + + // explicitly close the URLConnection. + if (connection instanceof HttpURLConnection) + ((HttpURLConnection)connection).disconnect(); } catch (Exception ex) { if (JNLPRuntime.isDebug()) @@ -857,6 +866,8 @@ public class ResourceTracker { synchronized (lock) { // check for completion for (int i=0; i < resources.length; i++) { + //NetX Deadlocking may be solved by removing this + //synch block. synchronized (resources[i]) { if (!resources[i].isSet(DOWNLOADED | ERROR)) { finished = false; From bugzilla-daemon at icedtea.classpath.org Wed May 7 08:28:22 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 07 May 2008 15:28:22 +0000 Subject: [Bug 135] OpenJDK segfaults when running a java project of mine Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=135 ------- Comment #7 from langel at redhat.com 2008-05-07 15:28 ------- is this still a problem? do you have a testcase that fails? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 7 09:14:27 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 07 May 2008 16:14:27 +0000 Subject: [Bug 150] New: truststore settings in hotspot Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=150 Summary: truststore settings in hotspot Product: IcedTea Version: unspecified Platform: All OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: nitya.doraisamy at sun.com system properties javax.net.ssl.trustStrore, trustStorePassword and javax.net.ssl.trustStoreType are being set in hotspot and these changes don't really belong there. The code in hotspot/src/os/linux/vm/os_linux.cpp which sets the system properties as part of hotspot should be removeed and the corrects changes should be made in jdk/src/share/classes/sun/security/ssl/TrustManagerImpl.java. This includes code to point to a new default truststore and the new trustStore type. http://icedtea.classpath.org/hg/icedtea6/file/d0081b7856c8/patches/icedtea-certbundle.patch The current settings may cause any app that were to implicitly depend on the default truststore to end up not working unless they overrode with a custom system prop which they were not earlier doing. This may be a problem for Java apps that did not have such an setting made earlier. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From jsumali at redhat.com Wed May 7 10:31:48 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Wed, 07 May 2008 17:31:48 +0000 Subject: changeset in /hg/icedtea6: 2008-05-07 Joshua Sumali changeset 07c44f5d2c52 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=07c44f5d2c52 description: 2008-05-07 Joshua Sumali * rt/net/sourceforge/jnlp/Launcher.java: Check main jar for main class in case main class isn't specified in the jnlp file. * rt/net/sourceforge/jnlp/resources/Messages.properties: Add main class error messages. diffstat: 3 files changed, 28 insertions(+) ChangeLog | 7 ++++++ rt/net/sourceforge/jnlp/Launcher.java | 19 +++++++++++++++++ rt/net/sourceforge/jnlp/resources/Messages.properties | 2 + diffs (62 lines): diff -r 1f85b520d105 -r 07c44f5d2c52 ChangeLog --- a/ChangeLog Wed May 07 10:42:42 2008 -0400 +++ b/ChangeLog Wed May 07 13:31:36 2008 -0400 @@ -1,3 +1,10 @@ 2008-05-07 Joshua Sumali + + * rt/net/sourceforge/jnlp/Launcher.java: Check main jar for main class in + case main class isn't specified in the jnlp file. + * rt/net/sourceforge/jnlp/resources/Messages.properties: Add main class + error messages. + 2008-05-07 Joshua Sumali * rt/net/sourceforge/jnlp/cache/ResourceTracker.java: Close URL diff -r 1f85b520d105 -r 07c44f5d2c52 rt/net/sourceforge/jnlp/Launcher.java --- a/rt/net/sourceforge/jnlp/Launcher.java Wed May 07 10:42:42 2008 -0400 +++ b/rt/net/sourceforge/jnlp/Launcher.java Wed May 07 13:31:36 2008 -0400 @@ -21,6 +21,7 @@ import java.awt.Container; import java.awt.Container; import java.io.*; import java.net.*; +import java.util.jar.JarFile; import java.lang.reflect.*; import net.sourceforge.jnlp.cache.*; @@ -317,6 +318,24 @@ public class Launcher { app.initialize(); String mainName = file.getApplication().getMainClass(); + + // When the application-desc field is empty, we should take a + // look at the main jar for the main class. + if (mainName == null) { + JARDesc mainJarDesc = file.getResources().getMainJAR(); + File f = CacheUtil.getCacheFile(mainJarDesc.getLocation(), null); + if (f != null) { + JarFile mainJar = new JarFile(f); + mainName = mainJar.getManifest(). + getMainAttributes().getValue("Main-Class"); + } + } + + if (mainName == null) + throw launchError(new LaunchException(file, null, + R("LSFatal"), R("LCClient"), R("LCantDetermineMainClass") , + R("LCantDetermineMainClassInfo"))); + Class mainClass = app.getClassLoader().loadClass(mainName); Method main = mainClass.getDeclaredMethod("main", new Class[] {String[].class} ); diff -r 1f85b520d105 -r 07c44f5d2c52 rt/net/sourceforge/jnlp/resources/Messages.properties --- a/rt/net/sourceforge/jnlp/resources/Messages.properties Wed May 07 10:42:42 2008 -0400 +++ b/rt/net/sourceforge/jnlp/resources/Messages.properties Wed May 07 13:31:36 2008 -0400 @@ -48,6 +48,8 @@ LInitApplicationInfo= LInitApplicationInfo= LNotLaunchable=Not a launchable JNLP file. LNotLaunchableInfo=File must be a JNLP application, applet, or installer type. +LCantDetermineMainClass=Unknown Main-Class. +LCantDetermineMainClassInfo=Could not determine the main class for this application. JNotApplet=File is not an applet. JNotApplication=File is not an application. From bugzilla-daemon at icedtea.classpath.org Wed May 7 11:16:59 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 07 May 2008 18:16:59 +0000 Subject: [Bug 135] OpenJDK segfaults when running a java project of mine Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=135 ------- Comment #8 from konrad at tylerc.org 2008-05-07 18:16 ------- It's still a problem, but I don't have a testcase yet. Feel free to close this bug. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 7 13:00:12 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 07 May 2008 20:00:12 +0000 Subject: [Bug 150] truststore settings in hotspot Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=150 ------- Comment #1 from langel at redhat.com 2008-05-07 20:00 ------- $ ls openjdk6/jdk/src/share/classes/sun/security/ssl/TrustManagerImpl.java ls: cannot access openjdk6/jdk/src/share/classes/sun/security/ssl/TrustManagerImpl.java: No such file or directory Are you sure this is the right file? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 7 13:30:16 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 07 May 2008 20:30:16 +0000 Subject: [Bug 150] truststore settings in hotspot Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=150 ------- Comment #2 from nitya.doraisamy at sun.com 2008-05-07 20:30 ------- Sorry, that should be TrustManagerFactoryImpl.java. See the following,around lines 130-200 : http://hg.openjdk.java.net/jdk7/jsn-gate/jdk/file/d95a6a4ea502/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From langel at redhat.com Thu May 8 08:05:01 2008 From: langel at redhat.com (Lillian Angel) Date: Thu, 08 May 2008 15:05:01 +0000 Subject: changeset in /hg/icedtea6: 2008-05-08 Lillian Angel changeset d86e9eb1fa7d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d86e9eb1fa7d description: 2008-05-08 Lillian Angel Fixes Bug #150 * patches/icedtea-certbundle.patch: Moved system properties defined in hotspot to TrustManagerFactoryImpl. * icedtea-use-system-tzdata.patch: Updated to patch cleanly. diffstat: 3 files changed, 47 insertions(+), 38 deletions(-) ChangeLog | 7 ++++ patches/icedtea-certbundle.patch | 51 ++++++++++++++++--------------- patches/icedtea-use-system-tzdata.patch | 27 +++++++--------- diffs (114 lines): diff -r 07c44f5d2c52 -r d86e9eb1fa7d ChangeLog --- a/ChangeLog Wed May 07 13:31:36 2008 -0400 +++ b/ChangeLog Thu May 08 11:04:53 2008 -0400 @@ -1,3 +1,10 @@ 2008-05-07 Joshua Sumali + + Fixes Bug #150 + * patches/icedtea-certbundle.patch: Moved system properties defined in + hotspot to TrustManagerFactoryImpl. + * icedtea-use-system-tzdata.patch: Updated to patch cleanly. + 2008-05-07 Joshua Sumali * rt/net/sourceforge/jnlp/Launcher.java: Check main jar for main class in diff -r 07c44f5d2c52 -r d86e9eb1fa7d patches/icedtea-certbundle.patch --- a/patches/icedtea-certbundle.patch Wed May 07 13:31:36 2008 -0400 +++ b/patches/icedtea-certbundle.patch Thu May 08 11:04:53 2008 -0400 @@ -1,27 +1,3 @@ diff -urN openjdk.orig/hotspot/src/os/li -diff -urN openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp ---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp 2007-10-12 03:46:00.000000000 -0400 -+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2007-10-12 18:24:12.000000000 -0400 -@@ -376,6 +382,20 @@ - } - } - -+ SystemProperty* sp = Arguments::system_properties(); -+ Arguments::PropertyList_add (&sp, -+ "javax.net.ssl.trustStore", -+ "/etc/pki/tls/certs/ca-bundle.crt"); -+ Arguments::PropertyList_add (&sp, -+ "javax.net.ssl.trustStoreType", -+ "CertBundle"); -+ Arguments::PropertyList_add (&sp, -+ "javax.net.ssl.trustStoreProvider", -+ ""); -+ Arguments::PropertyList_add (&sp, -+ "javax.net.ssl.trustStorePassword", -+ ""); -+ - #undef malloc - #undef getenv - #undef EXTENSIONS_DIR diff -urN openjdk.orig/jdk/src/share/classes/sun/security/provider/CertBundleKeyStoreImpl.java openjdk/jdk/src/share/classes/sun/security/provider/CertBundleKeyStoreImpl.java --- openjdk.orig/jdk/src/share/classes/sun/security/provider/CertBundleKeyStoreImpl.java 1969-12-31 19:00:00.000000000 -0500 +++ openjdk/jdk/src/share/classes/sun/security/provider/CertBundleKeyStoreImpl.java 2007-10-12 18:24:05.000000000 -0400 @@ -235,3 +211,30 @@ diff -urN openjdk.orig/jdk/src/share/cla /* * Policy +--- openjdkold/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java 2008-03-26 04:59:04.000000000 -0400 ++++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java 2008-05-08 10:49:22.000000000 -0400 +@@ -140,18 +140,18 @@ + + AccessController.doPrivileged(new PrivilegedExceptionAction() { + public Void run() throws Exception { +- props.put("trustStore", System.getProperty( +- "javax.net.ssl.trustStore")); + props.put("javaHome", System.getProperty( + "java.home")); +- props.put("trustStoreType", System.getProperty( +- "javax.net.ssl.trustStoreType", +- KeyStore.getDefaultType())); + props.put("trustStoreProvider", System.getProperty( + "javax.net.ssl.trustStoreProvider", "")); + props.put("trustStorePasswd", System.getProperty( + "javax.net.ssl.trustStorePassword", "")); +- return null; ++ props.put("/etc/pki/tls/certs/ca-bundle.crt", System.getProperty( ++ "javax.net.ssl.trustStore") ++ props.put("CertBundle", System.getProperty( ++ "javax.net.ssl.trustStoreType", ++ KeyStore.getDefaultType())); ++ return null; + } + }); + diff -r 07c44f5d2c52 -r d86e9eb1fa7d patches/icedtea-use-system-tzdata.patch --- a/patches/icedtea-use-system-tzdata.patch Wed May 07 13:31:36 2008 -0400 +++ b/patches/icedtea-use-system-tzdata.patch Thu May 08 11:04:53 2008 -0400 @@ -1,17 +1,3 @@ diff -urN openjdk.orig/hotspot/src/os/li -diff -urN openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp ---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp 2007-10-12 18:25:55.000000000 -0400 -+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2007-10-12 18:26:02.000000000 -0400 -@@ -390,6 +390,10 @@ - "javax.net.ssl.trustStorePassword", - ""); - -+ // Use the system zoneinfo files, if present -+ Arguments::PropertyList_add (&sp, -+ "user.zoneinfo.dir", "/usr/share/javazi"); -+ - #undef malloc - #undef getenv - #undef EXTENSIONS_DIR --- ../openjdkb23/openjdk/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2007-10-30 04:38:28.000000000 -0400 +++ openjdk/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2007-11-13 13:16:52.000000000 -0500 @@ -28,6 +28,7 @@ @@ -57,3 +43,16 @@ diff -urN openjdk.orig/hotspot/src/os/li public Object run() throws IOException { File file = new File(fname); if (!file.canRead()) { +--- oldopenjdk6/hotspot/src/os/linux/vm/os_linux.cpp 2008-03-26 05:07:22.000000000 -0400 ++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2008-05-08 11:03:17.000000000 -0400 +@@ -376,6 +376,10 @@ + } + } + ++// Use the system zoneinfo files, if present ++Arguments::PropertyList_add (&sp, ++ "user.zoneinfo.dir", "/usr/share/javazi"); ++ + #undef malloc + #undef getenv + #undef EXTENSIONS_DIR From bugzilla-daemon at icedtea.classpath.org Thu May 8 08:05:23 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 May 2008 15:05:23 +0000 Subject: [Bug 150] truststore settings in hotspot Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=150 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #3 from langel at redhat.com 2008-05-08 15:05 ------- Fixed. Thanks -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From mark at klomp.org Thu May 8 17:40:12 2008 From: mark at klomp.org (Mark Wielaard) Date: Fri, 09 May 2008 00:40:12 +0000 Subject: changeset in /hg/icedtea6: Fix potential ALSA locks in DirectAud... Message-ID: changeset 3c358d6fd84e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3c358d6fd84e description: Fix potential ALSA locks in DirectAudioDevice because of races on doIO var. 2008-05-08 Mark Wielaard * patches/icedtea-directaudio-close-trick.patch: Use new static lockLast for nOpen/nClose guarding. Make lockNative non-static again. Do all checks before native calls of doIO inside lockNative guard. Set doIO to false after nClose before dropping lockNative guard. diffstat: 2 files changed, 129 insertions(+), 12 deletions(-) ChangeLog | 8 + patches/icedtea-directaudio-close-trick.patch | 133 ++++++++++++++++++++++--- diffs (179 lines): diff -r d86e9eb1fa7d -r 3c358d6fd84e ChangeLog --- a/ChangeLog Thu May 08 11:04:53 2008 -0400 +++ b/ChangeLog Fri May 09 02:30:42 2008 +0200 @@ -1,3 +1,11 @@ 2008-05-08 Lillian Angel + + * patches/icedtea-directaudio-close-trick.patch: Use new static + lockLast for nOpen/nClose guarding. Make lockNative non-static + again. Do all checks before native calls of doIO inside + lockNative guard. Set doIO to false after nClose before dropping + lockNative guard. + 2008-05-08 Lillian Angel Fixes Bug #150 diff -r d86e9eb1fa7d -r 3c358d6fd84e patches/icedtea-directaudio-close-trick.patch --- a/patches/icedtea-directaudio-close-trick.patch Thu May 08 11:04:53 2008 -0400 +++ b/patches/icedtea-directaudio-close-trick.patch Fri May 09 02:30:42 2008 +0200 @@ -1,18 +1,19 @@ --- /home/mark/src/openjdk/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java 2008-04-13 01:05:30.000000000 +0200 -+++ openjdk/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java 2008-05-04 18:42:39.000000000 +0200 -@@ -394,7 +394,10 @@ ++++ openjdk/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java 2008-05-09 02:18:21.000000000 +0200 +@@ -394,7 +394,12 @@ private float leftGain, rightGain; protected volatile boolean noService = false; // do not run the nService method -- protected Object lockNative = new Object(); -+ // Guards all native calls and the lastOpened static variable. -+ protected static Object lockNative = new Object(); ++ // Guards all native calls. + protected Object lockNative = new Object(); ++ // Guards the lastOpened static variable in implOpen and implClose. ++ protected static Object lockLast = new Object(); + // Keeps track of last opened line, see implOpen "trick". + protected static DirectDL lastOpened; // CONSTRUCTOR protected DirectDL(DataLine.Info info, -@@ -496,20 +499,47 @@ +@@ -496,20 +501,47 @@ // align buffer to full frames bufferSize = ((int) bufferSize / format.getFrameSize()) * format.getFrameSize(); @@ -25,7 +26,7 @@ - hardwareFormat.getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED), - hardwareFormat.isBigEndian(), - bufferSize); -+ synchronized(lockNative) { ++ synchronized(lockLast) { + id = nOpen(mixerIndex, deviceID, isSource, + encoding, + hardwareFormat.getSampleRate(), @@ -73,12 +74,120 @@ this.bufferSize = nGetBufferSize(id, isSource); if (this.bufferSize < 1) { // this is an error! -@@ -616,6 +646,8 @@ +@@ -580,12 +612,12 @@ + } + synchronized (lockNative) { + nStop(id, isSource); +- } + +- // need to set doIO to false before notifying the +- // read/write thread, that's why isStartedRunning() +- // cannot be used +- doIO = false; ++ // need to set doIO to false before notifying the ++ // read/write thread, that's why isStartedRunning() ++ // cannot be used ++ doIO = false; ++ } + // wake up any waiting threads + synchronized(lock) { + lock.notifyAll(); +@@ -614,8 +646,12 @@ + doIO = false; + long oldID = id; id = 0; - synchronized (lockNative) { - nClose(oldID, isSource); -+ if (lastOpened == this) -+ lastOpened = null; +- synchronized (lockNative) { +- nClose(oldID, isSource); ++ synchronized (lockLast) { ++ synchronized (lockNative) { ++ nClose(oldID, isSource); ++ if (lastOpened == this) ++ lastOpened = null; ++ } } bytePosition = 0; softwareConversionSize = 0; +@@ -630,7 +666,8 @@ + } + int a = 0; + synchronized (lockNative) { +- a = nAvailable(id, isSource); ++ if (doIO) ++ a = nAvailable(id, isSource); + } + return a; + } +@@ -644,9 +681,9 @@ + int counter = 0; + long startPos = getLongFramePosition(); + boolean posChanged = false; +- while (!drained && doIO) { ++ while (!drained) { + synchronized (lockNative) { +- if ((id == 0) || !nIsStillDraining(id, isSource)) ++ if ((id == 0) || (!doIO) || !nIsStillDraining(id, isSource)) + break; + } + // check every now and then for a new position +@@ -686,7 +723,7 @@ + lock.notifyAll(); + } + synchronized (lockNative) { +- if (id != 0) { ++ if (id != 0 && doIO) { + // then flush native buffers + nFlush(id, isSource); + } +@@ -697,9 +734,10 @@ + + // replacement for getFramePosition (see AbstractDataLine) + public long getLongFramePosition() { +- long pos; ++ long pos = 0; + synchronized (lockNative) { +- pos = nGetBytePosition(id, isSource, bytePosition); ++ if (doIO) ++ pos = nGetBytePosition(id, isSource, bytePosition); + } + // hack because ALSA sometimes reports wrong framepos + if (pos < 0) { +@@ -745,11 +783,12 @@ + } + int written = 0; + while (!flushing) { +- int thisWritten; ++ int thisWritten = 0; + synchronized (lockNative) { +- thisWritten = nWrite(id, b, off, len, +- softwareConversionSize, +- leftGain, rightGain); ++ if (doIO) ++ thisWritten = nWrite(id, b, off, len, ++ softwareConversionSize, ++ leftGain, rightGain); + if (thisWritten < 0) { + // error in native layer + break; +@@ -972,9 +1011,10 @@ + } + int read = 0; + while (doIO && !flushing) { +- int thisRead; ++ int thisRead = 0; + synchronized (lockNative) { +- thisRead = nRead(id, b, off, len, softwareConversionSize); ++ if (doIO) ++ thisRead = nRead(id, b, off, len, softwareConversionSize); + if (thisRead < 0) { + // error in native layer + break; +@@ -1209,7 +1249,8 @@ + // set new native position (if necessary) + // this must come after the flush! + synchronized (lockNative) { +- nSetBytePosition(id, isSource, frames * frameSize); ++ if (doIO) ++ nSetBytePosition(id, isSource, frames * frameSize); + } + + if (Printer.debug) Printer.debug(" DirectClip.setFramePosition: " From mark at klomp.org Thu May 8 17:48:17 2008 From: mark at klomp.org (Mark Wielaard) Date: Fri, 09 May 2008 02:48:17 +0200 Subject: Opening multiple output lines In-Reply-To: <20080504171929.GA20060@gnu.wildebeest.org> References: <475F1063.6080109@sun.com> <48191A17.3070604@redhat.com> <20080504171929.GA20060@gnu.wildebeest.org> Message-ID: <1210294097.16656.18.camel@dijkstra.wildebeest.org> Hi, On Sun, 2008-05-04 at 19:19 +0200, Mark Wielaard wrote: > I had the same problem with a similar setup and with applications that > forget to close a line they don't use anymore (unfortunately this seems > very common). With the current directaudio backend I don't see how multiple > lines for the same hardware device could work though. So I am using a > trick to look for "sloppy" applications. If the last line opened in the > directaudio device was for the same hardware format then we silence that > one first so we can hand out a new one. This seems to work surprisingly > well. And it doesn't seem to interfere with applications that handle the > hardware formats they need explicitly. > > With gcjwebplugin and this patch we can happily play the vNES games :) > > Of course a real solution would be to import or write a better mixer > that does share lines properly. I updated the patch a little to make it all a bit more robust. It splits the locks, so there is no longer one gaint static one (I shouldn't have reused the lockNative one and made that static in the original patch). And it makes sure that all methods that require the nativeLock check the doIO inside their synchronized block and the lock around nStop() isn't released before the flag is set. ALSA can actually hang when called on a pcm you already stopped or closed. This race was already in the code, since a DataSourceLine could be asynchronously stopped or closed at any time. My patch just exposed it more easily, because DirectAudioDevice is the mixer that is now always used by defailt. 2008-05-08 Mark Wielaard * patches/icedtea-directaudio-close-trick.patch: Use new static lockLast for nOpen/nClose guarding. Make lockNative non-static again. Do all checks before native calls of doIO inside lockNative guard. Set doIO to false after nClose before dropping lockNative guard. I do think we should write a new MixerProvider based on a modern soundserver, like pulseaudio. The current DirectAudioDeviceProvider code cannot easily be extended to provide true software sound mixing. And the way it opens direct hardware alsa devices means it locks out other applications. Cheers, Mark Patch against original code (updated patch file in icedtea6). -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea-directaudio-close-trick.patch Type: text/x-patch Size: 7732 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080509/6050cf18/attachment.bin From langel at redhat.com Fri May 9 07:04:35 2008 From: langel at redhat.com (Lillian Angel) Date: Fri, 09 May 2008 14:04:35 +0000 Subject: changeset in /hg/icedtea6: 2008-05-09 Lillian Angel changeset d9fa5282ccde in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d9fa5282ccde description: 2008-05-09 Lillian Angel * icedtea-use-system-tzdata.patch: Added missing lines to patch. diffstat: 2 files changed, 8 insertions(+), 3 deletions(-) ChangeLog | 4 ++++ patches/icedtea-use-system-tzdata.patch | 7 ++++--- diffs (31 lines): diff -r 3c358d6fd84e -r d9fa5282ccde ChangeLog --- a/ChangeLog Fri May 09 02:30:42 2008 +0200 +++ b/ChangeLog Fri May 09 10:04:30 2008 -0400 @@ -1,3 +1,7 @@ 2008-05-08 Mark Wielaard + + * icedtea-use-system-tzdata.patch: Added missing lines to patch. + 2008-05-08 Mark Wielaard * patches/icedtea-directaudio-close-trick.patch: Use new static diff -r 3c358d6fd84e -r d9fa5282ccde patches/icedtea-use-system-tzdata.patch --- a/patches/icedtea-use-system-tzdata.patch Fri May 09 02:30:42 2008 +0200 +++ b/patches/icedtea-use-system-tzdata.patch Fri May 09 10:04:30 2008 -0400 @@ -45,12 +45,13 @@ if (!file.canRead()) { --- oldopenjdk6/hotspot/src/os/linux/vm/os_linux.cpp 2008-03-26 05:07:22.000000000 -0400 +++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2008-05-08 11:03:17.000000000 -0400 -@@ -376,6 +376,10 @@ +@@ -376,6 +381,11 @@ } } -+// Use the system zoneinfo files, if present -+Arguments::PropertyList_add (&sp, ++ SystemProperty* sp = Arguments::system_properties(); ++ // Use the system zoneinfo files, if present ++ Arguments::PropertyList_add (&sp, + "user.zoneinfo.dir", "/usr/share/javazi"); + #undef malloc From langel at redhat.com Fri May 9 07:23:27 2008 From: langel at redhat.com (Lillian Angel) Date: Fri, 09 May 2008 14:23:27 +0000 Subject: changeset in /hg/icedtea6: 2008-05-09 Lillian Angel changeset 2c9ad97bb6ec in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=2c9ad97bb6ec description: 2008-05-09 Lillian Angel * patches/icedtea-certbundle.patch: Fixed typo. diffstat: 2 files changed, 5 insertions(+), 1 deletion(-) ChangeLog | 4 ++++ patches/icedtea-certbundle.patch | 2 +- diffs (23 lines): diff -r d9fa5282ccde -r 2c9ad97bb6ec ChangeLog --- a/ChangeLog Fri May 09 10:04:30 2008 -0400 +++ b/ChangeLog Fri May 09 10:23:23 2008 -0400 @@ -1,3 +1,7 @@ 2008-05-09 Lillian Angel + + * patches/icedtea-certbundle.patch: Fixed typo. + 2008-05-09 Lillian Angel * icedtea-use-system-tzdata.patch: Added missing lines to patch. diff -r d9fa5282ccde -r 2c9ad97bb6ec patches/icedtea-certbundle.patch --- a/patches/icedtea-certbundle.patch Fri May 09 10:04:30 2008 -0400 +++ b/patches/icedtea-certbundle.patch Fri May 09 10:23:23 2008 -0400 @@ -230,7 +230,7 @@ diff -urN openjdk.orig/jdk/src/share/cla "javax.net.ssl.trustStorePassword", "")); - return null; + props.put("/etc/pki/tls/certs/ca-bundle.crt", System.getProperty( -+ "javax.net.ssl.trustStore") ++ "javax.net.ssl.trustStore"); + props.put("CertBundle", System.getProperty( + "javax.net.ssl.trustStoreType", + KeyStore.getDefaultType())); From langel at redhat.com Fri May 9 07:25:48 2008 From: langel at redhat.com (Lillian Angel) Date: Fri, 09 May 2008 14:25:48 +0000 Subject: changeset in /hg/icedtea6: Fixed typo Message-ID: changeset 6d39bcf18078 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=6d39bcf18078 description: Fixed typo diffstat: 1 file changed, 1 insertion(+), 1 deletion(-) patches/icedtea-certbundle.patch | 2 +- diffs (12 lines): diff -r 2c9ad97bb6ec -r 6d39bcf18078 patches/icedtea-certbundle.patch --- a/patches/icedtea-certbundle.patch Fri May 09 10:23:23 2008 -0400 +++ b/patches/icedtea-certbundle.patch Fri May 09 10:25:45 2008 -0400 @@ -230,7 +230,7 @@ diff -urN openjdk.orig/jdk/src/share/cla "javax.net.ssl.trustStorePassword", "")); - return null; + props.put("/etc/pki/tls/certs/ca-bundle.crt", System.getProperty( -+ "javax.net.ssl.trustStore"); ++ "javax.net.ssl.trustStore")); + props.put("CertBundle", System.getProperty( + "javax.net.ssl.trustStoreType", + KeyStore.getDefaultType())); From mark at klomp.org Fri May 9 10:04:48 2008 From: mark at klomp.org (Mark Wielaard) Date: Fri, 09 May 2008 17:04:48 +0000 Subject: changeset in /hg/icedtea6: New Gervill CVS import. Add AudioFloa... Message-ID: changeset 30c7450d05dc in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=30c7450d05dc description: New Gervill CVS import. Add AudioFloatFormatConverter FormatConversionProvider. 2008-05-09 Mark Wielaard * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound: Import Gervill fixes from CVS. See CHANGES.txt. Check isConversionSupported() in AudioFloatFormatConverter.getTargetFormats(). * patches/icedtea-gervill.patch: Add AudioFloatFormatConverter to javax.sound.sampled.spi.FormatConversionProvider. diffstat: 9 files changed, 55 insertions(+), 33 deletions(-) ChangeLog | 9 +++++ overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java | 17 +++++---- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt | 1 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioProcessor.java | 2 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChorus.java | 14 +++---- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLimiter.java | 12 +++--- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMainMixer.java | 8 ++-- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftReverb.java | 18 +++++----- patches/icedtea-gervill.patch | 7 +++ diffs (233 lines): diff -r 6d39bcf18078 -r 30c7450d05dc ChangeLog --- a/ChangeLog Fri May 09 10:25:45 2008 -0400 +++ b/ChangeLog Fri May 09 19:04:37 2008 +0200 @@ -1,3 +1,12 @@ 2008-05-09 Lillian Angel + + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound: + Import Gervill fixes from CVS. See CHANGES.txt. + Check isConversionSupported() in + AudioFloatFormatConverter.getTargetFormats(). + * patches/icedtea-gervill.patch: Add AudioFloatFormatConverter to + javax.sound.sampled.spi.FormatConversionProvider. + 2008-05-09 Lillian Angel * patches/icedtea-certbundle.patch: Fixed typo. diff -r 6d39bcf18078 -r 30c7450d05dc overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java Fri May 09 10:25:45 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java Fri May 09 19:04:37 2008 +0200 @@ -366,17 +366,20 @@ public class AudioFloatFormatConverter e int in_end = ibuffer_len; while(remain > 0) { - if(ibuffer_len < 0) - { - in_end = pad2; - if(ibuffer_index > in_end) break; - } - else + if(ibuffer_len >= 0) { if(ibuffer_index >= (ibuffer_len+pad)) readNextBuffer(); in_end = ibuffer_len+pad; } + + if(ibuffer_len < 0) + { + in_end = pad2; + if(ibuffer_index >= in_end) break; + } + + if(ibuffer_index < 0) break; int preDestPos = destPos; @@ -486,7 +489,7 @@ public class AudioFloatFormatConverter e } public AudioFormat[] getTargetFormats(Encoding targetEncoding, AudioFormat sourceFormat) { - if(AudioFloatConverter.getConverter(sourceFormat) == null) return new AudioFormat[0]; + if(!isConversionSupported(targetEncoding, sourceFormat)) return new AudioFormat[0]; int channels = sourceFormat.getChannels(); ArrayList formats = new ArrayList(); formats.add(new AudioFormat(Encoding.PCM_SIGNED, AudioSystem.NOT_SPECIFIED, 8, channels, channels, AudioSystem.NOT_SPECIFIED, false)); diff -r 6d39bcf18078 -r 30c7450d05dc overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt Fri May 09 10:25:45 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt Fri May 09 19:04:37 2008 +0200 @@ -5,6 +5,7 @@ and resample using (linear/cubic/sinc...) if needed. - Added: WaveExtensibleReader, used to read WAV files using WAVE_FORMAT_EXTENSIBLE format. - Added: WaveFloatFileWriter, used to writing WAV files with PCM_FLOAT encoding. + - Change: Make SoftAudioProcessor (limiter, reverb, chorus, agc) more general. - Fix: AudioFloatConverter tests incorrectly AudioFormat frameSize against SampleSizeInBits Support for 64-byte float added, and support for 32+ bit PCM samples. SampleSizeInBits not dividable by 8 are now handled correctly. diff -r 6d39bcf18078 -r 30c7450d05dc overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioProcessor.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioProcessor.java Fri May 09 10:25:45 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioProcessor.java Fri May 09 19:04:37 2008 +0200 @@ -37,7 +37,7 @@ public interface SoftAudioProcessor { public void globalParameterControlChange(int[] slothpath, long param, long value); - public void init(SoftSynthesizer synthesizer); + public void init(float samplerate, float controlrate); public void setInput(int pin, SoftAudioBuffer input); diff -r 6d39bcf18078 -r 30c7450d05dc overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChorus.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChorus.java Fri May 09 10:25:45 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChorus.java Fri May 09 19:04:37 2008 +0200 @@ -207,8 +207,6 @@ public class SoftChorus implements SoftA private float rgain = 0; - private SoftSynthesizer synth; - private boolean dirty = true; private double dirty_vdelay1L_rate; @@ -226,11 +224,11 @@ public class SoftChorus implements SoftA private float dirty_vdelay1L_reverbsendgain; private float dirty_vdelay1R_reverbsendgain; - - public void init(SoftSynthesizer synth) { - this.synth = synth; - double samplerate = synth.getFormat().getSampleRate(); - double controlrate = synth.getControlRate(); + + private float controlrate; + + public void init(float samplerate, float controlrate) { + this.controlrate = controlrate; vdelay1L = new LFODelay(samplerate, controlrate); vdelay1R = new LFODelay(samplerate, controlrate); vdelay1L.setGain(1.0f); // % @@ -334,7 +332,7 @@ public class SoftChorus implements SoftA public void processAudio() { if (inputA.isSilent()) { - silentcounter += 1 / synth.getControlRate(); + silentcounter += 1 / controlrate; if (silentcounter > 1) { if (!mix) { diff -r 6d39bcf18078 -r 30c7450d05dc overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLimiter.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLimiter.java Fri May 09 10:25:45 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLimiter.java Fri May 09 19:04:37 2008 +0200 @@ -52,11 +52,11 @@ public class SoftLimiter implements Soft SoftAudioBuffer bufferLout; SoftAudioBuffer bufferRout; - - SoftSynthesizer synth; - - public void init(SoftSynthesizer synth) { - this.synth = synth; + + float controlrate; + + public void init(float samplerate, float controlrate) { + this.controlrate = controlrate; } public void setInput(int pin, SoftAudioBuffer input) { @@ -87,7 +87,7 @@ public class SoftLimiter implements Soft public void processAudio() { if (this.bufferL.isSilent() && (this.bufferR == null || this.bufferR.isSilent())) { - silentcounter += 1 / synth.getControlRate(); + silentcounter += 1 / controlrate; if (silentcounter > 60) { if (!mix) { diff -r 6d39bcf18078 -r 30c7450d05dc overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMainMixer.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMainMixer.java Fri May 09 10:25:45 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMainMixer.java Fri May 09 19:04:37 2008 +0200 @@ -702,9 +702,11 @@ public class SoftMainMixer { chorus = new SoftChorus(); agc = new SoftLimiter(); - reverb.init(synth); - chorus.init(synth); - agc.init(synth); + float samplerate = synth.getFormat().getSampleRate(); + float controlrate = synth.getControlRate(); + reverb.init(samplerate, controlrate); + chorus.init(samplerate, controlrate); + agc.init(samplerate, controlrate); reverb.setMixMode(true); chorus.setMixMode(true); diff -r 6d39bcf18078 -r 30c7450d05dc overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftReverb.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftReverb.java Fri May 09 10:25:45 2008 -0400 +++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftReverb.java Fri May 09 19:04:37 2008 +0200 @@ -238,8 +238,6 @@ public class SoftReverb implements SoftA private SoftAudioBuffer right; - private SoftSynthesizer synth; - private boolean dirty = true; private float dirty_roomsize; @@ -250,9 +248,13 @@ public class SoftReverb implements SoftA private float dirty_gain; - public void init(SoftSynthesizer synth) { - this.synth = synth; - double samplerate = synth.getFormat().getSampleRate(); + private float controlrate; + + private float samplerate; + + public void init(float samplerate, float controlrate) { + this.controlrate = controlrate; + this.samplerate = samplerate; double freqscale = ((double) samplerate) / 44100.0; // freqscale = 1.0/ freqscale; @@ -321,7 +323,7 @@ public class SoftReverb implements SoftA public void processAudio() { if (this.inputA.isSilent()) { - silentcounter += 1 / synth.getControlRate(); + silentcounter += 1 / controlrate; if (silentcounter > 60) { if (!mix) { @@ -473,7 +475,7 @@ public class SoftReverb implements SoftA } public void setPreDelay(float value) { - delay.setDelay((int) (value * synth.getFormat().getSampleRate())); + delay.setDelay((int) (value * samplerate)); } public void setGain(float gain) { @@ -481,7 +483,7 @@ public class SoftReverb implements SoftA } public void setDamp(float value) { - double x = (value / synth.getFormat().getSampleRate()) * (2 * Math.PI); + double x = (value / samplerate) * (2 * Math.PI); double cx = 2 - Math.cos(x); damp = (float) (cx - Math.sqrt(cx * cx - 1)); if (damp > 1) diff -r 6d39bcf18078 -r 30c7450d05dc patches/icedtea-gervill.patch --- a/patches/icedtea-gervill.patch Fri May 09 10:25:45 2008 -0400 +++ b/patches/icedtea-gervill.patch Fri May 09 19:04:37 2008 +0200 @@ -28,3 +28,10 @@ com.sun.media.sound.WaveFileReader +com.sun.media.sound.WaveFloatFileReader +com.sun.media.sound.SoftMidiAudioFileReader +--- /home/mark/src/openjdk/jdk/src/share/classes/com/sun/media/sound/services/javax.sound.sampled.spi.FormatConversionProvider 2008-04-13 01:05:30.000000000 +0200 ++++ openjdk/jdk/src/share/classes/com/sun/media/sound/services/javax.sound.sampled.spi.FormatConversionProvider 2008-05-09 02:54:26.000000000 +0200 +@@ -2,3 +2,4 @@ + com.sun.media.sound.UlawCodec + com.sun.media.sound.AlawCodec + com.sun.media.sound.PCMtoPCMCodec ++com.sun.media.sound.AudioFloatFormatConverter From mwielaard at redhat.com Fri May 9 10:14:28 2008 From: mwielaard at redhat.com (Mark Wielaard) Date: Fri, 09 May 2008 19:14:28 +0200 Subject: [Audio-engine-dev] Some small Gervill fixes In-Reply-To: <1209940230.3058.16.camel@dijkstra.wildebeest.org> References: <1209632920.3996.39.camel@dijkstra.wildebeest.org> ,<1209684825.29815.8.camel@dijkstra.wildebeest.org> <36EC82E93EB0AD40A4301DAD654323868CA4FB2ACA@mail.midverk.is> <1209940230.3058.16.camel@dijkstra.wildebeest.org> Message-ID: <1210353284.20886.8.camel@dijkstra.wildebeest.org> Hi Karl, On Mon, 2008-05-05 at 00:30 +0200, Mark Wielaard wrote: > > I especially proud of the new AudioFloatFormatConverter, it makes > > sample rate conversion available via a FormatConversionProvider. > > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4916960 > > O wow, very nice. I imported the new Gervill CVS version into IcedTea. And then I forgot to add the AudioFloatFormatConverter class to the javax.sound.sampled.spi.FormatConversionProvider file. DOH! Added that now to the icedtea-gervill.patch and imported a fresh Gervill CVS into the overlays. One small nit. AudioFloatFormatConverter.getTargetFormats() happily tells me that it will convert to lots of AudioFormats even if it doesn't actually know the given target encoding. I added a check on isConversionSupported() like the other converter methods do. 2008-05-09 Mark Wielaard * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound: Import Gervill fixes from CVS. See CHANGES.txt. Check isConversionSupported() in AudioFloatFormatConverter.getTargetFormats(). * patches/icedtea-gervill.patch: Add AudioFloatFormatConverter to javax.sound.sampled.spi.FormatConversionProvider. AudioFloatFormatConverter patch against Gervill CVS attached. Cheers, Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: AudioFloatFormatConverter.patch Type: text/x-patch Size: 998 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080509/c81cd5e6/attachment.bin From kalli at midverk.is Fri May 9 12:58:51 2008 From: kalli at midverk.is (Karl Helgason) Date: Fri, 9 May 2008 19:58:51 +0000 Subject: SV: Opening multiple output lines In-Reply-To: <1210294097.16656.18.camel@dijkstra.wildebeest.org> References: <475F1063.6080109@sun.com> <48191A17.3070604@redhat.com> <20080504171929.GA20060@gnu.wildebeest.org>, <1210294097.16656.18.camel@dijkstra.wildebeest.org> Message-ID: <36EC82E93EB0AD40A4301DAD654323868CA4FB2ACD@mail.midverk.is> Hi, I added software sound mixing to the gervill Project which writes to default directaudio backend. And thus allows true sharing of audio device (within the Java application). cheers, Karl Helgason ________________________________________ Fr?: sound-dev-bounces at openjdk.java.net [sound-dev-bounces at openjdk.java.net] Fyrir hönd Mark Wielaard [mark at klomp.org] Sent: 9. ma? 2008 00:48 Vi?takandi: Thomas Fitzsimmons Afrit: sound-dev at openjdk.java.net; distro-pkg-dev at openjdk.java.net Efni: Re: Opening multiple output lines Hi, On Sun, 2008-05-04 at 19:19 +0200, Mark Wielaard wrote: > I had the same problem with a similar setup and with applications that > forget to close a line they don't use anymore (unfortunately this seems > very common). With the current directaudio backend I don't see how multiple > lines for the same hardware device could work though. So I am using a > trick to look for "sloppy" applications. If the last line opened in the > directaudio device was for the same hardware format then we silence that > one first so we can hand out a new one. This seems to work surprisingly > well. And it doesn't seem to interfere with applications that handle the > hardware formats they need explicitly. > > With gcjwebplugin and this patch we can happily play the vNES games :) > > Of course a real solution would be to import or write a better mixer > that does share lines properly. I updated the patch a little to make it all a bit more robust. It splits the locks, so there is no longer one gaint static one (I shouldn't have reused the lockNative one and made that static in the original patch). And it makes sure that all methods that require the nativeLock check the doIO inside their synchronized block and the lock around nStop() isn't released before the flag is set. ALSA can actually hang when called on a pcm you already stopped or closed. This race was already in the code, since a DataSourceLine could be asynchronously stopped or closed at any time. My patch just exposed it more easily, because DirectAudioDevice is the mixer that is now always used by defailt. 2008-05-08 Mark Wielaard * patches/icedtea-directaudio-close-trick.patch: Use new static lockLast for nOpen/nClose guarding. Make lockNative non-static again. Do all checks before native calls of doIO inside lockNative guard. Set doIO to false after nClose before dropping lockNative guard. I do think we should write a new MixerProvider based on a modern soundserver, like pulseaudio. The current DirectAudioDeviceProvider code cannot easily be extended to provide true software sound mixing. And the way it opens direct hardware alsa devices means it locks out other applications. Cheers, Mark Patch against original code (updated patch file in icedtea6). No virus found in this incoming message. Checked by AVG. Version: 7.5.524 / Virus Database: 269.23.10/1421 - Release Date: 7.5.2008 17:23 From bugzilla-daemon at icedtea.classpath.org Mon May 12 04:54:54 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 12 May 2008 11:54:54 +0000 Subject: [Bug 142] corrupt and/or files which cannot be built from the source files Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=142 ------- Comment #1 from tv+icedteabugzilla at beamnet.de 2008-05-12 11:54 ------- note that http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6542761 documents the removal of these on the sun side. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 12 05:00:09 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 12 May 2008 12:00:09 +0000 Subject: [Bug 146] binaries (windows, solaris executables) in sources Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=146 tv+icedteabugzilla at beamnet.de changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|windows executables in |binaries (windows, solaris |sources |executables) in sources ------- Comment #1 from tv+icedteabugzilla at beamnet.de 2008-05-12 12:00 ------- As far as I can tell, there are some more of a similar type: openjdk-6-6b09jdk/test/sun/management/windows/revokeall.exe: application/x-dosexec openjdk-6-6b09jdk/test/sun/management/jmxremote/bootstrap/solaris-i586/launcher: application/x-executable openjdk-6-6b09jdk/test/sun/management/jmxremote/bootstrap/solaris-sparc/launcher: application/x-executable openjdk-6-6b09jdk/test/sun/management/jmxremote/bootstrap/linux-i586/launcher: application/x-executable openjdk-6-6b09jdk/test/java/util/Locale/data/deflocale.exe: application/x-dosexec openjdk-6-6b09jdk/make/tools/winver/bin/winver.exe: application/x-dosexec openjdk-6-6b09jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so: application/x-sharedlib openjdk-6-6b09jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparcv9/libLauncher.so: application/x-sharedlib openjdk-6-6b09jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so: application/x-sharedlib openjdk-6-6b09jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/linux-i586/libLauncher.so: application/x-sharedlib openjdk-6-6b09/generated/sun/awt/X11/generator/sizer.32: application/x-executable openjdk-6-6b09jdk/test/tools/launcher/lib/sparc/lib32/lib32/liblibrary.so: application/x-sharedlib openjdk-6-6b09jdk/test/tools/launcher/lib/sparc/lib32/liblibrary.so: application/x-sharedlib openjdk-6-6b09jdk/test/tools/launcher/lib/sparc/lib64/liblibrary.so: application/x-sharedlib openjdk-6-6b09jdk/test/tools/launcher/lib/sparc/lib64/lib64/liblibrary.so: application/x-sharedlib openjdk-6-6b09jdk/test/tools/launcher/lib/i386/lib32/lib32/liblibrary.so: application/x-sharedlib openjdk-6-6b09jdk/test/tools/launcher/lib/i386/lib32/liblibrary.so: application/x-sharedlib -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 12 06:42:31 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 12 May 2008 13:42:31 +0000 Subject: [Bug 147] Queens.class isn't build from source Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=147 ------- Comment #1 from tv+icedteabugzilla at beamnet.de 2008-05-12 13:42 ------- Given that the two .class are identical, it seems to me that this is not a problem from a Debian perspective if we can verify that the .java is indeed the source. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 13 02:33:02 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 13 May 2008 09:33:02 +0000 Subject: [Bug 151] New: Java applet embended with object tag not started Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=151 Summary: Java applet embended with object tag not started Product: IcedTea Version: unspecified Platform: PC URL: http://www.gymspmkr.edu.sk/informatika/JavaTutorial/2d/b asic2d/index.html OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: etki at zoznam.sk I have embended Pocasie.class through object tag and firefox not start applet on page http://www.gymspmkr.edu.sk/informatika/JavaTutorial/2d/basic2d/index.html Code that I use is when I use sun plugin or when I use tag applet all works fine. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From mark at klomp.org Tue May 13 10:41:41 2008 From: mark at klomp.org (Mark Wielaard) Date: Tue, 13 May 2008 19:41:41 +0200 Subject: Regenerated ssh server keys for icedtea.classpath.org Message-ID: <1210700503.3171.18.camel@dijkstra.wildebeest.org> Hi, Unfortunately icedtea.classpath.org was using weak ssh server keys because of the recently discovered Debian openssl flaw: http://lists.debian.org/debian-security-announce/2008/msg00152.html The server keys have been regenerated. This will affect you if you have mercurial push access. The new RSA fingerprint is: 5e:ab:dd:91:f6:e4:fa:20:fa:42:cd:c3:66:29:87:09 The new DSA fingerprint is: af:f7:76:fd:dc:f9:14:15:9c:5e:bb:0a:a5:69:d6:18 I am investigating whether more steps need to be taken. Please contact me if you suspect having compromised keys. Thanks, Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080513/8433fe0b/attachment.bin From bugzilla-daemon at icedtea.classpath.org Tue May 13 11:26:30 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 13 May 2008 18:26:30 +0000 Subject: [Bug 151] Java applet embended with object tag not started Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=151 ------- Comment #1 from jsumali at redhat.com 2008-05-13 18:26 ------- This isn't working because gcjwebplugin does not recognize classid="java:Pocasie.class", so the EMBED tag that gets passed is missing a CODE= parameter as seen here from debug output: ... ... The following works as a temporary workaround: -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 13 12:07:14 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 13 May 2008 19:07:14 +0000 Subject: [Bug 151] Java applet embended with object tag not started Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=151 jsumali at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID ------- Comment #2 from jsumali at redhat.com 2008-05-13 19:07 ------- (In reply to comment #1) > This isn't working because gcjwebplugin does not recognize > classid="java:Pocasie.class", so the EMBED tag that gets passed is missing a > CODE= parameter as seen here from debug output: > > ... > > ... > > > The following works as a temporary workaround: > > > I just realized the following requires a in order for this applet to work. Closing this bugzilla as invalid. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From mark at klomp.org Wed May 14 03:00:43 2008 From: mark at klomp.org (Mark Wielaard) Date: Wed, 14 May 2008 12:00:43 +0200 Subject: Regenerated ssh server keys for icedtea.classpath.org In-Reply-To: <1210700503.3171.18.camel@dijkstra.wildebeest.org> References: <1210700503.3171.18.camel@dijkstra.wildebeest.org> Message-ID: <1210759243.13922.8.camel@dijkstra.wildebeest.org> Hi all (CCing main classpath mailinglist to get to widest exposure), On Tue, 2008-05-13 at 19:41 +0200, Mark Wielaard wrote: > Unfortunately icedtea.classpath.org was using weak ssh server keys > because of the recently discovered Debian openssl flaw: > http://lists.debian.org/debian-security-announce/2008/msg00152.html > > The server keys have been regenerated. This will affect you if you have > mercurial push access. > > The new RSA fingerprint is: > 5e:ab:dd:91:f6:e4:fa:20:fa:42:cd:c3:66:29:87:09 > The new DSA fingerprint is: > af:f7:76:fd:dc:f9:14:15:9c:5e:bb:0a:a5:69:d6:18 > > I am investigating whether more steps need to be taken. Please contact > me if you suspect having compromised keys. New openssh server packages have been installed on all classpath.org machines (developer/planet, builder and icedtea). This server will refuse connections from weak keys (blacklisted). For more information on how to check whether you might have weak keys and how to correct that situation see the attached security announcement. If you should have access to any of these machines (or ssh mercurial push access to icedtea and friends) and have trouble connecting now please contact me. Good luck out there! Mark -------------- next part -------------- An embedded message was scrubbed... From: Florian Weimer Subject: [SECURITY] [DSA 1576-1] New openssh packages fix predictable randomness Date: Wed, 14 May 2008 11:24:56 +0200 Size: 18539 Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080514/68762b06/attachment.mht From jsumali at redhat.com Wed May 14 11:15:20 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Wed, 14 May 2008 18:15:20 +0000 Subject: changeset in /hg/icedtea6: 2008-05-14 Joshua Sumali changeset 493b2cd196e2 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=493b2cd196e2 description: 2008-05-14 Joshua Sumali * rt/net/sourceforge/jnlp/security/CertsInfoPane.java: Fix certificate viewer null pointer. diffstat: 2 files changed, 6 insertions(+), 1 deletion(-) ChangeLog | 5 +++++ rt/net/sourceforge/jnlp/security/CertsInfoPane.java | 2 +- diffs (31 lines): diff -r 30c7450d05dc -r 493b2cd196e2 ChangeLog --- a/ChangeLog Fri May 09 19:04:37 2008 +0200 +++ b/ChangeLog Wed May 14 14:13:02 2008 -0400 @@ -1,3 +1,8 @@ 2008-05-09 Mark Wielaard + + * rt/net/sourceforge/jnlp/security/CertsInfoPane.java: Fix certificate + viewer null pointer. + 2008-05-09 Mark Wielaard * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound: diff -r 30c7450d05dc -r 493b2cd196e2 rt/net/sourceforge/jnlp/security/CertsInfoPane.java --- a/rt/net/sourceforge/jnlp/security/CertsInfoPane.java Fri May 09 19:04:37 2008 +0200 +++ b/rt/net/sourceforge/jnlp/security/CertsInfoPane.java Wed May 14 14:13:02 2008 -0400 @@ -84,6 +84,7 @@ public class CertsInfoPane extends Secur * Builds the JTree out of CertPaths. */ void buildTree() { + certs = ((SecurityWarningDialog)optionPane).getJarSigner().getCerts(); //for now, we're only going to display the first signer, even though //jars can be signed by multiple people. CertPath firstPath = certs.get(0); @@ -178,7 +179,6 @@ public class CertsInfoPane extends Secur * Constructs the GUI components of this UI */ protected void installComponents() { - certs = ((SecurityWarningDialog)optionPane).getJarSigner().getCerts(); buildTree(); populateTable(); /** From doko at ubuntu.com Wed May 14 23:00:51 2008 From: doko at ubuntu.com (Matthias Klose) Date: Thu, 15 May 2008 08:00:51 +0200 Subject: hotspot linux-sparc support has been pushed In-Reply-To: <481251E6.3050904@sun.com> References: <481251E6.3050904@sun.com> Message-ID: <482BD193.1090504@ubuntu.com> trying to build this with jdk6, - openjdk/hotspot/build/linux/makefiles/sparc.make is missing, but available on jdk7. - the build needs -fPIC instead of -fpic (the latter leading to a link error). - openjdk/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp lacks os::allocatable_physical_memory, leading to a link error. - sparc isn't detected as a valid architecture, only sparc64 is. Attached are the patches which were used to build the openjdk-6 package in Ubuntu intrepid. Matthias -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: sparc2.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080515/e5b4a2a0/attachment.ksh From doko at ubuntu.com Thu May 15 02:51:42 2008 From: doko at ubuntu.com (doko at ubuntu.com) Date: Thu, 15 May 2008 09:51:42 +0000 Subject: changeset in /hg/icedtea6: 2008-05-15 Matthias Klose changeset 33a90721ac50 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=33a90721ac50 description: 2008-05-15 Matthias Klose * patches/icedtea-sparc.patch: New. * Makefile.am: Add the icedtea-sparc patch. * acinclude.m4: Don't default to the zero port on sparc. * Makefile.in, configure: Regenerated. diffstat: 6 files changed, 1830 insertions(+), 2 deletions(-) ChangeLog | 7 Makefile.am | 1 Makefile.in | 4 acinclude.m4 | 1 configure | 1 patches/icedtea-sparc.patch | 1818 +++++++++++++++++++++++++++++++++++++++++++ diffs (truncated from 1883 to 500 lines): diff -r 493b2cd196e2 -r 33a90721ac50 ChangeLog --- a/ChangeLog Wed May 14 14:13:02 2008 -0400 +++ b/ChangeLog Thu May 15 11:51:53 2008 +0200 @@ -1,3 +1,10 @@ 2008-05-14 Joshua Sumali + + * patches/icedtea-sparc.patch: New. + * Makefile.am: Add the icedtea-sparc patch. + * acinclude.m4: Don't default to the zero port on sparc. + * Makefile.in, configure: Regenerated. + 2008-05-14 Joshua Sumali * rt/net/sourceforge/jnlp/security/CertsInfoPane.java: Fix certificate diff -r 493b2cd196e2 -r 33a90721ac50 Makefile.am --- a/Makefile.am Wed May 14 14:13:02 2008 -0400 +++ b/Makefile.am Thu May 15 11:51:53 2008 +0200 @@ -313,6 +313,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-gervill.patch \ patches/icedtea-directaudio-close-trick.patch \ patches/icedtea-hat-spl-gpl.patch \ + patches/icedtea-sparc.patch \ $(GCC_PATCH) \ $(DISTRIBUTION_PATCHES) diff -r 493b2cd196e2 -r 33a90721ac50 Makefile.in --- a/Makefile.in Wed May 14 14:13:02 2008 -0400 +++ b/Makefile.in Thu May 15 11:51:53 2008 +0200 @@ -415,8 +415,8 @@ ICEDTEA_PATCHES = $(ZERO_PATCHES_COND) \ patches/icedtea-color-profiles.patch \ patches/icedtea-fonts.patch patches/icedtea-gervill.patch \ patches/icedtea-directaudio-close-trick.patch \ - patches/icedtea-hat-spl-gpl.patch $(GCC_PATCH) \ - $(DISTRIBUTION_PATCHES) $(am__append_7) + patches/icedtea-hat-spl-gpl.patch patches/icedtea-sparc.patch \ + $(GCC_PATCH) $(DISTRIBUTION_PATCHES) $(am__append_7) # Patch OpenJDK for plug replacements and ecj. ICEDTEA_ECJ_PATCH = patches/icedtea-ecj.patch diff -r 493b2cd196e2 -r 33a90721ac50 acinclude.m4 --- a/acinclude.m4 Wed May 14 14:13:02 2008 -0400 +++ b/acinclude.m4 Thu May 15 11:51:53 2008 +0200 @@ -542,6 +542,7 @@ AC_DEFUN([ENABLE_ZERO_BUILD], [ case "${host}" in i?86-*-*) ;; + sparc*-*-*) ;; x86_64-*-*) ;; *) if test "x${CACAO}" != xno; then diff -r 493b2cd196e2 -r 33a90721ac50 configure --- a/configure Wed May 14 14:13:02 2008 -0400 +++ b/configure Thu May 15 11:51:53 2008 +0200 @@ -8659,6 +8659,7 @@ else case "${host}" in i?86-*-*) ;; + sparc*-*-*) ;; x86_64-*-*) ;; *) if test "x${CACAO}" != xno; then diff -r 493b2cd196e2 -r 33a90721ac50 patches/icedtea-sparc.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-sparc.patch Thu May 15 11:51:53 2008 +0200 @@ -0,0 +1,1818 @@ + +# HG changeset patch +# User phh +# Date 1209064077 14400 +# Node ID 435e6450501506326c95d3374eb08b3406fa420c +# Parent ec73d88d5b43153e083db1fc57971def1e828ab3 +6693457: Open-source hotspot linux-sparc support +Summary: Move os_cpu/linux_sparc from closed to open +Reviewed-by: kamg + +#--- a/src/share/vm/oops/oop.inline.hpp Wed Apr 23 06:35:28 2008 -0400 +#+++ openjdk/hotspot/src/share/vm/oops/oop.inline.hpp Thu Apr 24 15:07:57 2008 -0400 +#@@ -135,7 +135,7 @@ inline narrowOop oopDesc::encode_heap_oo +# assert(!is_null(v), "oop value can never be zero"); +# address heap_base = Universe::heap_base(); +# uint64_t result = (uint64_t)(pointer_delta((void*)v, (void*)heap_base, 1) >> LogMinObjAlignmentInBytes); +#- assert((result & 0xffffffff00000000L) == 0, "narrow oop overflow"); +#+ assert((result & 0xffffffff00000000ULL) == 0, "narrow oop overflow"); +# return (narrowOop)result; +# } +# +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/hotspot/make/linux/platform_sparcv9 Thu Apr 24 15:07:57 2008 -0400 +@@ -0,0 +1,15 @@ ++os_family = linux ++ ++arch = sparc ++ ++arch_model = sparc ++ ++os_arch = linux_sparc ++ ++os_arch_model = linux_sparc ++ ++lib_arch = sparcv9 ++ ++compiler = gcc ++ ++sysdefs = -DLINUX -D_GNU_SOURCE -DSPARC +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp Thu Apr 24 15:07:57 2008 -0400 +@@ -0,0 +1,51 @@ ++/* ++ * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ * ++ */ ++ ++#include "incls/_precompiled.incl" ++#include "incls/_assembler_linux_sparc.cpp.incl" ++ ++#include ++ ++bool MacroAssembler::needs_explicit_null_check(intptr_t offset) { ++ // Since the linux kernel resides at the low end of ++ // user address space, no null pointer check is needed. ++ return offset < 0 || offset >= 0x100000; ++} ++ ++void MacroAssembler::read_ccr_trap(Register ccr_save) { ++ // No implementation ++ breakpoint_trap(); ++} ++ ++void MacroAssembler::write_ccr_trap(Register ccr_save, Register scratch1, Register scratch2) { ++ // No implementation ++ breakpoint_trap(); ++} ++ ++void MacroAssembler::flush_windows_trap() { trap(SP_TRAP_FWIN); } ++void MacroAssembler::clean_windows_trap() { trap(SP_TRAP_CWIN); } ++ ++// Use software breakpoint trap until we figure out how to do this on Linux ++void MacroAssembler::get_psr_trap() { trap(SP_TRAP_SBPT); } ++void MacroAssembler::set_psr_trap() { trap(SP_TRAP_SBPT); } +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp Thu Apr 24 15:07:57 2008 -0400 +@@ -0,0 +1,206 @@ ++/* ++ * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ * ++ */ ++ ++// Implementation of class atomic ++ ++inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } ++inline void Atomic::store (jshort store_value, jshort* dest) { *dest = store_value; } ++inline void Atomic::store (jint store_value, jint* dest) { *dest = store_value; } ++inline void Atomic::store (jlong store_value, jlong* dest) { *dest = store_value; } ++inline void Atomic::store_ptr(intptr_t store_value, intptr_t* dest) { *dest = store_value; } ++inline void Atomic::store_ptr(void* store_value, void* dest) { *(void**)dest = store_value; } ++ ++inline void Atomic::store (jbyte store_value, volatile jbyte* dest) { *dest = store_value; } ++inline void Atomic::store (jshort store_value, volatile jshort* dest) { *dest = store_value; } ++inline void Atomic::store (jint store_value, volatile jint* dest) { *dest = store_value; } ++inline void Atomic::store (jlong store_value, volatile jlong* dest) { *dest = store_value; } ++inline void Atomic::store_ptr(intptr_t store_value, volatile intptr_t* dest) { *dest = store_value; } ++inline void Atomic::store_ptr(void* store_value, volatile void* dest) { *(void* volatile *)dest = store_value; } ++ ++inline void Atomic::inc (volatile jint* dest) { (void)add (1, dest); } ++inline void Atomic::inc_ptr(volatile intptr_t* dest) { (void)add_ptr(1, dest); } ++inline void Atomic::inc_ptr(volatile void* dest) { (void)add_ptr(1, dest); } ++ ++inline void Atomic::dec (volatile jint* dest) { (void)add (-1, dest); } ++inline void Atomic::dec_ptr(volatile intptr_t* dest) { (void)add_ptr(-1, dest); } ++inline void Atomic::dec_ptr(volatile void* dest) { (void)add_ptr(-1, dest); } ++ ++inline jint Atomic::add (jint add_value, volatile jint* dest) { ++ intptr_t rv; ++ __asm__ volatile( ++ "1: \n\t" ++ " ld [%2], %%o2\n\t" ++ " add %1, %%o2, %%o3\n\t" ++ " cas [%2], %%o2, %%o3\n\t" ++ " cmp %%o2, %%o3\n\t" ++ " bne 1b\n\t" ++ " nop\n\t" ++ " add %1, %%o2, %0\n\t" ++ : "=r" (rv) ++ : "r" (add_value), "r" (dest) ++ : "memory", "o2", "o3"); ++ return rv; ++} ++ ++inline intptr_t Atomic::add_ptr(intptr_t add_value, volatile intptr_t* dest) { ++ intptr_t rv; ++#ifdef _LP64 ++ __asm__ volatile( ++ "1: \n\t" ++ " ldx [%2], %%o2\n\t" ++ " add %0, %%o2, %%o3\n\t" ++ " casx [%2], %%o2, %%o3\n\t" ++ " cmp %%o2, %%o3\n\t" ++ " bne %%xcc, 1b\n\t" ++ " nop\n\t" ++ " add %0, %%o2, %0\n\t" ++ : "=r" (rv) ++ : "r" (add_value), "r" (dest) ++ : "memory", "o2", "o3"); ++#else ++ __asm__ volatile( ++ "1: \n\t" ++ " ld [%2], %%o2\n\t" ++ " add %1, %%o2, %%o3\n\t" ++ " cas [%2], %%o2, %%o3\n\t" ++ " cmp %%o2, %%o3\n\t" ++ " bne 1b\n\t" ++ " nop\n\t" ++ " add %1, %%o2, %0\n\t" ++ : "=r" (rv) ++ : "r" (add_value), "r" (dest) ++ : "memory", "o2", "o3"); ++#endif // _LP64 ++ return rv; ++} ++ ++inline void* Atomic::add_ptr(intptr_t add_value, volatile void* dest) { ++ return (void*)add_ptr((intptr_t)add_value, (volatile intptr_t*)dest); ++} ++ ++ ++inline jint Atomic::xchg (jint exchange_value, volatile jint* dest) { ++ intptr_t rv = exchange_value; ++ __asm__ volatile( ++ " swap [%2],%1\n\t" ++ : "=r" (rv) ++ : "0" (exchange_value) /* we use same register as for return value */, "r" (dest) ++ : "memory"); ++ return rv; ++} ++ ++inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value, volatile intptr_t* dest) { ++ intptr_t rv = exchange_value; ++#ifdef _LP64 ++ __asm__ volatile( ++ "1:\n\t" ++ " mov %1, %%o3\n\t" ++ " ldx [%2], %%o2\n\t" ++ " casx [%2], %%o2, %%o3\n\t" ++ " cmp %%o2, %%o3\n\t" ++ " bne %%xcc, 1b\n\t" ++ " nop\n\t" ++ " mov %%o2, %0\n\t" ++ : "=r" (rv) ++ : "r" (exchange_value), "r" (dest) ++ : "memory", "o2", "o3"); ++#else ++ __asm__ volatile( ++ "swap [%2],%1\n\t" ++ : "=r" (rv) ++ : "0" (exchange_value) /* we use same register as for return value */, "r" (dest) ++ : "memory"); ++#endif // _LP64 ++ return rv; ++} ++ ++inline void* Atomic::xchg_ptr(void* exchange_value, volatile void* dest) { ++ return (void*)xchg_ptr((intptr_t)exchange_value, (volatile intptr_t*)dest); ++} ++ ++ ++inline jint Atomic::cmpxchg (jint exchange_value, volatile jint* dest, jint compare_value) { ++ jint rv; ++ __asm__ volatile( ++ " cas [%2], %3, %0" ++ : "=r" (rv) ++ : "0" (exchange_value), "r" (dest), "r" (compare_value) ++ : "memory"); ++ return rv; ++} ++ ++inline jlong Atomic::cmpxchg (jlong exchange_value, volatile jlong* dest, jlong compare_value) { ++#ifdef _LP64 ++ jlong rv; ++ __asm__ volatile( ++ " casx [%2], %3, %0" ++ : "=r" (rv) ++ : "0" (exchange_value), "r" (dest), "r" (compare_value) ++ : "memory"); ++ return rv; ++#else ++ assert(VM_Version::v9_instructions_work(), "cas only supported on v9"); ++ volatile jlong_accessor evl, cvl, rv; ++ evl.long_value = exchange_value; ++ cvl.long_value = compare_value; ++ ++ __asm__ volatile( ++ " sllx %2, 32, %2\n\t" ++ " srl %3, 0, %3\n\t" ++ " or %2, %3, %2\n\t" ++ " sllx %5, 32, %5\n\t" ++ " srl %6, 0, %6\n\t" ++ " or %5, %6, %5\n\t" ++ " casx [%4], %5, %2\n\t" ++ " srl %2, 0, %1\n\t" ++ " srlx %2, 32, %0\n\t" ++ : "=r" (rv.words[0]), "=r" (rv.words[1]) ++ : "r" (evl.words[0]), "r" (evl.words[1]), "r" (dest), "r" (cvl.words[0]), "r" (cvl.words[1]) ++ : "memory"); ++ ++ return rv.long_value; ++#endif ++} ++ ++inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value, volatile intptr_t* dest, intptr_t compare_value) { ++ intptr_t rv; ++#ifdef _LP64 ++ __asm__ volatile( ++ " casx [%2], %3, %0" ++ : "=r" (rv) ++ : "0" (exchange_value), "r" (dest), "r" (compare_value) ++ : "memory"); ++#else ++ __asm__ volatile( ++ " cas [%2], %3, %0" ++ : "=r" (rv) ++ : "0" (exchange_value), "r" (dest), "r" (compare_value) ++ : "memory"); ++#endif // _LP64 ++ return rv; ++} ++ ++inline void* Atomic::cmpxchg_ptr(void* exchange_value, volatile void* dest, void* compare_value) { ++ return (void*)cmpxchg_ptr((intptr_t)exchange_value, (volatile intptr_t*)dest, (intptr_t)compare_value); ++} +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp Thu Apr 24 15:07:57 2008 -0400 +@@ -0,0 +1,34 @@ ++/* ++ * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ * ++ */ ++ ++// ++// Sets the default values for platform dependent flags used by the ++// runtime system. (see globals.hpp) ++// ++ ++define_pd_global(uintx, JVMInvokeMethodSlack, 12288); ++define_pd_global(intx, CompilerThreadStackSize, 0); ++ ++// Only used on 64 bit Windows platforms ++define_pd_global(bool, UseVectoredExceptions, false); +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.ad Thu Apr 24 15:07:57 2008 -0400 +@@ -0,0 +1,27 @@ ++// ++// Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. ++// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++// ++// This code is free software; you can redistribute it and/or modify it ++// under the terms of the GNU General Public License version 2 only, as ++// published by the Free Software Foundation. ++// ++// This code is distributed in the hope that it will be useful, but WITHOUT ++// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++// version 2 for more details (a copy is included in the LICENSE file that ++// accompanied this code). ++// ++// You should have received a copy of the GNU General Public License version ++// 2 along with this work; if not, write to the Free Software Foundation, ++// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++// ++// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++// CA 95054 USA or visit www.sun.com if you need additional information or ++// have any questions. ++// ++ ++// ++// ++ ++// SPARC Linux Architecture Description File +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.s Thu Apr 24 15:07:57 2008 -0400 +@@ -0,0 +1,105 @@ ++# ++# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++# CA 95054 USA or visit www.sun.com if you need additional information or ++# have any questions. ++# ++ ++ # Prototype: int SafeFetch32 (int * adr, int ErrValue) ++ # The "ld" at Fetch32 is potentially faulting instruction. ++ # If the instruction traps the trap handler will arrange ++ # for control to resume at Fetch32Resume. ++ # By convention with the trap handler we ensure there is a non-CTI ++ # instruction in the trap shadow. ++ ++ ++ .globl SafeFetch32, Fetch32PFI, Fetch32Resume ++ .globl SafeFetchN ++ .align 32 ++ .type SafeFetch32, at function ++SafeFetch32: ++ mov %o0, %g1 ++ mov %o1, %o0 ++Fetch32PFI: ++ # <-- Potentially faulting instruction ++ ld [%g1], %o0 ++Fetch32Resume: ++ nop ++ retl ++ nop ++ ++ .globl SafeFetchN, FetchNPFI, FetchNResume ++ .type SafeFetchN, at function ++ .align 32 ++SafeFetchN: ++ mov %o0, %g1 ++ mov %o1, %o0 ++FetchNPFI: ++ ldn [%g1], %o0 ++FetchNResume: ++ nop ++ retl ++ nop ++ ++ # Possibilities: ++ # -- membar ++ # -- CAS (SP + BIAS, G0, G0) ++ # -- wr %g0, %asi From doko at ubuntu.com Thu May 15 03:01:02 2008 From: doko at ubuntu.com (Matthias Klose) Date: Thu, 15 May 2008 12:01:02 +0200 Subject: icedtea/openjdk build for sparc-linux Message-ID: <482C09DE.90205@ubuntu.com> Checked in Suns patches to build on sparc-linux, backported to IcedTea6. The mauve testsuite results look the same like on x86 and amd64. Note that I only tested on a 64bit kernel, running 32bit user space, so maybe some adjustments are needed for 64bit user space. Matthias 2008-05-15 Matthias Klose * patches/icedtea-sparc.patch: New. * Makefile.am: Add the icedtea-sparc patch. * acinclude.m4: Don't default to the zero port on sparc. * Makefile.in, configure: Regenerated. From bugzilla-daemon at icedtea.classpath.org Thu May 15 09:26:37 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 15 May 2008 16:26:37 +0000 Subject: [Bug 152] New: HotSpot crashes while compiling GNU Classpath! Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152 Summary: HotSpot crashes while compiling GNU Classpath! Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: neugens at limasoftware.net CC: neugens at limasoftware.net This is on Fedora 9 and openjdk: java version "1.6.0" OpenJDK Runtime Environment (build 1.6.0-b09) OpenJDK Server VM (build 1.6.0-b09, mixed mode) The build breaks from the command line and from eclipse (but eclispe does not crash). There is a bug entry on Red Hat bugzilla that may be related: https://bugzilla.redhat.com/show_bug.cgi?id=444672 I used this command line: cd classpath make uninstall make distclean ./autogen.sh ./configure --prefix=$(pwd)/install --enable-regen-headers --with-ecj --enable-Werror make Attached the log with the details of the crash. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu May 15 09:27:14 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 15 May 2008 16:27:14 +0000 Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath! Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152 ------- Comment #1 from neugens at limasoftware.net 2008-05-15 16:27 ------- Created an attachment (id=71) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=71&action=view) Error log from hotspot -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From mark at klomp.org Fri May 16 01:32:56 2008 From: mark at klomp.org (Mark Wielaard) Date: Fri, 16 May 2008 08:32:56 +0000 Subject: changeset in /hg/icedtea6: Merge icedtea-sparc patch hunks. Message-ID: changeset 4560c7ed0c62 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=4560c7ed0c62 description: Merge icedtea-sparc patch hunks. 2008-05-16 Mark Wielaard * patches/icedtea-sparc.patch: Merge os_linux_sparc.cpp patch hunks. diffstat: 2 files changed, 15 insertions(+), 21 deletions(-) ChangeLog | 4 ++++ patches/icedtea-sparc.patch | 32 +++++++++++--------------------- diffs (74 lines): diff -r 33a90721ac50 -r 4560c7ed0c62 ChangeLog --- a/ChangeLog Thu May 15 11:51:53 2008 +0200 +++ b/ChangeLog Fri May 16 10:32:43 2008 +0200 @@ -1,3 +1,7 @@ 2008-05-15 Matthias Klose + + * patches/icedtea-sparc.patch: Merge os_linux_sparc.cpp patch hunks. + 2008-05-15 Matthias Klose * patches/icedtea-sparc.patch: New. diff -r 33a90721ac50 -r 4560c7ed0c62 patches/icedtea-sparc.patch --- a/patches/icedtea-sparc.patch Thu May 15 11:51:53 2008 +0200 +++ b/patches/icedtea-sparc.patch Fri May 16 10:32:43 2008 +0200 @@ -582,7 +582,7 @@ Reviewed-by: kamg +inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); } --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ openjdk/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp Thu Apr 24 15:07:57 2008 -0400 -@@ -0,0 +1,648 @@ +@@ -0,0 +1,658 @@ +/* + * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -847,6 +847,16 @@ Reviewed-by: kamg +} + +// Utility functions ++ ++julong os::allocatable_physical_memory(julong size) { ++ julong result = MIN2(size, (julong)3800*M); ++ if (!is_allocatable(result)) { ++ // See comments under solaris for alignment considerations ++ julong reasonable_size = (julong)2*G - 2 * os::vm_page_size(); ++ result = MIN2(size, reasonable_size); ++ } ++ return result; ++} + +extern "C" void Fetch32PFI(); +extern "C" void Fetch32Resume(); @@ -1231,7 +1241,6 @@ Reviewed-by: kamg + // guard page, only enable glibc guard page for non-Java threads. + return (thr_type == java_thread ? 0 : page_size()); +} ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ openjdk/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp Thu Apr 24 15:07:57 2008 -0400 @@ -0,0 +1,46 @@ +/* @@ -1786,25 +1795,6 @@ diff -urN openjdk/hotspot/build/linux/ma VM_PICFLAG/LIBJVM = $(PICFLAG) VM_PICFLAG/AOUT = ---- openjdk/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp.orig 2008-05-13 22:48:33.000000000 +0000 -+++ openjdk/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp 2008-05-14 06:58:25.000000000 +0000 -@@ -263,6 +263,16 @@ - - // Utility functions - -+julong os::allocatable_physical_memory(julong size) { -+ julong result = MIN2(size, (julong)3800*M); -+ if (!is_allocatable(result)) { -+ // See comments under solaris for alignment considerations -+ julong reasonable_size = (julong)2*G - 2 * os::vm_page_size(); -+ result = MIN2(size, reasonable_size); -+ } -+ return result; -+} -+ - extern "C" void Fetch32PFI(); - extern "C" void Fetch32Resume(); - extern "C" void FetchNPFI(); --- openjdk/hotspot/build/linux/makefiles/defs.make.orig 2008-05-14 10:39:14.000000000 +0000 +++ openjdk/hotspot/build/linux/makefiles/defs.make 2008-05-14 15:18:21.000000000 +0000 @@ -59,7 +59,7 @@ From mark at klomp.org Fri May 16 01:33:56 2008 From: mark at klomp.org (Mark Wielaard) Date: Fri, 16 May 2008 10:33:56 +0200 Subject: icedtea/openjdk build for sparc-linux In-Reply-To: <482C09DE.90205@ubuntu.com> References: <482C09DE.90205@ubuntu.com> Message-ID: <1210926836.3143.8.camel@dijkstra.wildebeest.org> Hi Matthias, On Thu, 2008-05-15 at 12:01 +0200, Matthias Klose wrote: > Checked in Suns patches to build on sparc-linux, backported to IcedTea6. The > mauve testsuite results look the same like on x86 and amd64. Note that I only > tested on a 64bit kernel, running 32bit user space, so maybe some adjustments > are needed for 64bit user space. This is really great! Thanks for working on this. > 2008-05-15 Matthias Klose > > * patches/icedtea-sparc.patch: New. > * Makefile.am: Add the icedtea-sparc patch. > * acinclude.m4: Don't default to the zero port on sparc. > * Makefile.in, configure: Regenerated. I had to change one thing in the patch. It tries to create a file (os_linux_sparc.cpp) and then tries to patch it later on. That doesn't work because we first check if the patch as a whole applies (and it doesn't since the second patch to the file will find the file doesn't exist yet, because it is a dry-run). So for now I have folded the two patches into one. (Another solution would be put the new files in the overlays and apply the patches on top of that - but then we need to change the Makefile.am to switch the overlays/patch order.) 2008-05-16 Mark Wielaard * patches/icedtea-sparc.patch: Merge os_linux_sparc.cpp patch hunks. Committed and pushed. Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: patch-patches.patch Type: text/x-patch Size: 2537 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080516/7f5cb51f/attachment.bin From mark at klomp.org Sun May 18 23:17:29 2008 From: mark at klomp.org (Mark Wielaard) Date: Mon, 19 May 2008 06:17:29 +0000 Subject: changeset in /hg/icedtea6: Add jtreg support. Message-ID: changeset bf4662205a02 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=bf4662205a02 description: Add jtreg support. 2008-05-19 Mark Wielaard * test/jtreg/*: New jtreg and jtharness sources. * Makefile.am (distclean-local): Add clean-jtreg clean-jtreg-reports. (.PHONY): Likewise. (EXTRA_DIST): Add test/jtreg. (stamps/jtreg.stamp): New target. (clean-jtreg): Likewise. (check-hotspot): Likewise. (check-langtools): Likewise. (check-jdk): Likewise. (clean-jtreg-reports): Likewise. (jtregcheck): Likewise. (check-local): Likewise. (jtreg): Likewise. * Makefile.in: Regenerated. diffstat: 498 files changed, 170292 insertions(+), 9 deletions(-) ChangeLog | 17 Makefile.am | 58 Makefile.in | 65 test/jtreg/JavaTest.cmdMgrs.lst | 34 test/jtreg/JavaTest.toolMgrs.lst | 30 test/jtreg/META-INF/MANIFEST.MF | 3 test/jtreg/README | 29 test/jtreg/com/sun/interview/AllFilesFileFilter.java | 60 test/jtreg/com/sun/interview/Checklist.java | 124 test/jtreg/com/sun/interview/ChoiceArrayQuestion.java | 385 + test/jtreg/com/sun/interview/ChoiceQuestion.java | 380 + test/jtreg/com/sun/interview/CompositeQuestion.java | 63 test/jtreg/com/sun/interview/DirectoryFileFilter.java | 61 test/jtreg/com/sun/interview/ErrorQuestion.java | 56 test/jtreg/com/sun/interview/ExtensionFileFilter.java | 162 test/jtreg/com/sun/interview/FileFilter.java | 53 test/jtreg/com/sun/interview/FileListQuestion.java | 376 + test/jtreg/com/sun/interview/FileQuestion.java | 299 + test/jtreg/com/sun/interview/FilesAndDirectoriesFileFilter.java | 61 test/jtreg/com/sun/interview/FinalQuestion.java | 63 test/jtreg/com/sun/interview/FloatQuestion.java | 399 + test/jtreg/com/sun/interview/InetAddressQuestion.java | 408 + test/jtreg/com/sun/interview/IntQuestion.java | 376 + test/jtreg/com/sun/interview/Interview.java | 2397 ++++++++ test/jtreg/com/sun/interview/InterviewQuestion.java | 126 test/jtreg/com/sun/interview/InterviewSet.java | 262 test/jtreg/com/sun/interview/ListQuestion.java | 637 ++ test/jtreg/com/sun/interview/NullQuestion.java | 174 test/jtreg/com/sun/interview/Properties2.java | 346 + test/jtreg/com/sun/interview/PropertiesQuestion.java | 1420 ++++ test/jtreg/com/sun/interview/Question.java | 513 + test/jtreg/com/sun/interview/StringListQuestion.java | 284 test/jtreg/com/sun/interview/StringQuestion.java | 230 test/jtreg/com/sun/interview/TreeQuestion.java | 388 + test/jtreg/com/sun/interview/WizEdit.java | 346 + test/jtreg/com/sun/interview/WizPrint.java | 1091 +++ test/jtreg/com/sun/interview/YesNoQuestion.java | 94 test/jtreg/com/sun/interview/i18n.properties | 86 test/jtreg/com/sun/interview/package.html | 142 test/jtreg/com/sun/interview/wizard/ActionDocListener.java | 59 test/jtreg/com/sun/interview/wizard/ActionListDataListener.java | 59 test/jtreg/com/sun/interview/wizard/ChoiceArrayQuestionRenderer.java | 214 test/jtreg/com/sun/interview/wizard/ChoiceQuestionRenderer.java | 246 test/jtreg/com/sun/interview/wizard/EditableList.java | 368 + test/jtreg/com/sun/interview/wizard/Exporter.java | 74 test/jtreg/com/sun/interview/wizard/FileList.java | 134 test/jtreg/com/sun/interview/wizard/FileListQuestionRenderer.java | 113 test/jtreg/com/sun/interview/wizard/FileQuestionRenderer.java | 163 test/jtreg/com/sun/interview/wizard/FloatQuestionRenderer.java | 196 test/jtreg/com/sun/interview/wizard/I18NResourceBundle.java | 185 test/jtreg/com/sun/interview/wizard/InetAddressQuestionRenderer.java | 392 + test/jtreg/com/sun/interview/wizard/InfoPanel.java | 89 test/jtreg/com/sun/interview/wizard/IntQuestionRenderer.java | 165 test/jtreg/com/sun/interview/wizard/ListQuestionRenderer.java | 244 test/jtreg/com/sun/interview/wizard/NullQuestionRenderer.java | 43 test/jtreg/com/sun/interview/wizard/PathPanel.java | 1192 ++++ test/jtreg/com/sun/interview/wizard/PropertiesQuestionRenderer.java | 341 + test/jtreg/com/sun/interview/wizard/QuestionPanel.java | 668 ++ test/jtreg/com/sun/interview/wizard/QuestionRenderer.java | 70 test/jtreg/com/sun/interview/wizard/RenderingUtilities.java | 460 + test/jtreg/com/sun/interview/wizard/SearchDialog.java | 330 + test/jtreg/com/sun/interview/wizard/StringListQuestionRenderer.java | 78 test/jtreg/com/sun/interview/wizard/StringQuestionRenderer.java | 104 test/jtreg/com/sun/interview/wizard/SwingFileFilter.java | 61 test/jtreg/com/sun/interview/wizard/TreeQuestionRenderer.java | 701 ++ test/jtreg/com/sun/interview/wizard/TypeInPanel.java | 159 test/jtreg/com/sun/interview/wizard/WizPane.java | 517 + test/jtreg/com/sun/interview/wizard/Wizard.java | 1095 +++ test/jtreg/com/sun/interview/wizard/YesNoQuestionRenderer.java | 126 test/jtreg/com/sun/interview/wizard/i18n.properties | 294 test/jtreg/com/sun/interview/wizard/package.html | 57 test/jtreg/com/sun/javatest/AllTestsFilter.java | 52 test/jtreg/com/sun/javatest/BasicParameters.java | 817 ++ test/jtreg/com/sun/javatest/Command.java | 72 test/jtreg/com/sun/javatest/CompositeFilter.java | 234 test/jtreg/com/sun/javatest/DefaultTestRunner.java | 254 test/jtreg/com/sun/javatest/Deprecated.java | 45 test/jtreg/com/sun/javatest/EditJTI.java | 713 ++ test/jtreg/com/sun/javatest/EditLinks.java | 564 + test/jtreg/com/sun/javatest/ExcludeList.java | 1212 ++++ test/jtreg/com/sun/javatest/ExcludeListFilter.java | 81 test/jtreg/com/sun/javatest/ExcludeListUpdateHandler.java | 167 test/jtreg/com/sun/javatest/FileParameters.java | 571 + test/jtreg/com/sun/javatest/Harness.java | 964 +++ test/jtreg/com/sun/javatest/HarnessHttpHandler.java | 590 + test/jtreg/com/sun/javatest/InitialUrlFilter.java | 170 test/jtreg/com/sun/javatest/InterviewParameters.java | 1676 +++++ test/jtreg/com/sun/javatest/InterviewPropagator.java | 821 ++ test/jtreg/com/sun/javatest/JavaTestError.java | 224 test/jtreg/com/sun/javatest/JavaTestSecurityManager.java | 204 test/jtreg/com/sun/javatest/Keywords.java | 595 ++ test/jtreg/com/sun/javatest/KeywordsFilter.java | 80 test/jtreg/com/sun/javatest/LastRunFilter.java | 145 test/jtreg/com/sun/javatest/LastRunInfo.java | 176 test/jtreg/com/sun/javatest/ObservableTestFilter.java | 82 test/jtreg/com/sun/javatest/Parameters.java | 948 +++ test/jtreg/com/sun/javatest/ProductInfo.java | 200 test/jtreg/com/sun/javatest/ResourceTable.java | 118 test/jtreg/com/sun/javatest/Script.java | 1350 ++++ test/jtreg/com/sun/javatest/Status.java | 361 + test/jtreg/com/sun/javatest/StatusFilter.java | 124 test/jtreg/com/sun/javatest/TRT_HttpHandler.java | 210 test/jtreg/com/sun/javatest/TRT_Iterator.java | 954 +++ test/jtreg/com/sun/javatest/TRT_TreeNode.java | 1749 +++++ test/jtreg/com/sun/javatest/TemplateUtilities.java | 218 test/jtreg/com/sun/javatest/Test.java | 64 test/jtreg/com/sun/javatest/TestDescription.java | 576 + test/jtreg/com/sun/javatest/TestEnvContext.java | 356 + test/jtreg/com/sun/javatest/TestEnvironment.java | 692 ++ test/jtreg/com/sun/javatest/TestFilter.java | 139 test/jtreg/com/sun/javatest/TestFinder.java | 738 ++ test/jtreg/com/sun/javatest/TestFinderQueue.java | 714 ++ test/jtreg/com/sun/javatest/TestResult.java | 2685 +++++++++ test/jtreg/com/sun/javatest/TestResultCache.java | 815 ++ test/jtreg/com/sun/javatest/TestResultTable.java | 2938 +++++++++ test/jtreg/com/sun/javatest/TestRunner.java | 227 test/jtreg/com/sun/javatest/TestSuite.java | 1344 ++++ test/jtreg/com/sun/javatest/Trace.java | 175 test/jtreg/com/sun/javatest/WorkDirectory.java | 942 +++ test/jtreg/com/sun/javatest/agent/ActiveAgentCommand.java | 117 test/jtreg/com/sun/javatest/agent/ActiveAgentPool.java | 647 ++ test/jtreg/com/sun/javatest/agent/ActiveConnectionFactory.java | 88 test/jtreg/com/sun/javatest/agent/ActiveModeOptions.java | 79 test/jtreg/com/sun/javatest/agent/Agent.java | 1162 +++ test/jtreg/com/sun/javatest/agent/AgentApplet.java | 304 + test/jtreg/com/sun/javatest/agent/AgentClassLoader.java | 88 test/jtreg/com/sun/javatest/agent/AgentClassLoader2.java | 63 test/jtreg/com/sun/javatest/agent/AgentFrame.java | 337 + test/jtreg/com/sun/javatest/agent/AgentMain.java | 556 + test/jtreg/com/sun/javatest/agent/AgentManager.java | 646 ++ test/jtreg/com/sun/javatest/agent/AgentMonitorCommandManager.java | 231 test/jtreg/com/sun/javatest/agent/AgentMonitorTool.java | 516 + test/jtreg/com/sun/javatest/agent/AgentMonitorToolManager.java | 111 test/jtreg/com/sun/javatest/agent/AgentPanel.java | 1048 +++ test/jtreg/com/sun/javatest/agent/BadValue.java | 65 test/jtreg/com/sun/javatest/agent/Connection.java | 83 test/jtreg/com/sun/javatest/agent/ConnectionFactory.java | 88 test/jtreg/com/sun/javatest/agent/Deck.java | 96 test/jtreg/com/sun/javatest/agent/Deprecated.java | 52 test/jtreg/com/sun/javatest/agent/Folder.java | 343 + test/jtreg/com/sun/javatest/agent/Icon.java | 114 test/jtreg/com/sun/javatest/agent/InterruptableSocketConnection.java | 134 test/jtreg/com/sun/javatest/agent/Map.java | 197 test/jtreg/com/sun/javatest/agent/ModeOptions.java | 56 test/jtreg/com/sun/javatest/agent/PassiveAgentCommand.java | 135 test/jtreg/com/sun/javatest/agent/PassiveConnectionFactory.java | 91 test/jtreg/com/sun/javatest/agent/PassiveModeOptions.java | 73 test/jtreg/com/sun/javatest/agent/SocketConnection.java | 169 test/jtreg/com/sun/javatest/agent/i18n.properties | 95 test/jtreg/com/sun/javatest/agent/package.html | 60 test/jtreg/com/sun/javatest/audit/Audit.java | 739 ++ test/jtreg/com/sun/javatest/audit/AuditCommandManager.java | 140 test/jtreg/com/sun/javatest/audit/AuditPane.java | 82 test/jtreg/com/sun/javatest/audit/AuditTool.java | 373 + test/jtreg/com/sun/javatest/audit/AuditToolManager.java | 105 test/jtreg/com/sun/javatest/audit/BadChecksumPane.java | 47 test/jtreg/com/sun/javatest/audit/BadTestCaseTestsPane.java | 48 test/jtreg/com/sun/javatest/audit/BadTestDescriptionPane.java | 47 test/jtreg/com/sun/javatest/audit/BadTestsPane.java | 47 test/jtreg/com/sun/javatest/audit/ListPane.java | 100 test/jtreg/com/sun/javatest/audit/OptionsDialog.java | 371 + test/jtreg/com/sun/javatest/audit/SummaryPane.java | 287 test/jtreg/com/sun/javatest/audit/i18n.properties | 189 test/jtreg/com/sun/javatest/audit/package.html | 44 test/jtreg/com/sun/javatest/batch/BatchManager.java | 119 test/jtreg/com/sun/javatest/batch/ObserverCommand.java | 182 test/jtreg/com/sun/javatest/batch/RunTestsCommand.java | 416 + test/jtreg/com/sun/javatest/batch/i18n.properties | 75 test/jtreg/com/sun/javatest/batch/package.html | 44 test/jtreg/com/sun/javatest/cof/COF1_0.xsd | 548 + test/jtreg/com/sun/javatest/cof/COF2_0_2.xsd | 779 ++ test/jtreg/com/sun/javatest/cof/COFApplication.java | 102 test/jtreg/com/sun/javatest/cof/COFApplications.java | 69 test/jtreg/com/sun/javatest/cof/COFData.java | 94 test/jtreg/com/sun/javatest/cof/COFEnvironment.java | 584 + test/jtreg/com/sun/javatest/cof/COFEnvironments.java | 124 test/jtreg/com/sun/javatest/cof/COFItem.java | 170 test/jtreg/com/sun/javatest/cof/COFOS.java | 178 test/jtreg/com/sun/javatest/cof/COFReportAnnotation.java | 160 test/jtreg/com/sun/javatest/cof/COFReportAnnotations.java | 114 test/jtreg/com/sun/javatest/cof/COFSWEntities.java | 114 test/jtreg/com/sun/javatest/cof/COFSWEntity.java | 248 test/jtreg/com/sun/javatest/cof/COFStatus.java | 193 test/jtreg/com/sun/javatest/cof/COFTest.java | 594 + test/jtreg/com/sun/javatest/cof/COFTestAttribute.java | 181 test/jtreg/com/sun/javatest/cof/COFTestAttributes.java | 116 test/jtreg/com/sun/javatest/cof/COFTestCase.java | 346 + test/jtreg/com/sun/javatest/cof/COFTestCases.java | 133 test/jtreg/com/sun/javatest/cof/COFTestSuite.java | 143 test/jtreg/com/sun/javatest/cof/COFTestSuites.java | 126 test/jtreg/com/sun/javatest/cof/ID.java | 56 test/jtreg/com/sun/javatest/cof/Main.java | 377 + test/jtreg/com/sun/javatest/cof/Report.java | 424 + test/jtreg/com/sun/javatest/cof/i18n.properties | 54 test/jtreg/com/sun/javatest/diff/DiffReader.java | 40 test/jtreg/com/sun/javatest/diff/HTMLReporter.java | 305 + test/jtreg/com/sun/javatest/diff/Help.java | 445 + test/jtreg/com/sun/javatest/diff/Main.java | 318 + test/jtreg/com/sun/javatest/diff/MultiMap.java | 174 test/jtreg/com/sun/javatest/diff/ReportReader.java | 126 test/jtreg/com/sun/javatest/diff/Reporter.java | 76 test/jtreg/com/sun/javatest/diff/SimpleReporter.java | 163 test/jtreg/com/sun/javatest/diff/StatusComparator.java | 79 test/jtreg/com/sun/javatest/diff/WorkDirectoryReader.java | 113 test/jtreg/com/sun/javatest/diff/i18n.properties | 125 test/jtreg/com/sun/javatest/exec/AbstractCellEditor.java | 87 test/jtreg/com/sun/javatest/exec/AccessWrapper.java | 73 test/jtreg/com/sun/javatest/exec/BP_BranchSubpanel.java | 96 test/jtreg/com/sun/javatest/exec/BP_DocumentationSubpanel.java | 107 test/jtreg/com/sun/javatest/exec/BP_FilteredOutSubpanel.java | 926 +++ test/jtreg/com/sun/javatest/exec/BP_Model.java | 78 test/jtreg/com/sun/javatest/exec/BP_SummarySubpanel.java | 980 +++ test/jtreg/com/sun/javatest/exec/BP_TestListSubpanel.java | 1353 ++++ test/jtreg/com/sun/javatest/exec/BasicCustomTestFilter.java | 1077 +++ test/jtreg/com/sun/javatest/exec/BranchPanel.java | 579 + test/jtreg/com/sun/javatest/exec/CE_EnvironmentPane.java | 276 test/jtreg/com/sun/javatest/exec/CE_ExcludeListPane.java | 612 ++ test/jtreg/com/sun/javatest/exec/CE_ExecutionPane.java | 253 test/jtreg/com/sun/javatest/exec/CE_FullView.java | 265 test/jtreg/com/sun/javatest/exec/CE_KeywordsPane.java | 527 + test/jtreg/com/sun/javatest/exec/CE_PriorStatusPane.java | 203 test/jtreg/com/sun/javatest/exec/CE_StdPane.java | 82 test/jtreg/com/sun/javatest/exec/CE_StdView.java | 274 test/jtreg/com/sun/javatest/exec/CE_TemplateDialog.java | 320 + test/jtreg/com/sun/javatest/exec/CE_TestsPane.java | 255 test/jtreg/com/sun/javatest/exec/CE_View.java | 72 test/jtreg/com/sun/javatest/exec/ChecklistBrowser.java | 296 test/jtreg/com/sun/javatest/exec/ConfigEditor.java | 1401 ++++ test/jtreg/com/sun/javatest/exec/ConfigHandler.java | 1198 ++++ test/jtreg/com/sun/javatest/exec/ConfigurableTestFilter.java | 209 test/jtreg/com/sun/javatest/exec/ContextManager.java | 583 + test/jtreg/com/sun/javatest/exec/CustomTestResultViewer.java | 104 test/jtreg/com/sun/javatest/exec/DetailsBrowser.java | 154 test/jtreg/com/sun/javatest/exec/ET_FilterHandler.java | 591 + test/jtreg/com/sun/javatest/exec/ElapsedTimeMonitor.java | 221 test/jtreg/com/sun/javatest/exec/EnvironmentBrowser.java | 351 + test/jtreg/com/sun/javatest/exec/ExcludeListBrowser.java | 371 + test/jtreg/com/sun/javatest/exec/ExecModel.java | 93 test/jtreg/com/sun/javatest/exec/ExecTool.java | 1471 ++++ test/jtreg/com/sun/javatest/exec/ExecToolManager.java | 815 ++ test/jtreg/com/sun/javatest/exec/FeatureManager.java | 89 test/jtreg/com/sun/javatest/exec/FileSystemTableModel.java | 245 test/jtreg/com/sun/javatest/exec/FileTable.java | 99 test/jtreg/com/sun/javatest/exec/FileType.java | 85 test/jtreg/com/sun/javatest/exec/FilesPane.java | 134 test/jtreg/com/sun/javatest/exec/FilterConfig.java | 858 ++ test/jtreg/com/sun/javatest/exec/FilterSelectionHandler.java | 425 + test/jtreg/com/sun/javatest/exec/JavaTestContextMenu.java | 134 test/jtreg/com/sun/javatest/exec/JavaTestMenuManager.java | 133 test/jtreg/com/sun/javatest/exec/JavaTestToolBar.java | 236 test/jtreg/com/sun/javatest/exec/LogViewer.java | 1349 ++++ test/jtreg/com/sun/javatest/exec/LogViewerTools.java | 191 test/jtreg/com/sun/javatest/exec/MessageStrip.java | 383 + test/jtreg/com/sun/javatest/exec/Monitor.java | 60 test/jtreg/com/sun/javatest/exec/MonitorState.java | 334 + test/jtreg/com/sun/javatest/exec/MultiFormatPane.java | 971 +++ test/jtreg/com/sun/javatest/exec/MultiSelectPanel.java | 177 test/jtreg/com/sun/javatest/exec/NavigationPane.java | 365 + test/jtreg/com/sun/javatest/exec/NewReportDialog.java | 1428 ++++ test/jtreg/com/sun/javatest/exec/ParameterFilter.java | 238 test/jtreg/com/sun/javatest/exec/PrefsPane.java | 195 test/jtreg/com/sun/javatest/exec/ProgressMeter.java | 343 + test/jtreg/com/sun/javatest/exec/ProgressMonitor.java | 632 ++ test/jtreg/com/sun/javatest/exec/PropertiesBrowser.java | 310 + test/jtreg/com/sun/javatest/exec/QuestionLogBrowser.java | 280 test/jtreg/com/sun/javatest/exec/QuickStartWizard.java | 1263 ++++ test/jtreg/com/sun/javatest/exec/RenderingUtilities.java | 185 test/jtreg/com/sun/javatest/exec/ReportBrowser.java | 164 test/jtreg/com/sun/javatest/exec/ReportHandler.java | 311 + test/jtreg/com/sun/javatest/exec/RunProgressMonitor.java | 160 test/jtreg/com/sun/javatest/exec/RunTestsHandler.java | 527 + test/jtreg/com/sun/javatest/exec/TP_CustomSubpanel.java | 53 test/jtreg/com/sun/javatest/exec/TP_DescSubpanel.java | 62 test/jtreg/com/sun/javatest/exec/TP_DocumentationSubpanel.java | 86 test/jtreg/com/sun/javatest/exec/TP_EnvSubpanel.java | 124 test/jtreg/com/sun/javatest/exec/TP_FilesSubpanel.java | 84 test/jtreg/com/sun/javatest/exec/TP_OutputSubpanel.java | 806 ++ test/jtreg/com/sun/javatest/exec/TP_PropertySubpanel.java | 415 + test/jtreg/com/sun/javatest/exec/TP_ResultsSubpanel.java | 138 test/jtreg/com/sun/javatest/exec/TP_Subpanel.java | 78 test/jtreg/com/sun/javatest/exec/TT_NodeCache.java | 871 ++ test/jtreg/com/sun/javatest/exec/TT_Renderer.java | 329 + test/jtreg/com/sun/javatest/exec/TU_ViewManager.java | 395 + test/jtreg/com/sun/javatest/exec/TemplateParameterFilter.java | 119 test/jtreg/com/sun/javatest/exec/TestPanel.java | 423 + test/jtreg/com/sun/javatest/exec/TestSuiteErrorsDialog.java | 124 test/jtreg/com/sun/javatest/exec/TestTree.java | 252 test/jtreg/com/sun/javatest/exec/TestTreeModel.java | 1243 ++++ test/jtreg/com/sun/javatest/exec/TestTreePanel.java | 1832 ++++++ test/jtreg/com/sun/javatest/exec/ToolBarManager.java | 259 test/jtreg/com/sun/javatest/exec/ToolBarPanel.java | 162 test/jtreg/com/sun/javatest/exec/TreePanelModel.java | 97 test/jtreg/com/sun/javatest/exec/WorkDirChooseTool.java | 1088 +++ test/jtreg/com/sun/javatest/exec/i18n.properties | 1837 ++++++ test/jtreg/com/sun/javatest/exec/package.html | 43 test/jtreg/com/sun/javatest/finder/BinaryTestFinder.java | 547 + test/jtreg/com/sun/javatest/finder/BinaryTestWriter.java | 860 ++ test/jtreg/com/sun/javatest/finder/ChameleonTestFinder.java | 450 + test/jtreg/com/sun/javatest/finder/CommentStream.java | 85 test/jtreg/com/sun/javatest/finder/ExpandTestFinder.java | 348 + test/jtreg/com/sun/javatest/finder/HTMLCommentStream.java | 84 test/jtreg/com/sun/javatest/finder/HTMLTestFinder.java | 627 ++ test/jtreg/com/sun/javatest/finder/JavaCommentStream.java | 161 test/jtreg/com/sun/javatest/finder/ReverseTestFinder.java | 121 test/jtreg/com/sun/javatest/finder/ShScriptCommentStream.java | 83 test/jtreg/com/sun/javatest/finder/ShowTests.java | 291 test/jtreg/com/sun/javatest/finder/TagTestFinder.java | 388 + test/jtreg/com/sun/javatest/finder/i18n.properties | 69 test/jtreg/com/sun/javatest/finder/package.html | 45 test/jtreg/com/sun/javatest/httpd/HttpdServer.java | 194 test/jtreg/com/sun/javatest/httpd/JThttpProvider.java | 148 test/jtreg/com/sun/javatest/httpd/PageGenerator.java | 252 test/jtreg/com/sun/javatest/httpd/ProviderRegistry.java | 494 + test/jtreg/com/sun/javatest/httpd/RequestHandler.java | 178 test/jtreg/com/sun/javatest/httpd/RootRegistry.java | 136 test/jtreg/com/sun/javatest/httpd/httpURL.java | 318 + test/jtreg/com/sun/javatest/httpd/i18n.properties | 45 test/jtreg/com/sun/javatest/i18n.properties | 460 + test/jtreg/com/sun/javatest/interview/BasicInterviewParameters.java | 433 + test/jtreg/com/sun/javatest/interview/ConcurrencyInterview.java | 104 test/jtreg/com/sun/javatest/interview/DefaultInterviewParameters.java | 63 test/jtreg/com/sun/javatest/interview/EnvironmentInterview.java | 385 + test/jtreg/com/sun/javatest/interview/ExcludeListInterview.java | 605 ++ test/jtreg/com/sun/javatest/interview/KeywordsInterview.java | 304 + test/jtreg/com/sun/javatest/interview/LegacyParameters.java | 88 test/jtreg/com/sun/javatest/interview/PriorStatusInterview.java | 225 test/jtreg/com/sun/javatest/interview/SimpleInterviewParameters.java | 270 test/jtreg/com/sun/javatest/interview/TestsInterview.java | 434 + test/jtreg/com/sun/javatest/interview/TimeoutFactorInterview.java | 106 test/jtreg/com/sun/javatest/interview/i18n.properties | 176 test/jtreg/com/sun/javatest/interview/package.html | 46 test/jtreg/com/sun/javatest/logging/ErrorDialogHandler.java | 217 test/jtreg/com/sun/javatest/logging/FileEvent.java | 51 test/jtreg/com/sun/javatest/logging/FileListener.java | 34 test/jtreg/com/sun/javatest/logging/FilteredLogModel.java | 392 + test/jtreg/com/sun/javatest/logging/JTFormatter.java | 104 test/jtreg/com/sun/javatest/logging/LogModel.java | 502 + test/jtreg/com/sun/javatest/logging/LoggerFactory.java | 58 test/jtreg/com/sun/javatest/logging/ObservedFile.java | 194 test/jtreg/com/sun/javatest/logging/WorkDirLogHandler.java | 148 test/jtreg/com/sun/javatest/logging/i18n.properties | 51 test/jtreg/com/sun/javatest/mrep/BrowserPane.java | 585 + test/jtreg/com/sun/javatest/mrep/ConflictResolutionDialog.java | 263 test/jtreg/com/sun/javatest/mrep/ConflictResolver.java | 38 test/jtreg/com/sun/javatest/mrep/FilesPane.java | 472 + test/jtreg/com/sun/javatest/mrep/Merger.java | 127 test/jtreg/com/sun/javatest/mrep/OptionsDialog.java | 204 test/jtreg/com/sun/javatest/mrep/OptionsPane.java | 504 + test/jtreg/com/sun/javatest/mrep/ReportDirChooser.java | 298 + test/jtreg/com/sun/javatest/mrep/ReportTool.java | 697 ++ test/jtreg/com/sun/javatest/mrep/ReportToolManager.java | 91 test/jtreg/com/sun/javatest/mrep/Scheme.java | 100 test/jtreg/com/sun/javatest/mrep/TestResultDescr.java | 78 test/jtreg/com/sun/javatest/mrep/XMLReportReader.java | 95 test/jtreg/com/sun/javatest/mrep/XMLReportWriter.java | 279 test/jtreg/com/sun/javatest/mrep/i18n.properties | 200 test/jtreg/com/sun/javatest/package.html | 61 test/jtreg/com/sun/javatest/regtest/Action.java | 530 + test/jtreg/com/sun/javatest/regtest/AntOptionDecoder.java | 93 test/jtreg/com/sun/javatest/regtest/AppletAction.java | 631 ++ test/jtreg/com/sun/javatest/regtest/AppletWrapper.java | 650 ++ test/jtreg/com/sun/javatest/regtest/BadArgs.java | 38 test/jtreg/com/sun/javatest/regtest/BuildAction.java | 226 test/jtreg/com/sun/javatest/regtest/CheckFiles.java | 150 test/jtreg/com/sun/javatest/regtest/CleanAction.java | 146 test/jtreg/com/sun/javatest/regtest/CompileAction.java | 601 ++ test/jtreg/com/sun/javatest/regtest/GetSystemProperty.java | 40 test/jtreg/com/sun/javatest/regtest/Help.java | 490 + test/jtreg/com/sun/javatest/regtest/IgnoreAction.java | 111 test/jtreg/com/sun/javatest/regtest/IgnoreKind.java | 35 test/jtreg/com/sun/javatest/regtest/JDK.java | 88 test/jtreg/com/sun/javatest/regtest/Main.java | 1779 +++++ test/jtreg/com/sun/javatest/regtest/MainAction.java | 714 ++ test/jtreg/com/sun/javatest/regtest/MainWrapper.java | 186 test/jtreg/com/sun/javatest/regtest/Option.java | 97 test/jtreg/com/sun/javatest/regtest/OptionDecoder.java | 184 test/jtreg/com/sun/javatest/regtest/ParseException.java | 51 test/jtreg/com/sun/javatest/regtest/RegressionEnvironment.java | 49 test/jtreg/com/sun/javatest/regtest/RegressionObserver.java | 327 + test/jtreg/com/sun/javatest/regtest/RegressionParameters.java | 599 ++ test/jtreg/com/sun/javatest/regtest/RegressionScript.java | 925 +++ test/jtreg/com/sun/javatest/regtest/RegressionSecurityManager.java | 148 test/jtreg/com/sun/javatest/regtest/RegressionTestFinder.java | 562 + test/jtreg/com/sun/javatest/regtest/RegressionTestSuite.java | 180 test/jtreg/com/sun/javatest/regtest/ShellAction.java | 282 test/jtreg/com/sun/javatest/regtest/StringArray.java | 182 test/jtreg/com/sun/javatest/regtest/StringUtils.java | 45 test/jtreg/com/sun/javatest/regtest/TestRunException.java | 52 test/jtreg/com/sun/javatest/regtest/Verbose.java | 130 test/jtreg/com/sun/javatest/regtest/i18n.properties | 326 + test/jtreg/com/sun/javatest/report/ConfigSection.java | 510 + test/jtreg/com/sun/javatest/report/CustomReport.java | 390 + test/jtreg/com/sun/javatest/report/HTMLReport.java | 292 test/jtreg/com/sun/javatest/report/HTMLSection.java | 92 test/jtreg/com/sun/javatest/report/PlainTextReport.java | 112 test/jtreg/com/sun/javatest/report/Report.java | 1096 +++ test/jtreg/com/sun/javatest/report/ReportDirChooser.java | 289 test/jtreg/com/sun/javatest/report/ReportFormat.java | 45 test/jtreg/com/sun/javatest/report/ReportManager.java | 265 test/jtreg/com/sun/javatest/report/ReportModel.java | 34 test/jtreg/com/sun/javatest/report/ReportWriter.java | 191 test/jtreg/com/sun/javatest/report/ResultSection.java | 263 test/jtreg/com/sun/javatest/report/StatisticsSection.java | 228 test/jtreg/com/sun/javatest/report/StringArrayComparator.java | 55 test/jtreg/com/sun/javatest/report/TestResultsByFileComparator.java | 73 test/jtreg/com/sun/javatest/report/TestResultsByStatusAndTitleComparator.java | 58 test/jtreg/com/sun/javatest/report/TestResultsByTitleComparator.java | 53 test/jtreg/com/sun/javatest/report/XMLReport.java | 471 + test/jtreg/com/sun/javatest/report/XMLReportMaker.java | 609 ++ test/jtreg/com/sun/javatest/report/i18n.properties | 135 test/jtreg/com/sun/javatest/report/package.html | 39 test/jtreg/com/sun/javatest/stylesheet.css | 33 test/jtreg/com/sun/javatest/tool/Command.java | 280 test/jtreg/com/sun/javatest/tool/CommandContext.java | 1028 +++ test/jtreg/com/sun/javatest/tool/CommandManager.java | 107 test/jtreg/com/sun/javatest/tool/CommandParser.java | 343 + test/jtreg/com/sun/javatest/tool/ConfigManager.java | 1435 ++++ test/jtreg/com/sun/javatest/tool/CustomPropagationController.java | 113 test/jtreg/com/sun/javatest/tool/Deck.java | 127 test/jtreg/com/sun/javatest/tool/DeskView.java | 833 ++ test/jtreg/com/sun/javatest/tool/Desktop.java | 1507 +++++ test/jtreg/com/sun/javatest/tool/DesktopManager.java | 88 test/jtreg/com/sun/javatest/tool/DesktopPrefsPane.java | 404 + test/jtreg/com/sun/javatest/tool/EditableFileList.java | 146 test/jtreg/com/sun/javatest/tool/EditableList.java | 466 + test/jtreg/com/sun/javatest/tool/EnvironmentManager.java | 145 test/jtreg/com/sun/javatest/tool/FileChooser.java | 129 test/jtreg/com/sun/javatest/tool/FileHistory.java | 398 + test/jtreg/com/sun/javatest/tool/FileOpener.java | 90 test/jtreg/com/sun/javatest/tool/FocusMonitor.java | 711 ++ test/jtreg/com/sun/javatest/tool/HelpLink.java | 195 test/jtreg/com/sun/javatest/tool/HelpLinkBeanInfo.java | 59 test/jtreg/com/sun/javatest/tool/HelpManager.java | 278 test/jtreg/com/sun/javatest/tool/HelpMenu.java | 306 + test/jtreg/com/sun/javatest/tool/HttpManager.java | 99 test/jtreg/com/sun/javatest/tool/I18NUtils.java | 265 test/jtreg/com/sun/javatest/tool/IconFactory.java | 770 ++ test/jtreg/com/sun/javatest/tool/IconLabel.java | 131 test/jtreg/com/sun/javatest/tool/IconLabelBeanInfo.java | 57 test/jtreg/com/sun/javatest/tool/LogManager.java | 112 test/jtreg/com/sun/javatest/tool/MDIDeskView.java | 587 + test/jtreg/com/sun/javatest/tool/Main.java | 506 + test/jtreg/com/sun/javatest/tool/ManagerLoader.java | 148 test/jtreg/com/sun/javatest/tool/PieChart.java | 231 test/jtreg/com/sun/javatest/tool/Preferences.java | 770 ++ test/jtreg/com/sun/javatest/tool/SDIDeskView.java | 494 + test/jtreg/com/sun/javatest/tool/SelectedWorkDirApprover.java | 298 + test/jtreg/com/sun/javatest/tool/Startup.java | 207 test/jtreg/com/sun/javatest/tool/TabDeskView.java | 528 + test/jtreg/com/sun/javatest/tool/TestSuiteChooser.java | 261 test/jtreg/com/sun/javatest/tool/TestTreeSelectionPane.java | 125 test/jtreg/com/sun/javatest/tool/Tool.java | 361 + test/jtreg/com/sun/javatest/tool/ToolAction.java | 243 test/jtreg/com/sun/javatest/tool/ToolDialog.java | 719 ++ test/jtreg/com/sun/javatest/tool/ToolManager.java | 232 test/jtreg/com/sun/javatest/tool/TreeSelectionPane.java | 995 +++ test/jtreg/com/sun/javatest/tool/UIFactory.java | 2972 ++++++++++ test/jtreg/com/sun/javatest/tool/VerboseCommand.java | 159 test/jtreg/com/sun/javatest/tool/WDC_FileFilter.java | 48 test/jtreg/com/sun/javatest/tool/WDC_FileView.java | 66 test/jtreg/com/sun/javatest/tool/WorkDirChooser.java | 352 + test/jtreg/com/sun/javatest/tool/i18n.properties | 538 + test/jtreg/com/sun/javatest/tool/package.html | 49 test/jtreg/com/sun/javatest/util/BackupPolicy.java | 262 test/jtreg/com/sun/javatest/util/BackupUtil.java | 340 + test/jtreg/com/sun/javatest/util/Debug.java | 492 + test/jtreg/com/sun/javatest/util/DirectoryClassLoader.java | 226 test/jtreg/com/sun/javatest/util/DynamicArray.java | 273 test/jtreg/com/sun/javatest/util/ExitCount.java | 77 test/jtreg/com/sun/javatest/util/Fifo.java | 144 test/jtreg/com/sun/javatest/util/FileFilter.java | 43 test/jtreg/com/sun/javatest/util/FileInfoCache.java | 134 test/jtreg/com/sun/javatest/util/HTMLWriter.java | 558 + test/jtreg/com/sun/javatest/util/HelpTree.java | 510 + test/jtreg/com/sun/javatest/util/I18NResourceBundle.java | 171 test/jtreg/com/sun/javatest/util/LineParser.java | 288 test/jtreg/com/sun/javatest/util/LogFile.java | 172 test/jtreg/com/sun/javatest/util/MainAppletContext.java | 133 test/jtreg/com/sun/javatest/util/MainFrame.java | 251 test/jtreg/com/sun/javatest/util/OrderedTwoWayTable.java | 135 test/jtreg/com/sun/javatest/util/PathClassLoader.java | 208 test/jtreg/com/sun/javatest/util/PrefixMap.java | 169 test/jtreg/com/sun/javatest/util/Properties.java | 395 + test/jtreg/com/sun/javatest/util/PropertyArray.java | 723 ++ test/jtreg/com/sun/javatest/util/ReadAheadIterator.java | 350 + test/jtreg/com/sun/javatest/util/SortedProperties.java | 58 test/jtreg/com/sun/javatest/util/StringArray.java | 203 test/jtreg/com/sun/javatest/util/SysEnv.java | 176 test/jtreg/com/sun/javatest/util/TextStream.java | 97 test/jtreg/com/sun/javatest/util/TextWriter.java | 281 test/jtreg/com/sun/javatest/util/Timer.java | 219 test/jtreg/com/sun/javatest/util/WrapWriter.java | 191 test/jtreg/com/sun/javatest/util/WriterStream.java | 159 test/jtreg/com/sun/javatest/util/XMLWriter.java | 358 + test/jtreg/com/sun/javatest/util/i18n.properties | 32 test/jtreg/com/sun/javatest/util/package.html | 39 test/jtreg/legal/copyright.txt | 22 test/jtreg/legal/license.txt | 347 + diffs (truncated from 172498 to 500 lines): diff -r 4560c7ed0c62 -r bf4662205a02 ChangeLog --- a/ChangeLog Fri May 16 10:32:43 2008 +0200 +++ b/ChangeLog Mon May 19 08:16:22 2008 +0200 @@ -1,3 +1,20 @@ 2008-05-16 Mark Wielaard + + * test/jtreg/*: New jtreg and jtharness sources. + * Makefile.am (distclean-local): Add clean-jtreg clean-jtreg-reports. + (.PHONY): Likewise. + (EXTRA_DIST): Add test/jtreg. + (stamps/jtreg.stamp): New target. + (clean-jtreg): Likewise. + (check-hotspot): Likewise. + (check-langtools): Likewise. + (check-jdk): Likewise. + (clean-jtreg-reports): Likewise. + (jtregcheck): Likewise. + (check-local): Likewise. + (jtreg): Likewise. + * Makefile.in: Regenerated. + 2008-05-16 Mark Wielaard * patches/icedtea-sparc.patch: Merge os_linux_sparc.cpp patch hunks. diff -r 4560c7ed0c62 -r bf4662205a02 Makefile.am --- a/Makefile.am Fri May 16 10:32:43 2008 +0200 +++ b/Makefile.am Mon May 19 08:16:22 2008 +0200 @@ -13,7 +13,7 @@ endif all-local: icedtea-against-icedtea -distclean-local: clean-copy +distclean-local: clean-copy clean-jtreg clean-jtreg-reports rm -rf stamps rm -f rt-source-files.txt \ hotspot-tools-source-files.txt \ @@ -36,14 +36,15 @@ install: clean-icedtea icedtea-against-icedtea clean-icedtea-ecj clean-plugs \ clean-tools-jar clean-shared-objects \ clean-copy clean-hotspot-tools clean-rt clean-gcjwebplugin \ - hotspot hotspot-helper clean-extra + hotspot hotspot-helper clean-extra clean-jtreg clean-jtreg-reports EXTRA_DIST = rt generated $(ICEDTEA_PATCHES) $(ICEDTEA_ECJ_PATCH) \ gcjwebplugin.cc tools-copy contrib ports \ patches/icedtea-gcc-4.3.patch extra $(ZERO_PATCHES) \ patches/icedtea-cacao.patch javaws.png javaws.desktop \ patches/icedtea-netx-plugin.patch \ - overlays extra jconsole.desktop policytool.desktop + overlays extra jconsole.desktop policytool.desktop \ + test/jtreg # The Binary plugs directory is called jdk1.7.0 for historical reasons. The # name is completely irrelevant; only contains the plugs to build IcedTea. @@ -925,6 +926,55 @@ clean-gcjwebplugin: clean-gcjwebplugin: rm -f gcjwebplugin.so +# jtreg + +stamps/jtreg.stamp: + rm -rf test/jtreg/classes + mkdir -p test/jtreg/classes + bootstrap/icedtea/bin/javac -g -d test/jtreg/classes -source 1.5 \ + -encoding iso-8859-1 `find test/jtreg/com -name '*.java'` + (cd test/jtreg; \ + ../../bootstrap/icedtea/bin/jar cfm ../jtreg.jar \ + META-INF/MANIFEST.MF \ + legal README JavaTest.cmdMgrs.lst JavaTest.toolMgrs.lst \ + `find com -type f -a -not -name '*.java'` \ + -C classes com) + mkdir -p stamps + touch $@ + +clean-jtreg: + rm -rf test/jtreg/classes + rm -f test/jtreg.jar + rm -f stamps/jtreg.stamp + +check-hotspot: jtreg + mkdir -p test/hotspot/JTwork test/hotspot/JTreport + bootstrap/icedtea/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ + -w:test/hotspot/JTwork -r:test/hotspot/JTreport \ + -jdk:`pwd`/openjdk/control/build/$(LINUX_DIR)/j2sdk-image \ + `pwd`/openjdk/hotspot/test + +check-langtools: jtreg + mkdir -p test/langtools/JTwork test/langtools/JTreport + bootstrap/icedtea/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ + -w:test/langtools/JTwork -r:test/langtools/JTreport \ + -jdk:`pwd`/openjdk/control/build/$(LINUX_DIR)/j2sdk-image \ + `pwd`/openjdk/langtools/test + +check-jdk: jtreg + mkdir -p test/jdk/JTwork test/jdk/JTreport + bootstrap/icedtea/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ + -w:test/jdk/JTwork -r:test/jdk/JTreport \ + -jdk:`pwd`/openjdk/control/build/$(LINUX_DIR)/j2sdk-image \ + `pwd`/openjdk/jdk/test + +clean-jtreg-reports: + rm -rf test/hotspot test/langtools test/jdk + +jtregcheck: jtreg check-hotspot check-langtools check-jdk + +check-local: jtregcheck + # Target Aliases # =============== @@ -969,3 +1019,5 @@ ports-ecj: stamps/ports-ecj.stamp ports-ecj: stamps/ports-ecj.stamp clean: distclean-local + +jtreg: stamps/jtreg.stamp diff -r 4560c7ed0c62 -r bf4662205a02 Makefile.in --- a/Makefile.in Fri May 16 10:32:43 2008 +0200 +++ b/Makefile.in Mon May 19 08:16:22 2008 +0200 @@ -259,7 +259,8 @@ EXTRA_DIST = rt generated $(ICEDTEA_PATC patches/icedtea-gcc-4.3.patch extra $(ZERO_PATCHES) \ patches/icedtea-cacao.patch javaws.png javaws.desktop \ patches/icedtea-netx-plugin.patch \ - overlays extra jconsole.desktop policytool.desktop + overlays extra jconsole.desktop policytool.desktop \ + test/jtreg # The Binary plugs directory is called jdk1.7.0 for historical reasons. The @@ -652,6 +653,7 @@ distcleancheck: distclean $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local check: check-am all-am: Makefile all-local installdirs: @@ -735,9 +737,9 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: all all-am all-local am--refresh check check-am clean \ - clean-generic dist dist-all dist-bzip2 dist-gzip dist-lzma \ - dist-shar dist-tarZ dist-zip distcheck distclean \ +.PHONY: all all-am all-local am--refresh check check-am check-local \ + clean clean-generic dist dist-all dist-bzip2 dist-gzip \ + dist-lzma dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-local distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ @@ -754,7 +756,7 @@ uninstall-am: all-local: icedtea-against-icedtea -distclean-local: clean-copy +distclean-local: clean-copy clean-jtreg clean-jtreg-reports rm -rf stamps rm -f rt-source-files.txt \ hotspot-tools-source-files.txt \ @@ -777,7 +779,7 @@ install: clean-icedtea icedtea-against-icedtea clean-icedtea-ecj clean-plugs \ clean-tools-jar clean-shared-objects \ clean-copy clean-hotspot-tools clean-rt clean-gcjwebplugin \ - hotspot hotspot-helper clean-extra + hotspot hotspot-helper clean-extra clean-jtreg clean-jtreg-reports env: @echo 'unset JAVA_HOME' @@ -1360,6 +1362,55 @@ clean-gcjwebplugin: clean-gcjwebplugin: rm -f gcjwebplugin.so +# jtreg + +stamps/jtreg.stamp: + rm -rf test/jtreg/classes + mkdir -p test/jtreg/classes + bootstrap/icedtea/bin/javac -g -d test/jtreg/classes -source 1.5 \ + -encoding iso-8859-1 `find test/jtreg/com -name '*.java'` + (cd test/jtreg; \ + ../../bootstrap/icedtea/bin/jar cfm ../jtreg.jar \ + META-INF/MANIFEST.MF \ + legal README JavaTest.cmdMgrs.lst JavaTest.toolMgrs.lst \ + `find com -type f -a -not -name '*.java'` \ + -C classes com) + mkdir -p stamps + touch $@ + +clean-jtreg: + rm -rf test/jtreg/classes + rm -f test/jtreg.jar + rm -f stamps/jtreg.stamp + +check-hotspot: jtreg + mkdir -p test/hotspot/JTwork test/hotspot/JTreport + bootstrap/icedtea/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ + -w:test/hotspot/JTwork -r:test/hotspot/JTreport \ + -jdk:`pwd`/openjdk/control/build/$(LINUX_DIR)/j2sdk-image \ + `pwd`/openjdk/hotspot/test + +check-langtools: jtreg + mkdir -p test/langtools/JTwork test/langtools/JTreport + bootstrap/icedtea/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ + -w:test/langtools/JTwork -r:test/langtools/JTreport \ + -jdk:`pwd`/openjdk/control/build/$(LINUX_DIR)/j2sdk-image \ + `pwd`/openjdk/langtools/test + +check-jdk: jtreg + mkdir -p test/jdk/JTwork test/jdk/JTreport + bootstrap/icedtea/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ + -w:test/jdk/JTwork -r:test/jdk/JTreport \ + -jdk:`pwd`/openjdk/control/build/$(LINUX_DIR)/j2sdk-image \ + `pwd`/openjdk/jdk/test + +clean-jtreg-reports: + rm -rf test/hotspot test/langtools test/jdk + +jtregcheck: jtreg check-hotspot check-langtools check-jdk + +check-local: jtregcheck + # Target Aliases # =============== @@ -1404,6 +1455,8 @@ ports-ecj: stamps/ports-ecj.stamp ports-ecj: stamps/ports-ecj.stamp clean: distclean-local + +jtreg: stamps/jtreg.stamp # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -r 4560c7ed0c62 -r bf4662205a02 test/jtreg/JavaTest.cmdMgrs.lst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/JavaTest.cmdMgrs.lst Mon May 19 08:16:22 2008 +0200 @@ -0,0 +1,34 @@ +# +# $Id$ +# +# Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# +com.sun.javatest.agent.AgentMonitorCommandManager +com.sun.javatest.audit.AuditCommandManager +com.sun.javatest.batch.BatchManager +com.sun.javatest.report.ReportManager +com.sun.javatest.tool.ConfigManager +com.sun.javatest.tool.EnvironmentManager +com.sun.javatest.tool.HttpManager +com.sun.javatest.tool.LogManager diff -r 4560c7ed0c62 -r bf4662205a02 test/jtreg/JavaTest.toolMgrs.lst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/JavaTest.toolMgrs.lst Mon May 19 08:16:22 2008 +0200 @@ -0,0 +1,30 @@ +# +# $Id$ +# +# Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# +com.sun.javatest.agent.AgentMonitorToolManager +com.sun.javatest.audit.AuditToolManager +com.sun.javatest.exec.ExecToolManager +com.sun.javatest.mrep.ReportToolManager diff -r 4560c7ed0c62 -r bf4662205a02 test/jtreg/META-INF/MANIFEST.MF --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/META-INF/MANIFEST.MF Mon May 19 08:16:22 2008 +0200 @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-class: com.sun.javatest.regtest.Main + diff -r 4560c7ed0c62 -r bf4662205a02 test/jtreg/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/README Mon May 19 08:16:22 2008 +0200 @@ -0,0 +1,29 @@ +IcedJTReg +--------- + +This is a special "merge" of jtharness and jtreg to be compiled and +run against the OpenJDK included in IcedTea. Please ONLY use this for +testing inside the IcedTea environment. This is NOT a general jtreg +and/or jtharness (source) distribution. In particular this version +does NOT include support for javax.help, javax.servlet, javax.comm, +junit, ant or the sun.com.jct classes. It is just a bare bones version +that can be compiled and run against a "bare" JDK without needing any +external libraries. + +PLEASE DO NOT PACKAGE AND DISTRIBUTE SEPARATELY FROM ICEDTEA + +For the full versions of jtharness and jtreg see: + +- http://openjdk.java.net/jtreg/ +- https://jtharness.dev.java.net/ + +This version is based on: + +- jtharness-oss-4_1_3a-dev +- jtreg-4_0-src-b01-29_apr_2008 + +IcedJTReg is distrubuted under the GPLv2.0, like jtreg and jtharness. +See the documents in the legal directory included in this release. + +Please direct questions about this version to the IcedTea mailinglist: + diff -r 4560c7ed0c62 -r bf4662205a02 test/jtreg/com/sun/interview/AllFilesFileFilter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/com/sun/interview/AllFilesFileFilter.java Mon May 19 08:16:22 2008 +0200 @@ -0,0 +1,60 @@ +/* + * $Id$ + * + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ +package com.sun.interview; + +import java.io.File; + +/** + * A filter which accepts all (non-directory) files. + */ +public class AllFilesFileFilter implements FileFilter { + /** + * Create a filter which accepts all (non-directory) files. + * @param description A short string describing the filter. + */ + public AllFilesFileFilter(String description) { + this.description = description; + } + + public boolean accept(File f) { + return (!f.isDirectory()); + } + + public boolean acceptsDirectories() { + return false; + } + + /** + * Get a short description for this filter. + * @return a short description of this filter + */ + public String getDescription() { + return description; + } + + private String description; +} diff -r 4560c7ed0c62 -r bf4662205a02 test/jtreg/com/sun/interview/Checklist.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/com/sun/interview/Checklist.java Mon May 19 08:16:22 2008 +0200 @@ -0,0 +1,124 @@ +/* + * $Id$ + * + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ +package com.sun.interview; + +import java.util.Map; +import java.util.TreeMap; +import java.util.Vector; + +/** + * A Checklist is a sorted collection of messages, + * for the purpose of providing a list of actions that must + * be performed in association with a completed interview. + * Messages are grouped into sections, which are sorted + * alphabetically; within a section, messages are stored + * in the order they are added. + */ +public class Checklist +{ + /** + * An Item contains a message to appear in a checklist. + */ + public static class Item { + /** + * Create an item to appear in a checklist. + * @param sectionName the name of the section + * in which the message should appear + * @param text the text of the message to appear + * in the checklist + */ + public Item(String sectionName, String text) { + this.sectionName = sectionName; + this.text = text; + } + + private String sectionName; + private String text; + + }; + + /** + * Create an empty checklist. + */ + public Checklist() { + sections = new TreeMap(); + } + + /** + * Get the names of the sections for which entries have been + * added to the checklist. + * @return an array containing the names of the sections for + * which entries have been added to the checklist + */ + public String[] getSectionNames() { + if (sections == null) + return null; + String[] names = new String[sections.keySet().size()]; + sections.keySet().toArray(names); + return names; + } + + /** + * Get the messages in a specific section of this checklist. + * @param sectionName the name of the section for which From mark at klomp.org Mon May 19 01:33:25 2008 From: mark at klomp.org (Mark Wielaard) Date: Mon, 19 May 2008 08:33:25 +0000 Subject: changeset in /hg/icedtea6: Add missing (ignored) lib/ files. Add... Message-ID: changeset f42fc832db86 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f42fc832db86 description: Add missing (ignored) lib/ files. Add test report and classes dirs to ignore. 2008-05-19 Mark Wielaard * test/jtreg/com/sun/javatest/lib/*.java: Added. * .hgignore: Add test/hotspot, test/jdk, test/langtools and test/jtreg/classes diffstat: 14 files changed, 2539 insertions(+) .hgignore | 4 ChangeLog | 6 test/jtreg/com/sun/javatest/lib/APIScript.java | 114 ++ test/jtreg/com/sun/javatest/lib/Deprecated.java | 52 + test/jtreg/com/sun/javatest/lib/ExecStdTestOtherJVMCmd.java | 77 + test/jtreg/com/sun/javatest/lib/ExecStdTestSameJVMCmd.java | 155 +++ test/jtreg/com/sun/javatest/lib/JavaCompileCommand.java | 317 +++++++ test/jtreg/com/sun/javatest/lib/KeywordScript.java | 235 +++++ test/jtreg/com/sun/javatest/lib/MultiStatus.java | 246 +++++ test/jtreg/com/sun/javatest/lib/MultiTest.java | 314 +++++++ test/jtreg/com/sun/javatest/lib/ProcessCommand.java | 462 +++++++++++ test/jtreg/com/sun/javatest/lib/ReportScript.java | 59 + test/jtreg/com/sun/javatest/lib/StdTestScript.java | 223 +++++ test/jtreg/com/sun/javatest/lib/TestCases.java | 275 ++++++ diffs (truncated from 2604 to 500 lines): diff -r bf4662205a02 -r f42fc832db86 .hgignore --- a/.hgignore Mon May 19 08:16:22 2008 +0200 +++ b/.hgignore Mon May 19 10:33:03 2008 +0200 @@ -22,6 +22,10 @@ platform_zero platform_zero jvm.cfg ergo.c +test/hotspot +test/jdk +test/langtools +test/jtreg/classes rt/com/sun/jdi/AbsentInformationException.java rt/com/sun/jdi/Accessible.java rt/com/sun/jdi/ArrayReference.java diff -r bf4662205a02 -r f42fc832db86 ChangeLog --- a/ChangeLog Mon May 19 08:16:22 2008 +0200 +++ b/ChangeLog Mon May 19 10:33:03 2008 +0200 @@ -1,3 +1,9 @@ 2008-05-19 Mark Wielaard + + * test/jtreg/com/sun/javatest/lib/*.java: Added. + * .hgignore: Add test/hotspot, test/jdk, test/langtools and + test/jtreg/classes + 2008-05-19 Mark Wielaard * test/jtreg/*: New jtreg and jtharness sources. diff -r bf4662205a02 -r f42fc832db86 test/jtreg/com/sun/javatest/lib/APIScript.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/com/sun/javatest/lib/APIScript.java Mon May 19 10:33:03 2008 +0200 @@ -0,0 +1,114 @@ +/* + * $Id$ + * + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ +package com.sun.javatest.lib; + +import java.io.File; +import java.io.PrintWriter; + +import com.sun.javatest.Script; +import com.sun.javatest.Status; +import com.sun.javatest.TestEnvironment; +import com.sun.javatest.TestDescription; + +/** + * A Script designed to compile/execute a test. + */ +public class APIScript extends Script +{ + /// XXX this code really needs to be re-visited! + + /** + * The method that interprets the tags provided in the test description and + * performs actions accordingly. + * + * @param args Any arguments that the APIScript may use. Currently + * there are none (value ignored). + * @param td The current TestDescription. + * @param env The test environment giving the details of how to run the + * test. + * @return The result of running the script on the given test + * description. + */ + public Status run(String [] args, TestDescription td, TestEnvironment env) { + + PrintWriter trOut = getTestResult().getTestCommentWriter(); + + Status status = decodeArgs(args); + if (status != null) + return status; + + // XXX This isn't everything. We need to make sure that this is a + // XXX reasonable subset of JCKScript. Do we want to handle all options + // XXX available there? How about the keywords? + + // compile + File [] srcs = td.getSourceFiles(); + Status compileStatus; + if (precompileClassDir == null) { + trOut.println("Unconditionally compiling all sources"); + compileStatus = compileTogether(TEST_COMPILE, srcs); + } else { + trOut.println("Compiling sources only if necessary"); + compileStatus = compileIfNecessary(TEST_COMPILE, srcs, precompileClassDir); + } + + if (!compileStatus.isPassed()) + return compileStatus; + + // execute + String executeClass = td.getParameter("executeClass"); + String executeArgs = td.getParameter("executeArgs"); + Status executeStatus = execute(TEST_EXECUTE, executeClass, executeArgs); + + return executeStatus; + } // run() + + //----------private methods------------------------------------------------- + + private Status decodeArgs(String [] args) { + // decode args + for (int i = 0; i < args.length; i++) { + if (args[i].equals("-precompileClassDir") && (i+1 < args.length)) + precompileClassDir = args[++i]; + else + return Status.failed(UNRECOGNIZED_ARG + args[i]); + } + + return null; + } // init() + + //----------member variables------------------------------------------------ + + private static final String TEST_COMPILE = "testCompile"; + private static final String TEST_EXECUTE = "testExecute"; + + // special option to use compileIfNecessary + private String precompileClassDir; + + private static final String + UNRECOGNIZED_ARG = "Unrecognized argument for script: "; +} diff -r bf4662205a02 -r f42fc832db86 test/jtreg/com/sun/javatest/lib/Deprecated.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/com/sun/javatest/lib/Deprecated.java Mon May 19 10:33:03 2008 +0200 @@ -0,0 +1,52 @@ +/* + * $Id$ + * + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ +package com.sun.javatest.lib; + +import java.io.OutputStream; +import java.io.PrintStream; + +/** + * This class should take the hit for all deprecated methods used in this + * package. + */ +class Deprecated +{ + /** + * This method is for use in place of calls to the deprecated constructors + * for PrintStream(). It is necessary to keep using PrintStreams for + * java.lang.System.setOut(), java.lang.System.setErr(), or calls to things + * in sun.tools that have no alternative entry points that do not use + * PrintStreams. + * + * @param out The output stream to which values and objects will be + * printed. + * @return A PrintStream. + */ + static PrintStream createPrintStream(OutputStream out) { + return new PrintStream(out); + } +} diff -r bf4662205a02 -r f42fc832db86 test/jtreg/com/sun/javatest/lib/ExecStdTestOtherJVMCmd.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/com/sun/javatest/lib/ExecStdTestOtherJVMCmd.java Mon May 19 10:33:03 2008 +0200 @@ -0,0 +1,77 @@ +/* + * $Id$ + * + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ +package com.sun.javatest.lib; + +import com.sun.javatest.Status; + +/** + * This is a modification of ProcessCommand suitable + * for executing standard tests in a separate JVM. When run in a + * separate process, these tests report their exit status by calling + * Status.exit(). + **/ +public class ExecStdTestOtherJVMCmd extends ProcessCommand +{ + + /** + * Generate a status for the command, based upon the command's exit code + * and a status that may have been passed from the command by using + * status.exit(). + * + * @param exitCode The exit code from the command that was executed. + * @param logStatus If the command that was executed was a test program + * and exited by calling status.exit(), + * then logStatus will be set to `status'. Otherwise, + * it will be null. The value of the status is passed + * from the command by writing it as the last line to + * stdout before exiting the process. If it is not + * received as the last line, the value will be lost. + * @return If logStatus is not null, it will + * be used as the result; this will normally correspond + * to the status for which the test called + * status.exit();. + *

If logStatus is null, that means + * that for some reason the test did not successfully + * call status.exit() and the test is + * deemed to have failed. If the exit code is zero, + * a likely possibility is that the test raised an + * exception which caused the JVM to dump the stack + * and exit. In this case, the result is + * Status.failed("exit without status, exception assumed"). + * In other cases, the result is simply + * Status.failed("exit code" + exitCode). + * + **/ + protected Status getStatus(int exitCode, Status logStatus) { + if (logStatus != null) + return logStatus; + else if (exitCode == 0) + return Status.failed("exit without status, exception assumed"); + else + return Status.failed("exit code " + exitCode); + } +} diff -r bf4662205a02 -r f42fc832db86 test/jtreg/com/sun/javatest/lib/ExecStdTestSameJVMCmd.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/com/sun/javatest/lib/ExecStdTestSameJVMCmd.java Mon May 19 10:33:03 2008 +0200 @@ -0,0 +1,155 @@ +/* + * $Id$ + * + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ +package com.sun.javatest.lib; + +import java.io.File; +import java.io.PrintWriter; +import com.sun.javatest.Command; +import com.sun.javatest.Status; +import com.sun.javatest.Test; +import com.sun.javatest.util.DirectoryClassLoader; + + +/** + * ExecStdTestSameJVMCmd executes a standard test (one that implements + * the Test interface) in the same Java Virtual Machine as the caller. + * + * It can use either a private class loader or the system class loader. + * A private class loader will be created if the -loadDir option is given; + * otherwise the system class loader will be used. A private class + * loader minimises the interference between tests, but you may be + * restricted from using private class loaders if you are running the + * harness inside a web browser. + * + *

If the the -repeat option is provided, then the test will be + * run multiple times in the same JVM. Status.error() will be + * returned (and the remainder of the iterations will not be performed) if any + * repetition of the test returns an error, or if the status return type changes + * between iterations. The returned status after each iteration will be + * included in the log. If this option is not given, the test will be run once. + * + * @see com.sun.javatest.lib.ExecStdTestOtherJVMCmd + */ +public class ExecStdTestSameJVMCmd extends Command +{ + /** + * The method that that does the work of the command. + * @param args [-loadDir dir] [-saveProps] executeClass executeArgs + * @param log A stream to which to report messages and errors + * @param ref A stream to which to write reference output + * @return The result of the command + */ + public Status run(String[] args, PrintWriter log, PrintWriter ref) { + int repeat = 1; + String className = null; + String[] executeArgs = { }; + ClassLoader loader = getClassLoader(); + + int i = 0; + + for (; i < args.length && args[i].startsWith("-"); i++) { + if ("-loadDir".equals(args[i]) && i+1 < args.length) { + // -loadDir is optional; if given, a new class loader will be created + // to load the class to execute; if not given, the system class loader + // will be used. + loader = new DirectoryClassLoader(new File(args[++i])); + } else if ("-repeat".equals(args[i]) && i+1 < args.length) { + // -repeat is optional; if given, the test will be run that + // number of times (in the same JVM) + try { + if ((repeat = Integer.parseInt(args[++i])) < 1) + return Status.error("Unexpected number of repetitions: " + repeat); + } + catch (NumberFormatException e) { + return Status.error("Unrecognized number of repetitions: " + repeat); + } + } + } + + // Next must come the executeClass + if (i < args.length) { + className = args[i]; + i++; + } else + return Status.failed("No executeClass specified"); + + // Finally, any optional args + if (i < args.length) { + executeArgs = new String[args.length - i]; + System.arraycopy(args, i, executeArgs, 0, executeArgs.length); + } + + Status status = null; + try { + Class c; + if (loader == null) + c = Class.forName(className); + else + c = loader.loadClass(className); + + Status prevStatus = null; + for (int j = 0; j < repeat; j++) { + if (repeat > 1) + log.println("iteration: " + (j+1)); + + Test t = (Test) (c.newInstance()); + status = t.run(executeArgs, log, ref); + + if (repeat > 1) + log.println(" " + status); + + if ((prevStatus != null) && status.getType() != prevStatus.getType()) + status = Status.error("Return status type changed at repetition: " + (j+1)); + + if (status.isError()) + return status; + else + prevStatus = status; + } + } + catch (ClassCastException e) { + status = Status.failed("Can't load test: required interface not found"); + } + catch (ClassNotFoundException e) { + status = Status.failed("Can't load test: " + e); + } + catch (InstantiationException e) { + status = Status.failed("Can't instantiate test: " + e); + } + catch (IllegalAccessException e) { + status = Status.failed("Illegal access to test: " + e); + } + catch (VerifyError e) { + return Status.failed("Class verification error while trying to load test class `" + className + "': " + e); + } + catch (LinkageError e) { + return Status.failed("Class linking error while trying to load test class `" + className + "': " + e); + } + return status; + } +} + diff -r bf4662205a02 -r f42fc832db86 test/jtreg/com/sun/javatest/lib/JavaCompileCommand.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jtreg/com/sun/javatest/lib/JavaCompileCommand.java Mon May 19 10:33:03 2008 +0200 @@ -0,0 +1,317 @@ +/* + * $Id$ + * + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ +package com.sun.javatest.lib; + +import java.io.OutputStream; +import java.io.PrintWriter; +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.lang.reflect.InvocationTargetException; +import com.sun.javatest.Command; +import com.sun.javatest.Status; +import com.sun.javatest.util.PathClassLoader; +import com.sun.javatest.util.WriterStream; + +/** + * Invoke a Java compiler via reflection. + * The compiler is assumed to have a constructor and compile method + * matching the following signature: + *

+ * public class COMPILER {
+ *     public COMPILER(java.io.OutputStream out, String compilerName);
+ *     public boolean compile(String[] args);
+ * }
+ *
+ * or + *
+ * public class COMPILER {
+ *     public COMPILER();
+ *     public int compile(String[] args);
+ * }


From mark at klomp.org  Mon May 19 02:21:11 2008
From: mark at klomp.org (Mark Wielaard)
Date: Mon, 19 May 2008 11:21:11 +0200
Subject: jtreg testing integrated
Message-ID: <1211188871.5783.26.camel@dijkstra.wildebeest.org>

Hi,

I integrated jtreg testing of all the tests included with openjdk into
icedtea. It uses a slightly hacked/merged jtreg/jtharness version that
can be compiled out of the box without requiring any external libraries
(that means, it doesn't support javax.help, javax.servlet, javax.comm,
ant or junit - none of it is necessary for jdk testing). I'll posts the
diffs soon to the appropriate jtreg and jtharness mailinglists for
people interested in this "frankenstein" IcedJTReg (see also the
attached README).

What this means in practice is that you can now just do:
./configure && make && make check -k

Except that you probably want to run "make jtregcheck -k" directly
(otherwise make check will do an "empty build" of all of openjdk first,
which takes a pretty long time, even if nothing should need
recompilation).

make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
don't come with any tests. This takes about 3 hours on my machine.

Most of the failures are because the host javaweb.sfbay.sun.com cannot
be resolved. But there are also some genuine failures in java.awt.color,
jmx.snmp, javax.script, javax.print, ... so enough to do for
enterprising hackers!

The detailed results of the tests can be found under test/jdk/JTreport,
test/langtools/JTreport and test/hotspot/JTreport.

You can also fire up the gui viewer to explore (and rerun) tests:

java -jar test/jtreg.jar -v1 -a -ignore:quiet \
  -w:test/jdk/JTwork -r:test/jdk/JTreport \
  -jdk:`pwd`/openjdk/control/build/linux-amd64/j2sdk-image -gui \
  `pwd`/openjdk/jdk/test

(Replace your architecture and the testsuite name appropriately. Leave
off the -v1 -a -ignore:quiet to run more tests.)

If possible it would be nice if distributions could integrate this into
their package build process and make the results available just like the
integrated mauve testing the fedora and ubuntu are now doing (would
someone care to integrate that into the icedtea build proper?)

Also I hope that over time distributions will package the full versions
of jtreg and jtharness so it is available, with full support,
everywhere. It really is a nice framework to make unit tests in.

Have fun!

Mark
-------------- next part --------------
A non-text attachment was scrubbed...
Name: README
Type: text/x-readme
Size: 1035 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080519/43a32930/attachment.bin 

From mark at klomp.org  Mon May 19 06:07:03 2008
From: mark at klomp.org (Mark Wielaard)
Date: Mon, 19 May 2008 15:07:03 +0200
Subject: jtreg testing integrated
In-Reply-To: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
Message-ID: <1211202423.5783.30.camel@dijkstra.wildebeest.org>

On Mon, 2008-05-19 at 11:21 +0200, Mark Wielaard wrote:
> make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
> of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
> don't come with any tests. This takes about 3 hours on my machine.

Uploaded the text summary files if someone wants to compare results, or
if someone is looking for a test failure to work on:
http://icedtea.classpath.org/~mjw/jtreg/

The final result for jdk was:
Test results: passed: 2,658; failed: 134; error: 7

Cheers,

Mark



From gnu_andrew at member.fsf.org  Mon May 19 07:56:50 2008
From: gnu_andrew at member.fsf.org (Andrew John Hughes)
Date: Mon, 19 May 2008 15:56:50 +0100
Subject: jtreg testing integrated
In-Reply-To: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
Message-ID: <17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>

2008/5/19 Mark Wielaard :
> Hi,
>
> I integrated jtreg testing of all the tests included with openjdk into
> icedtea. It uses a slightly hacked/merged jtreg/jtharness version that
> can be compiled out of the box without requiring any external libraries
> (that means, it doesn't support javax.help, javax.servlet, javax.comm,
> ant or junit - none of it is necessary for jdk testing). I'll posts the
> diffs soon to the appropriate jtreg and jtharness mailinglists for
> people interested in this "frankenstein" IcedJTReg (see also the
> attached README).
>

Thanks for doing this.  I'm certainly interested in a version of jtreg
that doesn't
depend on half the Java universe.

> What this means in practice is that you can now just do:
> ./configure && make && make check -k
>
> Except that you probably want to run "make jtregcheck -k" directly
> (otherwise make check will do an "empty build" of all of openjdk first,
> which takes a pretty long time, even if nothing should need
> recompilation).
>
> make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
> of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
> don't come with any tests. This takes about 3 hours on my machine.
>
> Most of the failures are because the host javaweb.sfbay.sun.com cannot
> be resolved. But there are also some genuine failures in java.awt.color,
> jmx.snmp, javax.script, javax.print, ... so enough to do for
> enterprising hackers!
>

Well my guess would be that the changes from proprietary JDK to
OpenJDK invalidate
a lot of these tests.  The crypto failures I guess will be looking for
an algorithm that's not
in the crypto that was finally released.   Likewise, I guess the
colour profiles will have
changed, invalidating these test.  JMX SNMP and javax.script are
obvious failures because
the first is stubbed and no implementation of the second is included in OpenJDK.

In summary, in most cases it's the tests that need fixing. Certainly
the sfbay ones need
changing to an external address, preferably something that can shake
off a heavy load ;)

> The detailed results of the tests can be found under test/jdk/JTreport,
> test/langtools/JTreport and test/hotspot/JTreport.
>
> You can also fire up the gui viewer to explore (and rerun) tests:
>
> java -jar test/jtreg.jar -v1 -a -ignore:quiet \
>  -w:test/jdk/JTwork -r:test/jdk/JTreport \
>  -jdk:`pwd`/openjdk/control/build/linux-amd64/j2sdk-image -gui \
>  `pwd`/openjdk/jdk/test
>
> (Replace your architecture and the testsuite name appropriately. Leave
> off the -v1 -a -ignore:quiet to run more tests.)
>
> If possible it would be nice if distributions could integrate this into
> their package build process and make the results available just like the
> integrated mauve testing the fedora and ubuntu are now doing (would
> someone care to integrate that into the icedtea build proper?)
>

I'd be interested to see the results -- do all Mauve tests now pass for IcedTea?

> Also I hope that over time distributions will package the full versions
> of jtreg and jtharness so it is available, with full support,
> everywhere. It really is a nice framework to make unit tests in.
>

Hopefully in separate packages so the core can be installed without
the ant, etc.
stuff.

> Have fun!
>
> Mark
>

Cheers,
-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8


From martinrb at google.com  Mon May 19 08:30:57 2008
From: martinrb at google.com (Martin Buchholz)
Date: Mon, 19 May 2008 08:30:57 -0700
Subject: jtreg testing integrated
In-Reply-To: <17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
Message-ID: <1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>

[+compiler-dev, jtreg-use]

On Mon, May 19, 2008 at 7:56 AM, Andrew John Hughes
 wrote:
> 2008/5/19 Mark Wielaard :
>>
>> make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
>> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
>> of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
>> don't come with any tests. This takes about 3 hours on my machine.

Once upon a time, I wrote a test that made sure the hotspot
and jdk library's idea of the current version and supported targets
were in sync.  Unfortunately, it is not a requirement on hotspot
integrations that they pass this test, so the test starts failing whenever
hotspot starts supporting the class file version number for the next
major release.  At least this is a strong hint to the javac team to
catch up soon by incrementing their supported targets, etc...

I like a policy of "Read my lips; no new test failures" but OpenJDK
is not quite there; we get test failure creep when changes in
one component break another component's tests.

>> Most of the failures are because the host javaweb.sfbay.sun.com cannot
>> be resolved.

The jtreg tests were originally designed to be run only by Sun JDK
development and test engineers.  If someone can come up with a
portable way of testing network services (like ftp clients) without
setting up a dedicated machine with a well-known name, that
would be good.  Alternatively, making the name of this
machine configurable when jtreg is run would also
be an improvement, and a much simpler one.  But the obvious
idea of using environment variables doesn't work.  Most environment
variables are not passed to the running java test program.

If it's considered acceptable for IcedTea hackers to get their
hands dirty with not-100%-free technology, y'all could try
running the jtreg tests against IcedTea, vanilla OpenJDK7,
OpenJDK6, and JDK 6u6, and comparing the test failures.

I once wrote a script to compare two jtreg test runs, diff-javatest.
Jonathan et al, could you work (with me) on releasing that as open source?

Martin

>> But there are also some genuine failures in java.awt.color,
>> jmx.snmp, javax.script, javax.print, ... so enough to do for
>> enterprising hackers!
>>


From David.Herron at Sun.COM  Mon May 19 08:34:34 2008
From: David.Herron at Sun.COM (David Herron)
Date: Mon, 19 May 2008 17:34:34 +0200
Subject: jtreg testing integrated
In-Reply-To: <17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
Message-ID: <48319E0A.3030309@sun.com>

Andrew John Hughes wrote:
> javax.script ... no implementation of the second is included in OpenJDK.
>
>   
It's relatively simple to include rhino in an openjdk build.

I don't know why we didn't do so.. maybe there's a license in the way.  
But y'all in the distros could do an openjdk build which includes rhino.

- David Herron



From Joe.Darcy at Sun.COM  Mon May 19 09:59:47 2008
From: Joe.Darcy at Sun.COM (Joseph D. Darcy)
Date: Mon, 19 May 2008 09:59:47 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211202423.5783.30.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
Message-ID: <4831B203.6050305@sun.com>

Mark Wielaard wrote:
> On Mon, 2008-05-19 at 11:21 +0200, Mark Wielaard wrote:
>> make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
>> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
>> of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
>> don't come with any tests. This takes about 3 hours on my machine.
> 
> Uploaded the text summary files if someone wants to compare results, or
> if someone is looking for a test failure to work on:
> http://icedtea.classpath.org/~mjw/jtreg/
> 
> The final result for jdk was:
> Test results: passed: 2,658; failed: 134; error: 7

Hello.

Last week, I started taking another look at the jtreg test results 
inside Sun.  As has been noted, some of the tests are invalid for 
OpenJDK 6.  I've started correcting them and some fixes will be in the 
next source drop.

Thanks,

-Joe


From Jonathan.Gibbons at Sun.COM  Mon May 19 09:52:23 2008
From: Jonathan.Gibbons at Sun.COM (Jonathan Gibbons)
Date: Mon, 19 May 2008 09:52:23 -0700
Subject: jtreg testing integrated
In-Reply-To: <1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
Message-ID: <7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>

Martin,

jtreg is now open source, as of just before JavaOne. See http://openjdk.java.net/jtreg

There is a small new utility called "jtdiff" that comes with jtreg  
that may do what
you want.  It will do n-way comparison of any JavaTest-type results  
(meaning jtreg, JCK, etc)
where each set of results can be given as a JavaTest work directory,  
report directory,
or just the summary.txt file within a report directory. The output can  
be plain text or HTML.

jtdiff is within jtreg.jar, so the easiest way to invoke it is
	java -cp jtreg.jar com.sun.javatest.diff.Main 

-- Jon

On May 19, 2008, at 8:30 AM, Martin Buchholz wrote:

> [+compiler-dev, jtreg-use]
>
> On Mon, May 19, 2008 at 7:56 AM, Andrew John Hughes
>  wrote:
>> 2008/5/19 Mark Wielaard :
>>>
>>> make jtregcheck -k runs the testsuites of hotspot (4 tests, all  
>>> PASS),
>>> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875  
>>> tests
>>> of which about 130 fail - rerunning tests now). corba, jaxp and  
>>> jaxws
>>> don't come with any tests. This takes about 3 hours on my machine.
>
> Once upon a time, I wrote a test that made sure the hotspot
> and jdk library's idea of the current version and supported targets
> were in sync.  Unfortunately, it is not a requirement on hotspot
> integrations that they pass this test, so the test starts failing  
> whenever
> hotspot starts supporting the class file version number for the next
> major release.  At least this is a strong hint to the javac team to
> catch up soon by incrementing their supported targets, etc...
>
> I like a policy of "Read my lips; no new test failures" but OpenJDK
> is not quite there; we get test failure creep when changes in
> one component break another component's tests.
>
>>> Most of the failures are because the host javaweb.sfbay.sun.com  
>>> cannot
>>> be resolved.
>
> The jtreg tests were originally designed to be run only by Sun JDK
> development and test engineers.  If someone can come up with a
> portable way of testing network services (like ftp clients) without
> setting up a dedicated machine with a well-known name, that
> would be good.  Alternatively, making the name of this
> machine configurable when jtreg is run would also
> be an improvement, and a much simpler one.  But the obvious
> idea of using environment variables doesn't work.  Most environment
> variables are not passed to the running java test program.
>
> If it's considered acceptable for IcedTea hackers to get their
> hands dirty with not-100%-free technology, y'all could try
> running the jtreg tests against IcedTea, vanilla OpenJDK7,
> OpenJDK6, and JDK 6u6, and comparing the test failures.
>
> I once wrote a script to compare two jtreg test runs, diff-javatest.
> Jonathan et al, could you work (with me) on releasing that as open  
> source?
>
> Martin
>
>>> But there are also some genuine failures in java.awt.color,
>>> jmx.snmp, javax.script, javax.print, ... so enough to do for
>>> enterprising hackers!
>>>



From martinrb at google.com  Mon May 19 14:33:59 2008
From: martinrb at google.com (Martin Buchholz)
Date: Mon, 19 May 2008 14:33:59 -0700
Subject: jtreg testing integrated
In-Reply-To: <7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>
Message-ID: <1ccfd1c10805191433i66f23073w7575d9d46acbdb6e@mail.gmail.com>

Jonathan,

Thanks for jtdiff.

Suggestions:

- The various help options are confusing.
  Just print all the help available if given -help or -usage.
- The usage should give a paragraph explaining what it does.
  Not too much work; why, you've practically written the required
  words in the quoted text below.
- My first version of diff-javatest was symmetrical.  It printed any
  difference between the two runs, in both directions.  Later I
  realized that (at least my own) usage invariably had the notion
  of a "reference" JDK and a "test" JDK.  I was interested in tests
  run in the "test" JDK but not in the reference JDK, but not vice
  versa; typically the reference JDK results were historical ones
  produced by someone wearing a QA hat, and were more complete
  than the ones in the test JDK, where results were more likely to be
  part of an edit-compile-test cycle.

Try printing the usage message from my own diff-javatest script,
which should still be accessible inside Sun, in /java/tl, for example.

Martin

On Mon, May 19, 2008 at 9:52 AM, Jonathan Gibbons
 wrote:
> Martin,
>
> jtreg is now open source, as of just before JavaOne. See
> http://openjdk.java.net/jtreg
>
> There is a small new utility called "jtdiff" that comes with jtreg that may
> do what
> you want.  It will do n-way comparison of any JavaTest-type results (meaning
> jtreg, JCK, etc)
> where each set of results can be given as a JavaTest work directory, report
> directory,
> or just the summary.txt file within a report directory. The output can be
> plain text or HTML.
>
> jtdiff is within jtreg.jar, so the easiest way to invoke it is
>        java -cp jtreg.jar com.sun.javatest.diff.Main 
>
> -- Jon
>
> On May 19, 2008, at 8:30 AM, Martin Buchholz wrote:
>
>> [+compiler-dev, jtreg-use]
>>
>> On Mon, May 19, 2008 at 7:56 AM, Andrew John Hughes
>>  wrote:
>>>
>>> 2008/5/19 Mark Wielaard :
>>>>
>>>> make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
>>>> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
>>>> of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
>>>> don't come with any tests. This takes about 3 hours on my machine.
>>
>> Once upon a time, I wrote a test that made sure the hotspot
>> and jdk library's idea of the current version and supported targets
>> were in sync.  Unfortunately, it is not a requirement on hotspot
>> integrations that they pass this test, so the test starts failing whenever
>> hotspot starts supporting the class file version number for the next
>> major release.  At least this is a strong hint to the javac team to
>> catch up soon by incrementing their supported targets, etc...
>>
>> I like a policy of "Read my lips; no new test failures" but OpenJDK
>> is not quite there; we get test failure creep when changes in
>> one component break another component's tests.
>>
>>>> Most of the failures are because the host javaweb.sfbay.sun.com cannot
>>>> be resolved.
>>
>> The jtreg tests were originally designed to be run only by Sun JDK
>> development and test engineers.  If someone can come up with a
>> portable way of testing network services (like ftp clients) without
>> setting up a dedicated machine with a well-known name, that
>> would be good.  Alternatively, making the name of this
>> machine configurable when jtreg is run would also
>> be an improvement, and a much simpler one.  But the obvious
>> idea of using environment variables doesn't work.  Most environment
>> variables are not passed to the running java test program.
>>
>> If it's considered acceptable for IcedTea hackers to get their
>> hands dirty with not-100%-free technology, y'all could try
>> running the jtreg tests against IcedTea, vanilla OpenJDK7,
>> OpenJDK6, and JDK 6u6, and comparing the test failures.
>>
>> I once wrote a script to compare two jtreg test runs, diff-javatest.
>> Jonathan et al, could you work (with me) on releasing that as open source?
>>
>> Martin
>>
>>>> But there are also some genuine failures in java.awt.color,
>>>> jmx.snmp, javax.script, javax.print, ... so enough to do for
>>>> enterprising hackers!
>>>>
>
>


From gnu_andrew at member.fsf.org  Mon May 19 15:16:04 2008
From: gnu_andrew at member.fsf.org (Andrew John Hughes)
Date: Mon, 19 May 2008 23:16:04 +0100
Subject: IcedTea/OpenJDK java.awt.Color support
Message-ID: <17c6771e0805191516l4c2b3481y8262b247b74354bc@mail.gmail.com>

Hi all,

I'm currently in the process of trying to port the changes from
IcedTea6 back to the IcedTea tree so we have an up-to-date IcedTea
build of b26.  One thing I've noticed is that the Color classes are
not yet in this tree:

1. ERROR in /home/andrew/builder/icedtea/openjdk/jdk/src/share/classes/java/awt/Color.java
(at line 32)
        import java.awt.color.ColorSpace;
               ^^^^^^^^^^^^^^^^^^^^^^^^^
The import java.awt.color.ColorSpace cannot be resolved

etc.

In earlier versions of IcedTea, we supplemented this hole with GNU
Classpath color classes, which the merge removed.  I can add these
back, but it would seem more ideal to use the same implementation as
OpenJDK6, assuming these will eventually reach OpenJDK too.

Is there an ETA for the color classes reaching OpenJDK? And are the
imported classes available somewhere separately in the meantime?
Failing the latter, I can import from OpenJDK6 but this would make
things easier and cleaner.

Thanks,
-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


From Jonathan.Gibbons at Sun.COM  Mon May 19 16:07:00 2008
From: Jonathan.Gibbons at Sun.COM (Jonathan Gibbons)
Date: Mon, 19 May 2008 16:07:00 -0700
Subject: jtreg testing integrated
In-Reply-To: <1ccfd1c10805191433i66f23073w7575d9d46acbdb6e@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>
	<1ccfd1c10805191433i66f23073w7575d9d46acbdb6e@mail.gmail.com>
Message-ID: <48320814.7070201@sun.com>

Martin,

(removed compiler-dev)

Your comments about unsymmetric runs are interesting.  jtdiff performs 
an n-way
comparison, and I'd want to keep that functionality.

The two use cases I had in mind were:

-- Given a set of nightly builds on a set of platforms, compare the 
results across
    all the platforms, and report differences

-- Given the same set of nightly builds on a set of platforms, for each 
platform
    perform a pair-wise comparison against the corresponding results 
last night/week/month.

I'll see about adding an option to specify a reference set of results, 
for your
"developer time" use case.

---

Separately, check out the options for handling @ignore tests. Even on 
older versions
of jtreg you can use "-k:!ignore" to ignore @ignore tests.  (This works 
because @ignore
tests are given an implicit "ignore" keyword.)   With later versions of 
jtreg, you can use
-Ignore:{quiet,error,run} to control how @ignore tests should be 
handled. Using this
option, you should be to get closer to the goal of "all tests should 
pass", meaning
that there are less failures and so less need to compare the output 
results with jtdiff.

-- Jon



Martin Buchholz wrote:
> Jonathan,
>
> Thanks for jtdiff.
>
> Suggestions:
>
> - The various help options are confusing.
>   Just print all the help available if given -help or -usage.
> - The usage should give a paragraph explaining what it does.
>   Not too much work; why, you've practically written the required
>   words in the quoted text below.
> - My first version of diff-javatest was symmetrical.  It printed any
>   difference between the two runs, in both directions.  Later I
>   realized that (at least my own) usage invariably had the notion
>   of a "reference" JDK and a "test" JDK.  I was interested in tests
>   run in the "test" JDK but not in the reference JDK, but not vice
>   versa; typically the reference JDK results were historical ones
>   produced by someone wearing a QA hat, and were more complete
>   than the ones in the test JDK, where results were more likely to be
>   part of an edit-compile-test cycle.
>
> Try printing the usage message from my own diff-javatest script,
> which should still be accessible inside Sun, in /java/tl, for example.
>
> Martin
>
> On Mon, May 19, 2008 at 9:52 AM, Jonathan Gibbons
>  wrote:
>   
>> Martin,
>>
>> jtreg is now open source, as of just before JavaOne. See
>> http://openjdk.java.net/jtreg
>>
>> There is a small new utility called "jtdiff" that comes with jtreg that may
>> do what
>> you want.  It will do n-way comparison of any JavaTest-type results (meaning
>> jtreg, JCK, etc)
>> where each set of results can be given as a JavaTest work directory, report
>> directory,
>> or just the summary.txt file within a report directory. The output can be
>> plain text or HTML.
>>
>> jtdiff is within jtreg.jar, so the easiest way to invoke it is
>>        java -cp jtreg.jar com.sun.javatest.diff.Main 
>>
>> -- Jon
>>
>> On May 19, 2008, at 8:30 AM, Martin Buchholz wrote:
>>
>>     
>>> [+compiler-dev, jtreg-use]
>>>
>>> On Mon, May 19, 2008 at 7:56 AM, Andrew John Hughes
>>>  wrote:
>>>       
>>>> 2008/5/19 Mark Wielaard :
>>>>         
>>>>> make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
>>>>> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
>>>>> of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
>>>>> don't come with any tests. This takes about 3 hours on my machine.
>>>>>           
>>> Once upon a time, I wrote a test that made sure the hotspot
>>> and jdk library's idea of the current version and supported targets
>>> were in sync.  Unfortunately, it is not a requirement on hotspot
>>> integrations that they pass this test, so the test starts failing whenever
>>> hotspot starts supporting the class file version number for the next
>>> major release.  At least this is a strong hint to the javac team to
>>> catch up soon by incrementing their supported targets, etc...
>>>
>>> I like a policy of "Read my lips; no new test failures" but OpenJDK
>>> is not quite there; we get test failure creep when changes in
>>> one component break another component's tests.
>>>
>>>       
>>>>> Most of the failures are because the host javaweb.sfbay.sun.com cannot
>>>>> be resolved.
>>>>>           
>>> The jtreg tests were originally designed to be run only by Sun JDK
>>> development and test engineers.  If someone can come up with a
>>> portable way of testing network services (like ftp clients) withoutjsqrdg
>>> setting up a dedicated machine with a well-known name, that
>>> would be good.  Alternatively, making the name of this
>>> machine configurable when jtreg is run would also
>>> be an improvement, and a much simpler one.  But the obvious
>>> idea of using environment variables doesn't work.  Most environment
>>> variables are not passed to the running java test program.
>>>
>>> If it's considered acceptable for IcedTea hackers to get their
>>> hands dirty with not-100%-free technology, y'all could try
>>> running the jtreg tests against IcedTea, vanilla OpenJDK7,
>>> OpenJDK6, and JDK 6u6, and comparing the test failures.
>>>
>>> I once wrote a script to compare two jtreg test runs, diff-javatest.
>>> Jonathan et al, could you work (with me) on releasing that as open source?
>>>
>>> Martin
>>>
>>>       
>>>>> But there are also some genuine failures in java.awt.color,
>>>>> jmx.snmp, javax.script, javax.print, ... so enough to do for
>>>>> enterprising hackers!
>>>>>
>>>>>           
>>     



From twisti at complang.tuwien.ac.at  Tue May 20 01:23:55 2008
From: twisti at complang.tuwien.ac.at (Christian Thalinger)
Date: Tue, 20 May 2008 10:23:55 +0200
Subject: jtreg testing integrated
In-Reply-To: <48320814.7070201@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>
	<1ccfd1c10805191433i66f23073w7575d9d46acbdb6e@mail.gmail.com>
	<48320814.7070201@sun.com>
Message-ID: <1211271835.31722.31.camel@imac523d.theobroma-systems.com>

On Mon, 2008-05-19 at 16:07 -0700, Jonathan Gibbons wrote:
> Martin,
> 
> (removed compiler-dev)
> 
> Your comments about unsymmetric runs are interesting.  jtdiff performs 
> an n-way
> comparison, and I'd want to keep that functionality.
> 
> The two use cases I had in mind were:
> 
> -- Given a set of nightly builds on a set of platforms, compare the 
> results across
>     all the platforms, and report differences
> 
> -- Given the same set of nightly builds on a set of platforms, for each 
> platform
>     perform a pair-wise comparison against the corresponding results 
> last night/week/month.

That's exactly what I want to have.  Does jtdiff currently support
anything of the above?

- twisti



From mark at klomp.org  Tue May 20 01:34:08 2008
From: mark at klomp.org (Mark Wielaard)
Date: Tue, 20 May 2008 10:34:08 +0200
Subject: IcedTea/OpenJDK java.awt.Color support
In-Reply-To: <17c6771e0805191516l4c2b3481y8262b247b74354bc@mail.gmail.com>
References: <17c6771e0805191516l4c2b3481y8262b247b74354bc@mail.gmail.com>
Message-ID: <1211272448.3284.6.camel@dijkstra.wildebeest.org>

Hi Andrew,

OIn earlier versions of IcedTea, we supplemented this hole with GNU
> Classpath color classes, which the merge removed.  I can add these
> back, but it would seem more ideal to use the same implementation as
> OpenJDK6, assuming these will eventually reach OpenJDK too.
> 
> Is there an ETA for the color classes reaching OpenJDK? And are the
> imported classes available somewhere separately in the meantime?
> Failing the latter, I can import from OpenJDK6 but this would make
> things easier and cleaner.

The wheels of integration http://openjdk.java.net/projects/jdk7/builds/
turn slowly, but it seems there is actually 2d merge round is today. You
can find the actual patch at:
http://hg.openjdk.java.net/jdk7/2d/jdk/rev/91087975bff7

But I would just keep the current classpath patches since they do seem
to work fine and wait till the 2d to jdk7 master merge happens.

(Note that currently icedtea/7 tracks one particular revision [b24] of
openjdk/7), see the Makefile.am.

Cheers,

Mark



From mark at klomp.org  Tue May 20 02:02:43 2008
From: mark at klomp.org (Mark Wielaard)
Date: Tue, 20 May 2008 11:02:43 +0200
Subject: jtreg testing integrated
In-Reply-To: <17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
Message-ID: <1211274163.3284.18.camel@dijkstra.wildebeest.org>

Hi Andrew (Tom/Lillian CCed because of the mauve test section below),

On Mon, 2008-05-19 at 15:56 +0100, Andrew John Hughes wrote:
> Thanks for doing this.  I'm certainly interested in a version of jtreg
> that doesn't depend on half the Java universe.

Well, it wasn't that bad :) And I am sure I removed some functionality
(like the ant and junit integration) that is really useful for somebody
else.

> Well my guess would be that the changes from proprietary JDK to
> OpenJDK invalidate
> a lot of these tests.  The crypto failures I guess will be looking for
> an algorithm that's not
> in the crypto that was finally released.

Yes, some of the crypto related fails seem to depend on some old
(obfuscated) names of the old provider.

> In summary, in most cases it's the tests that need fixing.

I do believe most fails can be resolved by actually cleaning up the
tests indeed.

> > If possible it would be nice if distributions could integrate this into
> > their package build process and make the results available just like the
> > integrated mauve testing the fedora and ubuntu are now doing (would
> > someone care to integrate that into the icedtea build proper?)
>
> I'd be interested to see the results -- do all Mauve tests now pass for IcedTea?

The fedora build log of icedtea can be found at:
http://koji.fedoraproject.org/koji/packageinfo?packageID=5920
The mauve results are part of the actual build.log like:
http://koji.fedoraproject.org/koji/getfile?taskID=596057&name=build.log
(Warning! Very big! Mauve results should be at the end, look for "MAUVE
TESTING", except that they aren't because of errors... Lillian/Tom could
you take a look at that?)

Cheers,

Mark



From mark at klomp.org  Tue May 20 02:32:33 2008
From: mark at klomp.org (Mark Wielaard)
Date: Tue, 20 May 2008 11:32:33 +0200
Subject: jtreg testing integrated
In-Reply-To: <1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
Message-ID: <1211275953.3284.33.camel@dijkstra.wildebeest.org>

Hi Martin,

On Mon, 2008-05-19 at 08:30 -0700, Martin Buchholz wrote:
> On Mon, May 19, 2008 at 7:56 AM, Andrew John Hughes
>  wrote:
> > 2008/5/19 Mark Wielaard :
> >>
> >> make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
> >> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
> >> of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
> >> don't come with any tests. This takes about 3 hours on my machine.
> 
> Once upon a time, I wrote a test that made sure the hotspot
> and jdk library's idea of the current version and supported targets
> were in sync.  Unfortunately, it is not a requirement on hotspot
> integrations that they pass this test, so the test starts failing whenever
> hotspot starts supporting the class file version number for the next
> major release.  At least this is a strong hint to the javac team to
> catch up soon by incrementing their supported targets, etc...

In this case it is a more mundane version check failure:
tools/javac/versions/check.sh
javac thinks its version isn't 1.6.0, but javac 1.6.0-internal

> I like a policy of "Read my lips; no new test failures" but OpenJDK
> is not quite there; we get test failure creep when changes in
> one component break another component's tests.

Yes, that would be idea. At least for openjdk6/icedtea we seem to be
pretty close actually. It will be more challenging for openjdk7. I
haven't quite figured out all the dynamics around "workspace
integration". But I assume we can get the master tree to zero fail and
then demand that any integration cycle doesn't introduce regressions.

> The jtreg tests were originally designed to be run only by Sun JDK
> development and test engineers.  If someone can come up with a
> portable way of testing network services (like ftp clients) without
> setting up a dedicated machine with a well-known name, that
> would be good.  Alternatively, making the name of this
> machine configurable when jtreg is run would also
> be an improvement, and a much simpler one.  But the obvious
> idea of using environment variables doesn't work.  Most environment
> variables are not passed to the running java test program.

Making it configurable, or even ignorable with keywords would be crucial
for distribution testing. Most distributions don't allow their build
daemons to access the network. But for quality control it is essential
that they do run the full test suite.

I haven't made an inventory of what services would be needed on a
machine to be replace javaweb.sfbay.sun.com with a public machine, but
we can certainly run some services on icedtea.classpath.org or maybe one
of the openjdk.java.net machines.

> If it's considered acceptable for IcedTea hackers to get their
> hands dirty with not-100%-free technology, y'all could try
> running the jtreg tests against IcedTea, vanilla OpenJDK7,
> OpenJDK6, and JDK 6u6, and comparing the test failures.

:) Well, the whole idea behind IcedTea is to provide an OpenJDK
derivative that doesn't depend on any non-free build or runtime
requirements.

But I am certainly interested in comparing results. I do think OpenJDK6
and IcedTea are now so close that we shouldn't be seeing any test result
differences between the two.

That brings up the question how to export a JTreport/JTwork environment.
I only posted the text results http://icedtea.classpath.org/~mjw/jtreg/
since the JTreport and JTwork files have all kinds of hard coded
absolute path references. It would be nice to be able to export it all
so I can upload it to some public site for others to look at and compare
with.

Cheers,

MArk



From mark at klomp.org  Tue May 20 02:41:00 2008
From: mark at klomp.org (Mark Wielaard)
Date: Tue, 20 May 2008 11:41:00 +0200
Subject: jtreg testing integrated
In-Reply-To: <4831B203.6050305@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
Message-ID: <1211276460.3284.39.camel@dijkstra.wildebeest.org>

Hi Joe,

On Mon, 2008-05-19 at 09:59 -0700, Joseph D. Darcy wrote:
> Mark Wielaard wrote:
> > On Mon, 2008-05-19 at 11:21 +0200, Mark Wielaard wrote:
> >> make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
> >> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
> >> of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
> >> don't come with any tests. This takes about 3 hours on my machine.
> > 
> > Uploaded the text summary files if someone wants to compare results, or
> > if someone is looking for a test failure to work on:
> > http://icedtea.classpath.org/~mjw/jtreg/
> > 
> > The final result for jdk was:
> > Test results: passed: 2,658; failed: 134; error: 7
>
> Last week, I started taking another look at the jtreg test results 
> inside Sun.  As has been noted, some of the tests are invalid for 
> OpenJDK 6.  I've started correcting them and some fixes will be in the 
> next source drop.

That is great. Do you have results published somewhere already to
compare with? Are there any tests you need help with or don't have time
for at the moment?

I think the most important thing is making sure the tests don't depend
on any sun internal only servers. That seems to solve the largest part
of the failures we are currently seeing.

Cheers,

Mark



From martinrb at google.com  Tue May 20 05:36:23 2008
From: martinrb at google.com (Martin Buchholz)
Date: Tue, 20 May 2008 05:36:23 -0700
Subject: jtreg testing integrated
In-Reply-To: <48320814.7070201@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>
	<1ccfd1c10805191433i66f23073w7575d9d46acbdb6e@mail.gmail.com>
	<48320814.7070201@sun.com>
Message-ID: <1ccfd1c10805200536y3df6ed11id6b0476eec250572@mail.gmail.com>

Wait, now I remember, I used to wear the integrator hat too,
and I wanted the ability to data-mine a long series of javatest runs.
I never tackled that problem.

The general problem is really hard.
You want a report that says things like

Test FOO has been failing intermittently since the Ides of March,
but only on 64-bit x86 platforms.

Martin

On Mon, May 19, 2008 at 4:07 PM, Jonathan Gibbons
 wrote:
> Martin,
>
> (removed compiler-dev)
>
> Your comments about unsymmetric runs are interesting.  jtdiff performs an
> n-way
> comparison, and I'd want to keep that functionality.
>
> The two use cases I had in mind were:
>
> -- Given a set of nightly builds on a set of platforms, compare the results
> across
>   all the platforms, and report differences
>
> -- Given the same set of nightly builds on a set of platforms, for each
> platform
>   perform a pair-wise comparison against the corresponding results last
> night/week/month.
>
> I'll see about adding an option to specify a reference set of results, for
> your
> "developer time" use case.
>


From martinrb at google.com  Tue May 20 06:00:53 2008
From: martinrb at google.com (Martin Buchholz)
Date: Tue, 20 May 2008 06:00:53 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211275953.3284.33.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
Message-ID: <1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>

On Tue, May 20, 2008 at 2:32 AM, Mark Wielaard  wrote:
>> I like a policy of "Read my lips; no new test failures" but OpenJDK
>> is not quite there; we get test failure creep when changes in
>> one component break another component's tests.
>
> Yes, that would be idea. At least for openjdk6/icedtea we seem to be
> pretty close actually. It will be more challenging for openjdk7. I
> haven't quite figured out all the dynamics around "workspace
> integration". But I assume we can get the master tree to zero fail and
> then demand that any integration cycle doesn't introduce regressions.

There are too many tests to require team integrators to run
them all on each integration cycle.  For a few years I've advocated
adding another level to the tree of workspaces.  My model is to
rename the current MASTER workspace to PURGATORY, and
add a "golden MASTER".
The idea is that once a week or so all tests are run exhaustively,
and when it is confirmed that there are no new test failures,
the tested code from PURGATORY is promoted to MASTER.

> That brings up the question how to export a JTreport/JTwork environment.
> I only posted the text results http://icedtea.classpath.org/~mjw/jtreg/
> since the JTreport and JTwork files have all kinds of hard coded
> absolute path references. It would be nice to be able to export it all
> so I can upload it to some public site for others to look at and compare
> with.

My (unavailable) diff-javatest script had to contend with absolute
paths in the html in the report directory as well.  It made paths
relative by removing root dirs.  It would be good if javatest's output
was made more "portable" in this sense.  It's hard, because you
really do want direct pointers to failing tests and .jtr files, and
their location relative to the report directory cannot in general
be relativized.

Martin


From bugzilla-daemon at icedtea.classpath.org  Tue May 20 06:58:06 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 20 May 2008 13:58:06 +0000
Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath!
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152





------- Comment #2 from langel at redhat.com  2008-05-20 13:58 -------
I am able to reproduce this by building icedtea with ecj. 


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From bugzilla-daemon at icedtea.classpath.org  Tue May 20 07:08:22 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 20 May 2008 14:08:22 +0000
Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath!
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152





------- Comment #3 from neugens at limasoftware.net  2008-05-20 14:08 -------
Adding -client to the ecj script wrapper, will solve this issue for me.


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From Jonathan.Gibbons at Sun.COM  Tue May 20 08:04:31 2008
From: Jonathan.Gibbons at Sun.COM (Jonathan Gibbons)
Date: Tue, 20 May 2008 08:04:31 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211271835.31722.31.camel@imac523d.theobroma-systems.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>
	<1ccfd1c10805191433i66f23073w7575d9d46acbdb6e@mail.gmail.com>
	<48320814.7070201@sun.com>
	<1211271835.31722.31.camel@imac523d.theobroma-systems.com>
Message-ID: <3692E890-F5C7-489B-9FED-BB01F0368238@Sun.COM>

Twisti,

As I said, jtreg is (just) a relatively simple n-way diff program for  
comparing sets of jtreg results.

By itself, it does not provide any infrastructure for maintaining  
those results for wider later
comparison. However, if you were to organize your results into a  
directory tree such as
	jtreg/DATE/PLATFORM
then it should be reasonably easy to write scripts to the platform- 
wide or date-based
comparison runs.  I don't think I mentioned yesterday, jtdiff has an  
Ant task too,
so maybe you can do the processing you need inside Ant. You should  
also be able to
invoke jtdiff directly from other Java code too.

-- Jon



On May 20, 2008, at 1:23 AM, Christian Thalinger wrote:

> On Mon, 2008-05-19 at 16:07 -0700, Jonathan Gibbons wrote:
>> Martin,
>>
>> (removed compiler-dev)
>>
>> Your comments about unsymmetric runs are interesting.  jtdiff  
>> performs
>> an n-way
>> comparison, and I'd want to keep that functionality.
>>
>> The two use cases I had in mind were:
>>
>> -- Given a set of nightly builds on a set of platforms, compare the 
>> results across
>>    all the platforms, and report differences
>>
>> -- Given the same set of nightly builds on a set of platforms, for  
>> each 
>> platform
>>    perform a pair-wise comparison against the corresponding results
>> last night/week/month.
>
> That's exactly what I want to have.  Does jtdiff currently support
> anything of the above?
>
> - twisti
>



From Jonathan.Gibbons at Sun.COM  Tue May 20 08:10:09 2008
From: Jonathan.Gibbons at Sun.COM (Jonathan Gibbons)
Date: Tue, 20 May 2008 08:10:09 -0700
Subject: jtreg testing integrated
In-Reply-To: <1ccfd1c10805200536y3df6ed11id6b0476eec250572@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>
	<1ccfd1c10805191433i66f23073w7575d9d46acbdb6e@mail.gmail.com>
	<48320814.7070201@sun.com>
	<1ccfd1c10805200536y3df6ed11id6b0476eec250572@mail.gmail.com>
Message-ID: <267A8587-D86F-4B86-9525-E9F45271FF77@Sun.COM>

Martin,

One benefit of jtdiff is that it only requires you to keep the  
summary.txt file, and not the whole report or work directory.
So, it might be possible to keep more historical data and analyse it  
going forward.

Also, jtdiff has "pluggable output formatters", so you could write an  
XML output formatter and just keep jtdiff reports
and analyse those for historical trends.

-- Jon


On May 20, 2008, at 5:36 AM, Martin Buchholz wrote:

> Wait, now I remember, I used to wear the integrator hat too,
> and I wanted the ability to data-mine a long series of javatest runs.
> I never tackled that problem.
>
> The general problem is really hard.
> You want a report that says things like
>
> Test FOO has been failing intermittently since the Ides of March,
> but only on 64-bit x86 platforms.
>
> Martin
>
> On Mon, May 19, 2008 at 4:07 PM, Jonathan Gibbons
>  wrote:
>> Martin,
>>
>> (removed compiler-dev)
>>
>> Your comments about unsymmetric runs are interesting.  jtdiff  
>> performs an
>> n-way
>> comparison, and I'd want to keep that functionality.
>>
>> The two use cases I had in mind were:
>>
>> -- Given a set of nightly builds on a set of platforms, compare the  
>> results
>> across
>>  all the platforms, and report differences
>>
>> -- Given the same set of nightly builds on a set of platforms, for  
>> each
>> platform
>>  perform a pair-wise comparison against the corresponding results  
>> last
>> night/week/month.
>>
>> I'll see about adding an option to specify a reference set of  
>> results, for
>> your
>> "developer time" use case.
>>



From langel at redhat.com  Tue May 20 08:15:44 2008
From: langel at redhat.com (Lillian Angel)
Date: Tue, 20 May 2008 15:15:44 +0000
Subject: changeset in /hg/icedtea6: 2008-05-20  Lillian Angel  

changeset 47be7e06b551 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=47be7e06b551
description:
	2008-05-20  Lillian Angel  

	        * Makefile.am: Updated JAVAC calls so ecj wrapper script is used.
	        * Makefile.in: Regenerated.
	        * aclocal.m4: Likewise.
	        * configure: Likewise.
	        * javac.in: Updated to use source 1.6 instead of 1.5.

diffstat:

6 files changed, 340 insertions(+), 490 deletions(-)
ChangeLog   |    8 
Makefile.am |   76 +-----
Makefile.in |   76 +-----
aclocal.m4  |   22 --
configure   |  646 ++++++++++++++++++++++++++---------------------------------
javac.in    |    2 

diffs (truncated from 1506 to 500 lines):

diff -r f42fc832db86 -r 47be7e06b551 ChangeLog
--- a/ChangeLog	Mon May 19 10:33:03 2008 +0200
+++ b/ChangeLog	Tue May 20 11:15:37 2008 -0400
@@ -1,3 +1,11 @@ 2008-05-19  Mark Wielaard  
+
+	* Makefile.am: Updated JAVAC calls so ecj wrapper script is used.
+	* Makefile.in: Regenerated.
+	* aclocal.m4: Likewise.
+	* configure: Likewise.
+	* javac.in: Updated to use source 1.6 instead of 1.5.
+
 2008-05-19  Mark Wielaard  
 
 	* test/jtreg/com/sun/javatest/lib/*.java: Added.
diff -r f42fc832db86 -r 47be7e06b551 Makefile.am
--- a/Makefile.am	Mon May 19 10:33:03 2008 +0200
+++ b/Makefile.am	Tue May 20 11:15:37 2008 -0400
@@ -793,17 +793,10 @@ hotspot-tools-source-files.txt: stamps/e
 	mkdir -p lib/hotspot-tools
 
 stamps/hotspot-tools-class-files.stamp: hotspot-tools-source-files.txt
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-	then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools -bootclasspath '' -source 1.6 \
-	    -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-	    @$< ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	    -bootclasspath '' -source 1.6 \
-            -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-            @$< ; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+	  -source 1.6 \
+	  -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
+	  -bootclasspath '' @$<
 	mkdir -p stamps
 	touch stamps/hotspot-tools-class-files.stamp
 
@@ -816,16 +809,9 @@ clean-hotspot-tools:
 # tools.jar
 bootstrap/jdk1.7.0/jre/lib/tools.jar: stamps/hotspot-tools-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib/
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-    	  $(JAR) cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
-	    -C lib/hotspot-tools org -C lib/hotspot-tools java \
-	    -C lib/hotspot-tools javax ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
-            -C lib/hotspot-tools org -C lib/hotspot-tools java \
-            -C lib/hotspot-tools javax ; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+          -C lib/hotspot-tools org -C lib/hotspot-tools java \
+          -C lib/hotspot-tools javax
 	if test -d bootstrap/ecj ; \
 	then \
 	  mkdir -p bootstrap/ecj/lib/; \
@@ -839,17 +825,10 @@ rt-source-files.txt: stamps/extract.stam
 
 stamps/rt-class-files.stamp: rt-source-files.txt
 	mkdir -p lib/rt
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt -bootclasspath '' -source 1.6 \
-          -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          @$< ; \
-        else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-	  -bootclasspath '' -source 1.6 \
-          -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          @$< ; \
-        fi
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
+	  -source 1.6 \
+	  -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
+	  -bootclasspath '' @$<
 	cp -r rt/net/sourceforge/jnlp/resources \
 	  lib/rt/net/sourceforge/jnlp/
 	mkdir -p stamps
@@ -863,14 +842,8 @@ clean-rt:
 # rt-closed.jar.
 bootstrap/jdk1.7.0/jre/lib/rt-closed.jar: stamps/rt-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-          $(JAR) cf $@ -C lib/rt com -C lib/rt java \
-          -C lib/rt javax -C lib/rt sun -C lib/rt net; \
-	else \
-          $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt java \
-          -C lib/rt javax -C lib/rt net -C lib/rt sun; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt java \
+          -C lib/rt javax -C lib/rt net -C lib/rt sun
 	if test -d bootstrap/ecj/jre/lib ; \
 	then \
 	  cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar bootstrap/ecj/jre/lib/rt.jar; \
@@ -883,17 +856,10 @@ stamps/extra-class-files.stamp: extra-so
 stamps/extra-class-files.stamp: extra-source-files.txt \
 	bootstrap/jdk1.7.0/jre/lib/rt-closed.jar
 	mkdir -p extra-lib
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-	  then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d extra-lib -bootclasspath '' -source 1.6 \
-	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
-		@extra-source-files.txt ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
-	    -bootclasspath '' -source 1.6 \
-	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
-		@extra-source-files.txt ; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
+	  -source 1.6 \
+ 	  -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
+	  -bootclasspath '' extra-source-files.txt
 	cp -r extra/net/sourceforge/jnlp/about/resources \
 	  extra-lib/net/sourceforge/jnlp/about
 	mkdir -p stamps
@@ -905,13 +871,7 @@ clean-extra:
 	rm -f extra-source-files.txt
 
 extra-lib/about.jar: stamps/extra-class-files.stamp
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-	  then \
-	  $(JAR) cf $@ -C extra-lib net ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C extra-lib net ; \
-	fi
-
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C extra-lib net
 # gcjwebplugin.so.
 gcjwebplugin.so: gcjwebplugin.cc
 	if test "$(ENABLE_PLUGIN)" == "yes" ; \
diff -r f42fc832db86 -r 47be7e06b551 Makefile.in
--- a/Makefile.in	Mon May 19 10:33:03 2008 +0200
+++ b/Makefile.in	Tue May 20 11:15:37 2008 -0400
@@ -1229,17 +1229,10 @@ hotspot-tools-source-files.txt: stamps/e
 	mkdir -p lib/hotspot-tools
 
 stamps/hotspot-tools-class-files.stamp: hotspot-tools-source-files.txt
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-	then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools -bootclasspath '' -source 1.6 \
-	    -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-	    @$< ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	    -bootclasspath '' -source 1.6 \
-            -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-            @$< ; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+	  -source 1.6 \
+	  -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
+	  -bootclasspath '' @$<
 	mkdir -p stamps
 	touch stamps/hotspot-tools-class-files.stamp
 
@@ -1252,16 +1245,9 @@ clean-hotspot-tools:
 # tools.jar
 bootstrap/jdk1.7.0/jre/lib/tools.jar: stamps/hotspot-tools-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib/
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-    	  $(JAR) cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
-	    -C lib/hotspot-tools org -C lib/hotspot-tools java \
-	    -C lib/hotspot-tools javax ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
-            -C lib/hotspot-tools org -C lib/hotspot-tools java \
-            -C lib/hotspot-tools javax ; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+          -C lib/hotspot-tools org -C lib/hotspot-tools java \
+          -C lib/hotspot-tools javax
 	if test -d bootstrap/ecj ; \
 	then \
 	  mkdir -p bootstrap/ecj/lib/; \
@@ -1275,17 +1261,10 @@ rt-source-files.txt: stamps/extract.stam
 
 stamps/rt-class-files.stamp: rt-source-files.txt
 	mkdir -p lib/rt
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt -bootclasspath '' -source 1.6 \
-          -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          @$< ; \
-        else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-	  -bootclasspath '' -source 1.6 \
-          -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          @$< ; \
-        fi
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
+	  -source 1.6 \
+	  -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
+	  -bootclasspath '' @$<
 	cp -r rt/net/sourceforge/jnlp/resources \
 	  lib/rt/net/sourceforge/jnlp/
 	mkdir -p stamps
@@ -1299,14 +1278,8 @@ clean-rt:
 # rt-closed.jar.
 bootstrap/jdk1.7.0/jre/lib/rt-closed.jar: stamps/rt-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-          $(JAR) cf $@ -C lib/rt com -C lib/rt java \
-          -C lib/rt javax -C lib/rt sun -C lib/rt net; \
-	else \
-          $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt java \
-          -C lib/rt javax -C lib/rt net -C lib/rt sun; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt java \
+          -C lib/rt javax -C lib/rt net -C lib/rt sun
 	if test -d bootstrap/ecj/jre/lib ; \
 	then \
 	  cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar bootstrap/ecj/jre/lib/rt.jar; \
@@ -1319,17 +1292,10 @@ stamps/extra-class-files.stamp: extra-so
 stamps/extra-class-files.stamp: extra-source-files.txt \
 	bootstrap/jdk1.7.0/jre/lib/rt-closed.jar
 	mkdir -p extra-lib
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-	  then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d extra-lib -bootclasspath '' -source 1.6 \
-	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
-		@extra-source-files.txt ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
-	    -bootclasspath '' -source 1.6 \
-	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
-		@extra-source-files.txt ; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
+	  -source 1.6 \
+ 	  -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
+	  -bootclasspath '' extra-source-files.txt
 	cp -r extra/net/sourceforge/jnlp/about/resources \
 	  extra-lib/net/sourceforge/jnlp/about
 	mkdir -p stamps
@@ -1341,13 +1307,7 @@ clean-extra:
 	rm -f extra-source-files.txt
 
 extra-lib/about.jar: stamps/extra-class-files.stamp
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-	  then \
-	  $(JAR) cf $@ -C extra-lib net ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C extra-lib net ; \
-	fi
-
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C extra-lib net
 # gcjwebplugin.so.
 gcjwebplugin.so: gcjwebplugin.cc
 	if test "$(ENABLE_PLUGIN)" == "yes" ; \
diff -r f42fc832db86 -r 47be7e06b551 aclocal.m4
--- a/aclocal.m4	Mon May 19 10:33:03 2008 +0200
+++ b/aclocal.m4	Tue May 20 11:15:37 2008 -0400
@@ -87,16 +87,14 @@ fi])
 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
 # ---------------------------------------------
 m4_define([_PKG_CONFIG],
-[if test -n "$PKG_CONFIG"; then
-    if test -n "$$1"; then
-        pkg_cv_[]$1="$$1"
-    else
-        PKG_CHECK_EXISTS([$3],
-                         [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
-			 [pkg_failed=yes])
-    fi
-else
-	pkg_failed=untried
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
 fi[]dnl
 ])# _PKG_CONFIG
 
@@ -140,9 +138,9 @@ if test $pkg_failed = yes; then
 if test $pkg_failed = yes; then
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
         else 
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
diff -r f42fc832db86 -r 47be7e06b551 configure
--- a/configure	Mon May 19 10:33:03 2008 +0200
+++ b/configure	Tue May 20 11:15:37 2008 -0400
@@ -10222,11 +10222,10 @@ pkg_failed=no
 { echo "$as_me:$LINENO: checking for XPROTO" >&5
 echo $ECHO_N "checking for XPROTO... $ECHO_C" >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XPROTO_CFLAGS"; then
-        pkg_cv_XPROTO_CFLAGS="$XPROTO_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XPROTO_CFLAGS"; then
+    pkg_cv_XPROTO_CFLAGS="$XPROTO_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xproto\"") >&5
   ($PKG_CONFIG --exists --print-errors "xproto") 2>&5
   ac_status=$?
@@ -10236,15 +10235,13 @@ else
 else
   pkg_failed=yes
 fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XPROTO_LIBS"; then
-        pkg_cv_XPROTO_LIBS="$XPROTO_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
+ else
+    pkg_failed=untried
+fi
+if test -n "$XPROTO_LIBS"; then
+    pkg_cv_XPROTO_LIBS="$XPROTO_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xproto\"") >&5
   ($PKG_CONFIG --exists --print-errors "xproto") 2>&5
   ac_status=$?
@@ -10254,9 +10251,8 @@ else
 else
   pkg_failed=yes
 fi
-    fi
-else
-	pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
 
 
@@ -10269,9 +10265,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        XPROTO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xproto"`
+	        XPROTO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xproto" 2>&1`
         else
-	        XPROTO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xproto"`
+	        XPROTO_PKG_ERRORS=`$PKG_CONFIG --print-errors "xproto" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$XPROTO_PKG_ERRORS" >&5
@@ -10304,11 +10300,10 @@ pkg_failed=no
 { echo "$as_me:$LINENO: checking for XT" >&5
 echo $ECHO_N "checking for XT... $ECHO_C" >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XT_CFLAGS"; then
-        pkg_cv_XT_CFLAGS="$XT_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XT_CFLAGS"; then
+    pkg_cv_XT_CFLAGS="$XT_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xt\"") >&5
   ($PKG_CONFIG --exists --print-errors "xt") 2>&5
   ac_status=$?
@@ -10318,15 +10313,13 @@ else
 else
   pkg_failed=yes
 fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XT_LIBS"; then
-        pkg_cv_XT_LIBS="$XT_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
+ else
+    pkg_failed=untried
+fi
+if test -n "$XT_LIBS"; then
+    pkg_cv_XT_LIBS="$XT_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xt\"") >&5
   ($PKG_CONFIG --exists --print-errors "xt") 2>&5
   ac_status=$?
@@ -10336,9 +10329,8 @@ else
 else
   pkg_failed=yes
 fi
-    fi
-else
-	pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
 
 
@@ -10351,9 +10343,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        XT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xt"`
+	        XT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xt" 2>&1`
         else
-	        XT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xt"`
+	        XT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xt" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$XT_PKG_ERRORS" >&5
@@ -10386,11 +10378,10 @@ pkg_failed=no
 { echo "$as_me:$LINENO: checking for XP" >&5
 echo $ECHO_N "checking for XP... $ECHO_C" >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XP_CFLAGS"; then
-        pkg_cv_XP_CFLAGS="$XP_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XP_CFLAGS"; then
+    pkg_cv_XP_CFLAGS="$XP_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xp\"") >&5
   ($PKG_CONFIG --exists --print-errors "xp") 2>&5
   ac_status=$?
@@ -10400,15 +10391,13 @@ else
 else
   pkg_failed=yes
 fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XP_LIBS"; then
-        pkg_cv_XP_LIBS="$XP_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
+ else
+    pkg_failed=untried
+fi
+if test -n "$XP_LIBS"; then
+    pkg_cv_XP_LIBS="$XP_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xp\"") >&5
   ($PKG_CONFIG --exists --print-errors "xp") 2>&5
   ac_status=$?
@@ -10418,9 +10407,8 @@ else
 else
   pkg_failed=yes
 fi
-    fi
-else
-	pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
 
 
@@ -10433,9 +10421,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        XP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xp"`
+	        XP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xp" 2>&1`
         else
-	        XP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xp"`
+	        XP_PKG_ERRORS=`$PKG_CONFIG --print-errors "xp" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$XP_PKG_ERRORS" >&5
@@ -10468,11 +10456,10 @@ pkg_failed=no
 { echo "$as_me:$LINENO: checking for X11" >&5
 echo $ECHO_N "checking for X11... $ECHO_C" >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$X11_CFLAGS"; then
-        pkg_cv_X11_CFLAGS="$X11_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$X11_CFLAGS"; then
+    pkg_cv_X11_CFLAGS="$X11_CFLAGS"


From bugzilla-daemon at icedtea.classpath.org  Tue May 20 08:16:31 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 20 May 2008 15:16:31 +0000
Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath!
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152





------- Comment #4 from langel at redhat.com  2008-05-20 15:16 -------
I committed a fix for the problem i was having. I tried adding the -client
option to the ecj wrapper script, but it did not accept that option. Do you
have a patch that i can test and commit for you?


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From Jonathan.Gibbons at Sun.COM  Tue May 20 08:24:09 2008
From: Jonathan.Gibbons at Sun.COM (Jonathan Gibbons)
Date: Tue, 20 May 2008 08:24:09 -0700
Subject: jtreg testing integrated
In-Reply-To: <1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
	<1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
Message-ID: 


On May 20, 2008, at 6:00 AM, Martin Buchholz wrote:
>
> My (unavailable) diff-javatest script had to contend with absolute
> paths in the html in the report directory as well.  It made paths
> relative by removing root dirs.  It would be good if javatest's output
> was made more "portable" in this sense.  It's hard, because you
> really do want direct pointers to failing tests and .jtr files, and
> their location relative to the report directory cannot in general
> be relativized.
>
> Martin

In times past, we tried to resolve the "report" problem you describe
within JavaTest. We actually tried use relative pointers where possible.
The problem was that every solution we came up with broke someone's
use case.  A particularly notable problem was people running tests on
one system and then moving results around to another system.

The solution was to provide a utility called "EditLinks" within the  
JavaTest
framework. I assume it is still available within JT Harness. This is a  
simple
utility for post-processing the links within report files so that you  
can move
report files and work directories around as you choose.

[ Another possibility in the JT Harness space is that it now has a  
much more
configurable report generator. Perhaps the time has come to look again
at the relationship between the work and report directories.  JT Harness
lives at http://jtharness.dev.java.net with a mailing list at
interest at jtharness.dev.java.net. ]

-- Jon







From langel at redhat.com  Tue May 20 08:39:44 2008
From: langel at redhat.com (Lillian Angel)
Date: Tue, 20 May 2008 15:39:44 +0000
Subject: changeset in /hg/icedtea6: 2008-05-20  Lillian Angel  

changeset 5d3d25e58930 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5d3d25e58930
description:
	2008-05-20  Lillian Angel  

	        * Makefile.am: Fixed typo.
	        * Makefile.in: Regenerated.
	        * generated/sun/awt/X11/generator/sizer.32: Regenerated.

diffstat:

3 files changed, 8 insertions(+), 2 deletions(-)
ChangeLog   |    6 ++++++
Makefile.am |    2 +-
Makefile.in |    2 +-

diffs (39 lines):

diff -r 47be7e06b551 -r 5d3d25e58930 ChangeLog
--- a/ChangeLog	Tue May 20 11:15:37 2008 -0400
+++ b/ChangeLog	Tue May 20 11:39:37 2008 -0400
@@ -1,3 +1,9 @@ 2008-05-20  Lillian Angel  
+
+	* Makefile.am: Fixed typo.
+	* Makefile.in: Regenerated.
+	* generated/sun/awt/X11/generator/sizer.32: Regenerated.
+
 2008-05-20  Lillian Angel  
 
 	* Makefile.am: Updated JAVAC calls so ecj wrapper script is used.
diff -r 47be7e06b551 -r 5d3d25e58930 Makefile.am
--- a/Makefile.am	Tue May 20 11:15:37 2008 -0400
+++ b/Makefile.am	Tue May 20 11:39:37 2008 -0400
@@ -859,7 +859,7 @@ stamps/extra-class-files.stamp: extra-so
 	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
 	  -source 1.6 \
  	  -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
-	  -bootclasspath '' extra-source-files.txt
+	  -bootclasspath '' @extra-source-files.txt
 	cp -r extra/net/sourceforge/jnlp/about/resources \
 	  extra-lib/net/sourceforge/jnlp/about
 	mkdir -p stamps
diff -r 47be7e06b551 -r 5d3d25e58930 Makefile.in
--- a/Makefile.in	Tue May 20 11:15:37 2008 -0400
+++ b/Makefile.in	Tue May 20 11:39:37 2008 -0400
@@ -1295,7 +1295,7 @@ stamps/extra-class-files.stamp: extra-so
 	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
 	  -source 1.6 \
  	  -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
-	  -bootclasspath '' extra-source-files.txt
+	  -bootclasspath '' @extra-source-files.txt
 	cp -r extra/net/sourceforge/jnlp/about/resources \
 	  extra-lib/net/sourceforge/jnlp/about
 	mkdir -p stamps
diff -r 47be7e06b551 -r 5d3d25e58930 generated/sun/awt/X11/generator/sizer.32
Binary file generated/sun/awt/X11/generator/sizer.32 has changed


From bugzilla-daemon at icedtea.classpath.org  Tue May 20 09:18:18 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 20 May 2008 16:18:18 +0000
Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath!
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152





------- Comment #5 from neugens at limasoftware.net  2008-05-20 16:18 -------
No, sorry, my fault, what I mean is that I had to add -client option inside the
ecj wrapper script directly:

[neugens at nirvana ~]$ cat /usr/bin/ecj 
#!/bin/sh

CLASSPATH=/usr/share/java/eclipse-ecj.jar${CLASSPATH:+:}$CLASSPATH \
java -client org.eclipse.jdt.internal.compiler.batch.Main "$@"

Client usually means everything is faster (faster startup times), but I'm not
sure if in this case this is right. Anyway, adding this works for me.

In the end, if you fixed this (great Lillian!) I think we can go with the
default settings, I mean, -client was the default IIRC, so if they change this
default to be -server maybe there's a reason (I'm not following HotSpot
development, so I don't really know what's happening there).

Would be nice to have a way to pass this option to the ecj wrapper, though,
just in case, I can write it for you, if you think!


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From bugzilla-daemon at icedtea.classpath.org  Tue May 20 09:19:18 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Tue, 20 May 2008 16:19:18 +0000
Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath!
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152





------- Comment #6 from neugens at limasoftware.net  2008-05-20 16:19 -------
Created an attachment (id=72)
 --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=72&action=view)
Add -client to ecj wrapper script


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From Jonathan.Gibbons at Sun.COM  Tue May 20 09:56:51 2008
From: Jonathan.Gibbons at Sun.COM (Jonathan Gibbons)
Date: Tue, 20 May 2008 09:56:51 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211275953.3284.33.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
Message-ID: <4B402212-E420-4EBF-87F1-CDB4FF648620@sun.com>


On May 20, 2008, at 2:32 AM, Mark Wielaard wrote:

> Hi Martin,
>
> On Mon, 2008-05-19 at 08:30 -0700, Martin Buchholz wrote:
>> On Mon, May 19, 2008 at 7:56 AM, Andrew John Hughes
>>  wrote:
>>> 2008/5/19 Mark Wielaard :
>>>>
>>>> make jtregcheck -k runs the testsuites of hotspot (4 tests, all  
>>>> PASS),
>>>> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875  
>>>> tests
>>>> of which about 130 fail - rerunning tests now). corba, jaxp and  
>>>> jaxws
>>>> don't come with any tests. This takes about 3 hours on my machine.
>>
>> Once upon a time, I wrote a test that made sure the hotspot
>> and jdk library's idea of the current version and supported targets
>> were in sync.  Unfortunately, it is not a requirement on hotspot
>> integrations that they pass this test, so the test starts failing  
>> whenever
>> hotspot starts supporting the class file version number for the next
>> major release.  At least this is a strong hint to the javac team to
>> catch up soon by incrementing their supported targets, etc...
>
> In this case it is a more mundane version check failure:
> tools/javac/versions/check.sh
> javac thinks its version isn't 1.6.0, but javac 1.6.0-internal
>
>> I like a policy of "Read my lips; no new test failures" but OpenJDK
>> is not quite there; we get test failure creep when changes in
>> one component break another component's tests.
>
> Yes, that would be idea. At least for openjdk6/icedtea we seem to be
> pretty close actually. It will be more challenging for openjdk7. I
> haven't quite figured out all the dynamics around "workspace
> integration". But I assume we can get the master tree to zero fail and
> then demand that any integration cycle doesn't introduce regressions.
>
>> The jtreg tests were originally designed to be run only by Sun JDK
>> development and test engineers.  If someone can come up with a
>> portable way of testing network services (like ftp clients) without
>> setting up a dedicated machine with a well-known name, that
>> would be good.  Alternatively, making the name of this
>> machine configurable when jtreg is run would also
>> be an improvement, and a much simpler one.  But the obvious
>> idea of using environment variables doesn't work.  Most environment
>> variables are not passed to the running java test program.
>
> Making it configurable, or even ignorable with keywords would be  
> crucial
> for distribution testing. Most distributions don't allow their build
> daemons to access the network. But for quality control it is essential
> that they do run the full test suite.

jtreg allows tests to be tagged with keyords, that can be used on the  
command
line to filter the tests to be executed.

>
>
> I haven't made an inventory of what services would be needed on a
> machine to be replace javaweb.sfbay.sun.com with a public machine, but
> we can certainly run some services on icedtea.classpath.org or maybe  
> one
> of the openjdk.java.net machines.
>
>> If it's considered acceptable for IcedTea hackers to get their
>> hands dirty with not-100%-free technology, y'all could try
>> running the jtreg tests against IcedTea, vanilla OpenJDK7,
>> OpenJDK6, and JDK 6u6, and comparing the test failures.
>
> :) Well, the whole idea behind IcedTea is to provide an OpenJDK
> derivative that doesn't depend on any non-free build or runtime
> requirements.
>
> But I am certainly interested in comparing results. I do think  
> OpenJDK6
> and IcedTea are now so close that we shouldn't be seeing any test  
> result
> differences between the two.
>
> That brings up the question how to export a JTreport/JTwork  
> environment.
> I only posted the text results http://icedtea.classpath.org/~mjw/ 
> jtreg/
> since the JTreport and JTwork files have all kinds of hard coded
> absolute path references. It would be nice to be able to export it all
> so I can upload it to some public site for others to look at and  
> compare
> with.

At a minimum, you'd want to publish the summary.txt files from the  
report directory.
Note also that JT Harness comes with a couple of servlets you can  
install for pretty
viewing .jtr and .jtx files.

>
>
> Cheers,
>
> MArk
>



From langel at redhat.com  Wed May 21 06:41:30 2008
From: langel at redhat.com (Lillian Angel)
Date: Wed, 21 May 2008 13:41:30 +0000
Subject: changeset in /hg/icedtea: 2008-05-21  Lillian Angel  

changeset aeba6ca27fc7 in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=aeba6ca27fc7
description:
	2008-05-21  Lillian Angel  

	        * .hgignore: Updated.
	        * Makefile.am: Updated to build with ecj properly.
	        * Makefile.in: Regenerated.
	        * aclocal.m4: Likewise.
	        * configure: Likewise.
	        * javac.in: Changed to use 1.6 source.

diffstat:

7 files changed, 405 insertions(+), 523 deletions(-)
.hgignore   |    1 
ChangeLog   |    9 
Makefile.am |   47 ---
Makefile.in |   79 ++----
aclocal.m4  |   70 +++--
configure   |  720 ++++++++++++++++++++++++++---------------------------------
javac.in    |    2 

diffs (truncated from 1755 to 500 lines):

diff -r e7d89bb4ea85 -r aeba6ca27fc7 .hgignore
--- a/.hgignore	Thu Mar 27 10:41:54 2008 -0400
+++ b/.hgignore	Wed May 21 09:41:23 2008 -0400
@@ -16,6 +16,7 @@ IcedTeaPlugin.so
 IcedTeaPlugin.so
 rt-source-files.txt
 hotspot-tools-source-files.txt
+hotspot-tools/
 rt/com/sun/jdi/AbsentInformationException.java
 rt/com/sun/jdi/Accessible.java
 rt/com/sun/jdi/ArrayReference.java
diff -r e7d89bb4ea85 -r aeba6ca27fc7 ChangeLog
--- a/ChangeLog	Thu Mar 27 10:41:54 2008 -0400
+++ b/ChangeLog	Wed May 21 09:41:23 2008 -0400
@@ -1,3 +1,12 @@ 2008-03-27  Joshua Sumali  
+
+	* .hgignore: Updated.
+	* Makefile.am: Updated to build with ecj properly.
+	* Makefile.in: Regenerated.
+	* aclocal.m4: Likewise.
+	* configure: Likewise.
+	* javac.in: Changed to use 1.6 source.
+
 2008-03-27  Joshua Sumali  
 
 	* Makefile.am: Added icedtea-netx-applet-visibility.patch.
diff -r e7d89bb4ea85 -r aeba6ca27fc7 Makefile.am
--- a/Makefile.am	Thu Mar 27 10:41:54 2008 -0400
+++ b/Makefile.am	Wed May 21 09:41:23 2008 -0400
@@ -747,17 +747,10 @@ hotspot-tools-source-files.txt: stamps/c
 	mkdir -p lib/hotspot-tools
 
 stamps/hotspot-tools-class-files.stamp: hotspot-tools-source-files.txt
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-	then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools -bootclasspath '' -source 1.6 \
-	    -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-	    @$< ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	    -bootclasspath '' -source 1.6 \
-            -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-            @$< ; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+	  -source 1.6 \
+          -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
+          -bootclasspath '' @$<
 	mkdir -p stamps
 	touch stamps/hotspot-tools-class-files.stamp
 
@@ -770,16 +763,9 @@ clean-hotspot-tools:
 # tools.jar
 bootstrap/jdk1.7.0/jre/lib/tools.jar: stamps/hotspot-tools-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib/
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-    	  $(JAR) cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
-	    -C lib/hotspot-tools org -C lib/hotspot-tools gnu -C lib/hotspot-tools java \
-	    -C lib/hotspot-tools javax ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
             -C lib/hotspot-tools org -C lib/hotspot-tools gnu -C lib/hotspot-tools java \
-            -C lib/hotspot-tools javax ; \
-	fi
+            -C lib/hotspot-tools javax
 	if test -d bootstrap/ecj ; \
 	then \
 	  mkdir -p bootstrap/ecj/lib/; \
@@ -793,17 +779,10 @@ rt-source-files.txt: stamps/clone.stamp 
 
 stamps/rt-class-files.stamp: rt-source-files.txt
 	mkdir -p lib/rt
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt -bootclasspath '' -source 1.6 \
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
+	  -source 1.6 \
           -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          @$< ; \
-        else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-	  -bootclasspath '' -source 1.6 \
-          -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          @$< ; \
-        fi
+          -bootclasspath '' @$<
 	cp -r rt/net/sourceforge/jnlp/resources \
 	  lib/rt/net/sourceforge/jnlp/
 	mkdir -p stamps
@@ -817,14 +796,8 @@ clean-rt:
 # rt-closed.jar.
 bootstrap/jdk1.7.0/jre/lib/rt-closed.jar: stamps/rt-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-          $(JAR) cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
           -C lib/rt javax -C lib/rt sun -C lib/rt org -C lib/rt net ; \
-	else \
-          $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
-          -C lib/rt javax -C lib/rt sun -C lib/rt org -C lib/rt net ; \
-	fi
 	if test -d bootstrap/ecj/jre/lib ; \
 	then \
 	  cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar bootstrap/ecj/jre/lib/rt.jar; \
diff -r e7d89bb4ea85 -r aeba6ca27fc7 Makefile.in
--- a/Makefile.in	Thu Mar 27 10:41:54 2008 -0400
+++ b/Makefile.in	Wed May 21 09:41:23 2008 -0400
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -498,6 +498,10 @@ dist-bzip2: distdir
 	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
 	$(am__remove_distdir)
 
+dist-lzma: distdir
+	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+	$(am__remove_distdir)
+
 dist-tarZ: distdir
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
 	$(am__remove_distdir)
@@ -524,6 +528,8 @@ distcheck: dist
 	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
 	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.lzma*) \
+	  unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
@@ -667,17 +673,17 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local am--refresh check check-am clean \
-	clean-generic dist dist-all dist-bzip2 dist-gzip dist-shar \
-	dist-tarZ dist-zip distcheck distclean distclean-generic \
-	distclean-local distcleancheck distdir distuninstallcheck dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am uninstall uninstall-am
+	clean-generic dist dist-all dist-bzip2 dist-gzip dist-lzma \
+	dist-shar dist-tarZ dist-zip distcheck distclean \
+	distclean-generic distclean-local distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
 
 
 # Top-Level Targets
@@ -1148,17 +1154,10 @@ hotspot-tools-source-files.txt: stamps/c
 	mkdir -p lib/hotspot-tools
 
 stamps/hotspot-tools-class-files.stamp: hotspot-tools-source-files.txt
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-	then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools -bootclasspath '' -source 1.6 \
-	    -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-	    @$< ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	    -bootclasspath '' -source 1.6 \
-            -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-            @$< ; \
-	fi
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+	  -source 1.6 \
+          -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
+          -bootclasspath '' @$<
 	mkdir -p stamps
 	touch stamps/hotspot-tools-class-files.stamp
 
@@ -1171,16 +1170,9 @@ clean-hotspot-tools:
 # tools.jar
 bootstrap/jdk1.7.0/jre/lib/tools.jar: stamps/hotspot-tools-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib/
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-    	  $(JAR) cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
-	    -C lib/hotspot-tools org -C lib/hotspot-tools gnu -C lib/hotspot-tools java \
-	    -C lib/hotspot-tools javax ; \
-	else \
-	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
             -C lib/hotspot-tools org -C lib/hotspot-tools gnu -C lib/hotspot-tools java \
-            -C lib/hotspot-tools javax ; \
-	fi
+            -C lib/hotspot-tools javax
 	if test -d bootstrap/ecj ; \
 	then \
 	  mkdir -p bootstrap/ecj/lib/; \
@@ -1194,17 +1186,10 @@ rt-source-files.txt: stamps/clone.stamp 
 
 stamps/rt-class-files.stamp: rt-source-files.txt
 	mkdir -p lib/rt
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt -bootclasspath '' -source 1.6 \
+	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
+	  -source 1.6 \
           -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          @$< ; \
-        else \
-	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-	  -bootclasspath '' -source 1.6 \
-          -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          @$< ; \
-        fi
+          -bootclasspath '' @$<
 	cp -r rt/net/sourceforge/jnlp/resources \
 	  lib/rt/net/sourceforge/jnlp/
 	mkdir -p stamps
@@ -1218,14 +1203,8 @@ clean-rt:
 # rt-closed.jar.
 bootstrap/jdk1.7.0/jre/lib/rt-closed.jar: stamps/rt-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib
-	if ! test -f stamps/icedtea-ecj.stamp ; \
-        then \
-          $(JAR) cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
+	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
           -C lib/rt javax -C lib/rt sun -C lib/rt org -C lib/rt net ; \
-	else \
-          $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
-          -C lib/rt javax -C lib/rt sun -C lib/rt org -C lib/rt net ; \
-	fi
 	if test -d bootstrap/ecj/jre/lib ; \
 	then \
 	  cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar bootstrap/ecj/jre/lib/rt.jar; \
diff -r e7d89bb4ea85 -r aeba6ca27fc7 aclocal.m4
--- a/aclocal.m4	Thu Mar 27 10:41:54 2008 -0400
+++ b/aclocal.m4	Wed May 21 09:41:23 2008 -0400
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.10 -*- Autoconf -*-
+# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -11,10 +11,13 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-m4_if(m4_PACKAGE_VERSION, [2.61],,
-[m4_fatal([this file was generated for autoconf 2.61.
-You have another version of autoconf.  If you want to use that,
-you should regenerate the build system entirely.], [63])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(AC_AUTOCONF_VERSION, [2.61],,
+[m4_warning([this file was generated for autoconf 2.61.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
 # 
@@ -84,16 +87,14 @@ fi])
 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
 # ---------------------------------------------
 m4_define([_PKG_CONFIG],
-[if test -n "$PKG_CONFIG"; then
-    if test -n "$$1"; then
-        pkg_cv_[]$1="$$1"
-    else
-        PKG_CHECK_EXISTS([$3],
-                         [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
-			 [pkg_failed=yes])
-    fi
-else
-	pkg_failed=untried
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
 fi[]dnl
 ])# _PKG_CONFIG
 
@@ -137,9 +138,9 @@ if test $pkg_failed = yes; then
 if test $pkg_failed = yes; then
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
         else 
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
@@ -174,7 +175,7 @@ fi[]dnl
 fi[]dnl
 ])# PKG_CHECK_MODULES
 
-# Copyright (C) 2002, 2003, 2005, 2006  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -189,7 +190,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
 [am__api_version='1.10'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.10], [],
+m4_if([$1], [1.10.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -205,8 +206,10 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.10])dnl
-_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)])
+[AM_AUTOMAKE_VERSION([1.10.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
@@ -478,7 +481,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS
   # each Makefile.in and add a new line on top of each file to say so.
   # Grep'ing the whole file is not good either: AIX grep has a line
   # limit of 2048, but all sed's we know have understand at least 4000.
-  if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
+  if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
     dirpart=`AS_DIRNAME("$mf")`
   else
     continue
@@ -526,13 +529,13 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS]
 # Do all the work for Automake.                             -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 12
+# 2005, 2006, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 13
 
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
@@ -637,16 +640,17 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJC],
 # our stamp files there.
 AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
 [# Compute $1's index in $config_headers.
+_am_arg=$1
 _am_stamp_count=1
 for _am_header in $config_headers :; do
   case $_am_header in
-    $1 | $1:* )
+    $_am_arg | $_am_arg:* )
       break ;;
     * )
       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
   esac
 done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
 # Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
 #
@@ -935,7 +939,7 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
-# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in.
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
 # This macro is traced by Automake.
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
diff -r e7d89bb4ea85 -r aeba6ca27fc7 configure
--- a/configure	Thu Mar 27 10:41:54 2008 -0400
+++ b/configure	Wed May 21 09:41:23 2008 -0400
@@ -8668,11 +8668,10 @@ pkg_failed=no
 { echo "$as_me:$LINENO: checking for XPROTO" >&5
 echo $ECHO_N "checking for XPROTO... $ECHO_C" >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XPROTO_CFLAGS"; then
-        pkg_cv_XPROTO_CFLAGS="$XPROTO_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XPROTO_CFLAGS"; then
+    pkg_cv_XPROTO_CFLAGS="$XPROTO_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xproto\"") >&5
   ($PKG_CONFIG --exists --print-errors "xproto") 2>&5
   ac_status=$?
@@ -8682,15 +8681,13 @@ else
 else
   pkg_failed=yes
 fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XPROTO_LIBS"; then
-        pkg_cv_XPROTO_LIBS="$XPROTO_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
+ else
+    pkg_failed=untried
+fi
+if test -n "$XPROTO_LIBS"; then
+    pkg_cv_XPROTO_LIBS="$XPROTO_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xproto\"") >&5
   ($PKG_CONFIG --exists --print-errors "xproto") 2>&5
   ac_status=$?
@@ -8700,9 +8697,8 @@ else
 else
   pkg_failed=yes
 fi
-    fi
-else
-	pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
 
 
@@ -8715,9 +8711,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        XPROTO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xproto"`
+	        XPROTO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xproto" 2>&1`
         else
-	        XPROTO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xproto"`
+	        XPROTO_PKG_ERRORS=`$PKG_CONFIG --print-errors "xproto" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$XPROTO_PKG_ERRORS" >&5
@@ -8750,11 +8746,10 @@ pkg_failed=no
 { echo "$as_me:$LINENO: checking for XT" >&5
 echo $ECHO_N "checking for XT... $ECHO_C" >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XT_CFLAGS"; then
-        pkg_cv_XT_CFLAGS="$XT_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XT_CFLAGS"; then
+    pkg_cv_XT_CFLAGS="$XT_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xt\"") >&5
   ($PKG_CONFIG --exists --print-errors "xt") 2>&5
   ac_status=$?
@@ -8764,15 +8759,13 @@ else
 else
   pkg_failed=yes
 fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XT_LIBS"; then
-        pkg_cv_XT_LIBS="$XT_LIBS"


From langel at redhat.com  Wed May 21 08:13:34 2008
From: langel at redhat.com (Lillian Angel)
Date: Wed, 21 May 2008 15:13:34 +0000
Subject: changeset in /hg/icedtea: 2008-05-21  Lillian Angel  

changeset 18827b149f3b in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=18827b149f3b
description:
	2008-05-21  Lillian Angel  

	        * generated/sun/awt/X11/generator/sizer.32: Regenerated.
	        * patches/icedtea-libraries.patch: Updated LDLIBS.

diffstat:

2 files changed, 6 insertions(+), 1 deletion(-)
ChangeLog                       |    5 +++++
patches/icedtea-libraries.patch |    2 +-

diffs (26 lines):

diff -r aeba6ca27fc7 -r 18827b149f3b ChangeLog
--- a/ChangeLog	Wed May 21 09:41:23 2008 -0400
+++ b/ChangeLog	Wed May 21 11:13:29 2008 -0400
@@ -1,3 +1,8 @@ 2008-05-21  Lillian Angel  
+
+	* generated/sun/awt/X11/generator/sizer.32: Regenerated.
+	* patches/icedtea-libraries.patch: Updated LDLIBS.
+
 2008-05-21  Lillian Angel  
 
 	* .hgignore: Updated.
diff -r aeba6ca27fc7 -r 18827b149f3b generated/sun/awt/X11/generator/sizer.32
Binary file generated/sun/awt/X11/generator/sizer.32 has changed
diff -r aeba6ca27fc7 -r 18827b149f3b patches/icedtea-libraries.patch
--- a/patches/icedtea-libraries.patch	Wed May 21 09:41:23 2008 -0400
+++ b/patches/icedtea-libraries.patch	Wed May 21 11:13:29 2008 -0400
@@ -4,7 +4,7 @@
  include $(BUILDDIR)/common/Mapfile-vers.gmk
  include $(BUILDDIR)/common/Library.gmk
  
-+LDLIBS += -ljpeg -ldl 
++LDLIBS += -ldl 
 +
  #
  # Add to ambient vpath to get files in a subdirectory


From gnu_andrew at member.fsf.org  Wed May 21 10:04:24 2008
From: gnu_andrew at member.fsf.org (Andrew John Hughes)
Date: Wed, 21 May 2008 18:04:24 +0100
Subject: Porting Hotspot to other platforms / OS'es
In-Reply-To: <483423C5.3080109@neuweiler.biz>
References: <483423C5.3080109@neuweiler.biz>
Message-ID: <17c6771e0805211004t317793b4ide487fd84717dcd6@mail.gmail.com>

On 21/05/2008, Michael Neuweiler  wrote:
>
>  Hi,
>
>  I wanted to start porting OpenJDK to Syllable on Intel32 but got stuck with
> the chicken and egg problem of hotspot: "you need a running JDK to build a
> new one".
>
>  What are your recommendations to start a port? Is cross-compiling the only
> solution or are there other ways?
>  I think I saw once that an XSLT is started with an already installed
> JRE/JDK during the build process on my Linux machine. Is this the only
> reason why a JRE has to be installed?
>
>  Any help would be greatly appreciated!
>
>  Regards,
>   Michael Neuweiler
>
>

(Adding distro-pkg-dev too)

My understanding, both from building OpenJDK quite a number of times
and from my own general thoughts on the issues of building a Java
environment, is that bootstrapping the JDK through its standard build
process is more than just handling XSLT.

The first thing you're likely to run across is that there are no
current Java compilers (as far as I know) that are not written in Java
-- the main two are ecj from Eclipse and javac itself.  The first
thing the OpenJDK build process does is build javac and the other
language tools.  The current build not only depends on an existing
javac to do this,  but a full-scale JDK to run ant.  My personal
feelings are that it would have been better to stick with make for the
langtools, but oh well...

If my memory serves correctly, this is followed by JAXWS and JAXP,
both of which require Java.  Thus, a sensible course of action might
be to approach building HotSpot alone first.  Assuming this is
possible (I have my doubts about it also including Java code), you
could then use this to run an existing JAR file containing the tools
to build.

The reason I've CCed distro-pkg-dev on this is that a lot of work on
bootstrapping on unsupported architectures (mainly the CPU rather than
the OS) has been done under the auspices of the IcedTea
(http://icedtea.classpath.org/) project.  Here, we've found gcj to be
useful in breaking this bootstrapping cycle -- do you know if GCC
(which includes gcj) is available for the platform you are working on?
This might be the simplest course of action.

Looking forward to hearing how this works out for you,
-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


From Joe.Darcy at Sun.COM  Wed May 21 11:37:59 2008
From: Joe.Darcy at Sun.COM (Joseph D. Darcy)
Date: Wed, 21 May 2008 11:37:59 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211276460.3284.39.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
Message-ID: <48346C07.3010404@sun.com>

Hello Mark.

Mark Wielaard wrote:
> Hi Joe,
>
> On Mon, 2008-05-19 at 09:59 -0700, Joseph D. Darcy wrote:
>   
>> Mark Wielaard wrote:
>>     
>>> On Mon, 2008-05-19 at 11:21 +0200, Mark Wielaard wrote:
>>>       
>>>> make jtregcheck -k runs the testsuites of hotspot (4 tests, all PASS),
>>>> langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875 tests
>>>> of which about 130 fail - rerunning tests now). corba, jaxp and jaxws
>>>> don't come with any tests. This takes about 3 hours on my machine.
>>>>         
>>> Uploaded the text summary files if someone wants to compare results, or
>>> if someone is looking for a test failure to work on:
>>> http://icedtea.classpath.org/~mjw/jtreg/
>>>
>>> The final result for jdk was:
>>> Test results: passed: 2,658; failed: 134; error: 7
>>>       
>> Last week, I started taking another look at the jtreg test results 
>> inside Sun.  As has been noted, some of the tests are invalid for 
>> OpenJDK 6.  I've started correcting them and some fixes will be in the 
>> next source drop.
>>     
>
> That is great. Do you have results published somewhere already to
> compare with?

I don't have tests published at the moment, but I'll publish results on 
my blog (http://blogs.sun.com/darcy) for the next build, b10, which 
should be arriving soon.  For b09, on a Solaris SPARC run I got around 
regression 65 test failures on OpenJDK 6; some of tests have since been 
fixed and other failures should be resolved by work that was been done 
in b10.  (The tests relying on the Sun-internal servers pass, but that 
isn't too helpful to people outside Sun's firewall :-)

>  Are there any tests you need help with or don't have time
> for at the moment?
>   

Thanks for the offer!  Let's look at this again after the next build.

> I think the most important thing is making sure the tests don't depend
> on any sun internal only servers. That seems to solve the largest part
> of the failures we are currently seeing.
>   

Those may take a little while to figure out a good fix in the sense of 
still testing the networking code outside Sun's firewall as opposed to 
just adding "if(!insideSun()) pass" logic.  I'll talk to the networking 
team about this.

On a related note, there are times where it could be useful for a test 
to have somewhat different behavior on Sun's production JDK versus 
OpenJDK.  For example, I'm the author of the 
java/lang/reflect/Generics/Probe.java test which fails on OpenJDK since 
it references some production-only classes.  There are a few options to 
fix this.  One way would be to remove all reference to the 
production-only classes, which would reduce the usefulness of the test 
for the production code; conversely, the whole test could be moved to 
closed, reducing the test coverage of OpenJDK.  The test could be split 
into open and closed parts, complicating maintenance.  So instead I 
changed the test to only look at the production classes for a production 
build.  I test for a production build using

System.getProperty("java.runtime.name").startsWith("Java(TM)")

Out of the box, our OpenJDK builds have "java.runtime.name" start with 
"OpenJDK"; is that true in your IcedTea/OpenJDK builds too?

For the javax/script tests, I was going to add "if (no javascript engine 
and production JDK) fail else note/warning" logic so that our production 
build gets the same coverage and if an OpenJDK build come with a 
javascript engine, it would get testing too.

Cheers,

-Joe


From gnu_andrew at member.fsf.org  Wed May 21 14:14:23 2008
From: gnu_andrew at member.fsf.org (Andrew John Hughes)
Date: Wed, 21 May 2008 22:14:23 +0100
Subject: jtreg testing integrated
In-Reply-To: <48346C07.3010404@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
Message-ID: <17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>

On 21/05/2008, Joseph D. Darcy  wrote:
> Hello Mark.
>
>  Mark Wielaard wrote:
>
> > Hi Joe,
> >
> > On Mon, 2008-05-19 at 09:59 -0700, Joseph D. Darcy wrote:
> >
> >
> > > Mark Wielaard wrote:
> > >
> > >
> > > > On Mon, 2008-05-19 at 11:21 +0200, Mark Wielaard wrote:
> > > >
> > > >
> > > > > make jtregcheck -k runs the testsuites of hotspot (4 tests, all
> PASS),
> > > > > langtools (1,342 PASS, 1 FAIL - the version check) and jdk (2,875
> tests
> > > > > of which about 130 fail - rerunning tests now). corba, jaxp and
> jaxws
> > > > > don't come with any tests. This takes about 3 hours on my machine.
> > > > >
> > > > >
> > > > Uploaded the text summary files if someone wants to compare results,
> or
> > > > if someone is looking for a test failure to work on:
> > > > http://icedtea.classpath.org/~mjw/jtreg/
> > > >
> > > > The final result for jdk was:
> > > > Test results: passed: 2,658; failed: 134; error: 7
> > > >
> > > >
> > > Last week, I started taking another look at the jtreg test results
> inside Sun.  As has been noted, some of the tests are invalid for OpenJDK 6.
>  I've started correcting them and some fixes will be in the next source
> drop.
> > >
> > >
> >
> > That is great. Do you have results published somewhere already to
> > compare with?
> >
>
>  I don't have tests published at the moment, but I'll publish results on my
> blog (http://blogs.sun.com/darcy) for the next build, b10, which should be
> arriving soon.  For b09, on a Solaris SPARC run I got around regression 65
> test failures on OpenJDK 6; some of tests have since been fixed and other
> failures should be resolved by work that was been done in b10.  (The tests
> relying on the Sun-internal servers pass, but that isn't too helpful to
> people outside Sun's firewall :-)
>
>
> >  Are there any tests you need help with or don't have time
> > for at the moment?
> >
> >
>
>  Thanks for the offer!  Let's look at this again after the next build.
>

That's the benefit of community involvement :)

>
> > I think the most important thing is making sure the tests don't depend
> > on any sun internal only servers. That seems to solve the largest part
> > of the failures we are currently seeing.
> >
> >
>
>  Those may take a little while to figure out a good fix in the sense of
> still testing the networking code outside Sun's firewall as opposed to just
> adding "if(!insideSun()) pass" logic.  I'll talk to the networking team
> about this.
>

Well I don't believe anyone was suggesting such a simplistic hack.  We
need a well-known external host with good uptime that would handle
such requests without breaking a sweat.

>  On a related note, there are times where it could be useful for a test to
> have somewhat different behavior on Sun's production JDK versus OpenJDK.
> For example, I'm the author of the
> java/lang/reflect/Generics/Probe.java test which fails on
> OpenJDK since it references some production-only classes.  There are a few
> options to fix this.  One way would be to remove all reference to the
> production-only classes, which would reduce the usefulness of the test for
> the production code; conversely, the whole test could be moved to closed,
> reducing the test coverage of OpenJDK.  The test could be split into open
> and closed parts, complicating maintenance.  So instead I changed the test
> to only look at the production classes for a production build.  I test for a
> production build using
>
>  System.getProperty("java.runtime.name").startsWith("Java(TM)")
>
>  Out of the box, our OpenJDK builds have "java.runtime.name" start with
> "OpenJDK"; is that true in your IcedTea/OpenJDK builds too?
>

I assume what you mean by a 'production build' is the code being used
to build a proprietary JDK with additional non-Free classes.  If this
is the case, I would hope that, in the long term, these will no longer
be needed and the 'production build' will be just a build from the
GPLed codebase like any other.  I mention this because I think the
term could be a little disparaging to outsiders, as it implies only a
build with proprietary Sun code is considered production ready.

I wouldn't add any code to rely on the name of a build from the GPLed
code.  It's just asking for trouble further down the line.  Besides,
by including such tests, you're effectively wrongly favouring some
GPLed distributions over others.

Is a test for the production system (with an appropriate comment so we
know that's what it is) not sufficient?

>  For the javax/script tests, I was going to add "if (no javascript engine
> and production JDK) fail else note/warning" logic so that our production
> build gets the same coverage and if an OpenJDK build come with a javascript
> engine, it would get testing too.
>

Wouldn't testing the result of
ScriptEngineManager.getEngineFactories() suffice? Why do you need to
specifically test for a production build?

>  Cheers,
>
>  -Joe
>


-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


From Joe.Darcy at Sun.COM  Wed May 21 16:04:41 2008
From: Joe.Darcy at Sun.COM (Joseph D. Darcy)
Date: Wed, 21 May 2008 16:04:41 -0700
Subject: jtreg testing integrated
In-Reply-To: <17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
Message-ID: <4834AA89.40001@sun.com>

Hello Andrew.

Andrew John Hughes wrote:
> On 21/05/2008, Joseph D. Darcy  wrote:
>> Hello Mark.
>>
>>  Mark Wielaard wrote:
>>
>>> Hi Joe,
>>>
>>> On Mon, 2008-05-19 at 09:59 -0700, Joseph D. Darcy wrote:
>>>
>>>
>>>> Mark Wielaard wrote:
>>>>
>>>>
>>>>> On Mon, 2008-05-19 at 11:21 +0200, Mark Wielaard wrote:

[snip]

>>  Those may take a little while to figure out a good fix in the sense of
>> still testing the networking code outside Sun's firewall as opposed to just
>> adding "if(!insideSun()) pass" logic.  I'll talk to the networking team
>> about this.
>>
> 
> Well I don't believe anyone was suggesting such a simplistic hack.  We
> need a well-known external host with good uptime that would handle
> such requests without breaking a sweat.

Or at least information about what kinds of services are expected so 
they could be replicated elsewhere.

>>  On a related note, there are times where it could be useful for a test to
>> have somewhat different behavior on Sun's production JDK versus OpenJDK.
>> For example, I'm the author of the
>> java/lang/reflect/Generics/Probe.java test which fails on
>> OpenJDK since it references some production-only classes.  There are a few
>> options to fix this.  One way would be to remove all reference to the
>> production-only classes, which would reduce the usefulness of the test for
>> the production code; conversely, the whole test could be moved to closed,
>> reducing the test coverage of OpenJDK.  The test could be split into open
>> and closed parts, complicating maintenance.  So instead I changed the test
>> to only look at the production classes for a production build.  I test for a
>> production build using
>>
>>  System.getProperty("java.runtime.name").startsWith("Java(TM)")
>>
>>  Out of the box, our OpenJDK builds have "java.runtime.name" start with
>> "OpenJDK"; is that true in your IcedTea/OpenJDK builds too?
>>
> 
> I assume what you mean by a 'production build' is the code being used
> to build a proprietary JDK with additional non-Free classes.  If this

Yes, by "production build" I mean a build of Sun's product binaries with 
the non-Free, non-open bits.

> is the case, I would hope that, in the long term, these will no longer
> be needed and the 'production build' will be just a build from the
> GPLed codebase like any other.

That would certainly make the engineering easier :-)

>  I mention this because I think the
> term could be a little disparaging to outsiders, as it implies only a
> build with proprietary Sun code is considered production ready.

Yes, getting accurate, descriptive, and neutral (and concise) wording 
can be tricky, as "proprietary" is also disparaging in some contexts ;-)

> I wouldn't add any code to rely on the name of a build from the GPLed
> code.  It's just asking for trouble further down the line.  Besides,
> by including such tests, you're effectively wrongly favouring some
> GPLed distributions over others.

Well, the tests in question come with the code, both under GPL, so if 
someone wanted to have java.runtime.name=Fred for some reason, the tests 
in question could be updated to expect "Fred" instead.

> Is a test for the production system (with an appropriate comment so we
> know that's what it is) not sufficient?

That is probably sufficient for the cases in question.

There are really three cases of possible interest: Sun's traditional 
(proprietary) product bits, a "usual" OpenJDK build, and something else. 
  A "usual" OpenJDK build perhaps is something yet to come about; I'm 
thinking there may be conventions we all choose to follow as good 
practices that may affect how the tests are written in some way.  A 
"something else" build would, say, be based on the OpenJDK code, but 
choose to go against usual practice in some manner.

The cases currently under consideration just need to make a decision 
based on "Sun's traditional (proprietary) product" versus "not Sun's 
traditional (proprietary) product."

>>  For the javax/script tests, I was going to add "if (no javascript engine
>> and production JDK) fail else note/warning" logic so that our production
>> build gets the same coverage and if an OpenJDK build come with a javascript
>> engine, it would get testing too.
>>
> 
> Wouldn't testing the result of
> ScriptEngineManager.getEngineFactories() suffice? Why do you need to
> specifically test for a production build?

In Sun's proprietary product JDK we've chosen to ship a javascript 
engine; this is *not* required by the specification.  The OpenJDK 
sources do not include a javascript engine; although people could add 
one of course.  I'd like the tests to require javascript to be present 
in Sun's proprietary product JDK; otherwise, if a javascript engine 
happens to be present, it should be tested the same way, but not having 
the engine shouldn't be fatal.  This would preserve the same degree of 
testing of the product bits, allow the tests to pass out of the box for 
an OpenJDK build, and perform the same tests for an OpenJDK  build if an 
engine happens to be present.

-Joe


From gnu_andrew at member.fsf.org  Wed May 21 17:02:25 2008
From: gnu_andrew at member.fsf.org (Andrew John Hughes)
Date: Thu, 22 May 2008 01:02:25 +0100
Subject: jtreg testing integrated
In-Reply-To: <4834AA89.40001@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
	<4834AA89.40001@sun.com>
Message-ID: <17c6771e0805211702x6c2d5955tf9cbecc07d5c3d26@mail.gmail.com>

snip...
> >  I mention this because I think the
> > term could be a little disparaging to outsiders, as it implies only a
> > build with proprietary Sun code is considered production ready.
> >
>
>  Yes, getting accurate, descriptive, and neutral (and concise) wording can
> be tricky, as "proprietary" is also disparaging in some contexts ;-)
>

Er... it's very much intended to be disparaging.  There's a good basis
for that, whereas I don't see one for simply classifying all other
builds as below the standard of this 'production build' -- well,
outside Sun anyway :)

>
> > I wouldn't add any code to rely on the name of a build from the GPLed
> > code.  It's just asking for trouble further down the line.  Besides,
> > by including such tests, you're effectively wrongly favouring some
> > GPLed distributions over others.
> >
>
>  Well, the tests in question come with the code, both under GPL, so if
> someone wanted to have java.runtime.name=Fred for some reason, the tests in
> question could be updated to expect "Fred" instead.
>
>

I must be missing something but I don't see why:

if (proprietaryBuild)
  doX();
else
  doY();

is a problem, given its the proprietary build that needs a special
case.  Otherwise you're inconveniencing every other build for the sake
of one.

> > Is a test for the production system (with an appropriate comment so we
> > know that's what it is) not sufficient?
> >
>
>  That is probably sufficient for the cases in question.
>
>  There are really three cases of possible interest: Sun's traditional
> (proprietary) product bits, a "usual" OpenJDK build, and something else.  A
> "usual" OpenJDK build perhaps is something yet to come about; I'm thinking
> there may be conventions we all choose to follow as good practices that may
> affect how the tests are written in some way.  A "something else" build
> would, say, be based on the OpenJDK code, but choose to go against usual
> practice in some manner.
>
>  The cases currently under consideration just need to make a decision based
> on "Sun's traditional (proprietary) product" versus "not Sun's traditional
> (proprietary) product."
>

Ah that seems to agree with what I said above :)

>
> >
> > >  For the javax/script tests, I was going to add "if (no javascript
> engine
> > > and production JDK) fail else note/warning" logic so that our production
> > > build gets the same coverage and if an OpenJDK build come with a
> javascript
> > > engine, it would get testing too.
> > >
> > >
> >
> > Wouldn't testing the result of
> > ScriptEngineManager.getEngineFactories() suffice? Why do
> you need to
> > specifically test for a production build?
> >
>
>  In Sun's proprietary product JDK we've chosen to ship a javascript engine;
> this is *not* required by the specification.  The OpenJDK sources do not
> include a javascript engine; although people could add one of course.  I'd
> like the tests to require javascript to be present in Sun's proprietary
> product JDK; otherwise, if a javascript engine happens to be present, it
> should be tested the same way, but not having the engine shouldn't be fatal.
>  This would preserve the same degree of testing of the product bits, allow
> the tests to pass out of the box for an OpenJDK build, and perform the same
> tests for an OpenJDK  build if an engine happens to be present.
>

So I see two things to test for in that case:

1. Is a Javascript implementation provided?
2.  Do we require one as part of this test run?

The latter could be a property, which would be set for a proprietary
build and any other where someone wants to require that a JS
implementation is provided.
I guess a similar case will be needed for SNMP.

>  -Joe
>

-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


From gnu_andrew at member.fsf.org  Wed May 21 17:23:29 2008
From: gnu_andrew at member.fsf.org (Andrew John Hughes)
Date: Thu, 22 May 2008 01:23:29 +0100
Subject: jtreg testing integrated
In-Reply-To: <17c6771e0805211702x6c2d5955tf9cbecc07d5c3d26@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
	<4834AA89.40001@sun.com>
	<17c6771e0805211702x6c2d5955tf9cbecc07d5c3d26@mail.gmail.com>
Message-ID: <17c6771e0805211723h60ee30fhdb1f68da9ec8108d@mail.gmail.com>

>  >  Yes, getting accurate, descriptive, and neutral (and concise) wording can
>  > be tricky, as "proprietary" is also disparaging in some contexts ;-)
>  >
>
>
> Er... it's very much intended to be disparaging.  There's a good basis
>  for that, whereas I don't see one for simply classifying all other
>  builds as below the standard of this 'production build' -- well,
>  outside Sun anyway :)
>

It occurred to me I should probably clarify this a little more, and
the rest of the discussion with a little context.

OpenJDK is pretty much the first extended content I and many other GNU
Classpath/GCJ/etc. developers have had with Sun's JDK.  Prior to this,
if it was used at all, it would be to run a simple test case because
the output differed between the Classpath implementation and Sun's
reference implementation.  Certainly no-one who worked on these
projects will have seen the source code; this is a pre-requisite for
this work.

This is still very much the case; with the use of IcedTea you are
seeing a switch not from shipping Sun's proprietary JDK but from
shipping a variety of Classpath-based solutions.  The proprietary JDK
doesn't really enter into the mainstream of most distributions such as
Fedora, Debian or Ubuntu.  If it's packaged at all, it lurks in a
separate repository for non-Free packages.

Thus, I get a little alarmed when I read comments about special cases
being added to the GPLed implementation to handle issues with the
proprietary JDK.  This is not because this is inherently wrong, but
simply because I can foresee this causing additional problems or
inconveniences for those who are now packaging and shipping OpenJDK.
Indeed, I believe Mark started looking into this specifically for this
reason; so that the tests could be run on the OpenJDK being packaged
in distributions and so the community could have a goal to work
towards in fixing any issues.

So I apologise if any of my comments read as being abrasive or as not
understanding the issues of Sun's 'production build'.  But it's
something very foreign to us, and something I'd expect to remain so,
while the production build remains a proprietary product.
-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


From doko at ubuntu.com  Wed May 21 23:44:58 2008
From: doko at ubuntu.com (Matthias Klose)
Date: Thu, 22 May 2008 08:44:58 +0200
Subject: jtreg testing integrated
In-Reply-To: <17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>	<1211202423.5783.30.camel@dijkstra.wildebeest.org>	<4831B203.6050305@sun.com>	<1211276460.3284.39.camel@dijkstra.wildebeest.org>	<48346C07.3010404@sun.com>
	<17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
Message-ID: <4835166A.30107@ubuntu.com>

Andrew John Hughes schrieb:
> On 21/05/2008, Joseph D. Darcy  wrote:
>>> I think the most important thing is making sure the tests don't depend
>>> on any sun internal only servers. That seems to solve the largest part
>>> of the failures we are currently seeing.
>>>
>>>
>>  Those may take a little while to figure out a good fix in the sense of
>> still testing the networking code outside Sun's firewall as opposed to just
>> adding "if(!insideSun()) pass" logic.  I'll talk to the networking team
>> about this.
>>
> 
> Well I don't believe anyone was suggesting such a simplistic hack.  We
> need a well-known external host with good uptime that would handle
> such requests without breaking a sweat.

both approaches should be taken, the external server for general availability,
the extended logic to disable some tests for environments without network
access, e.g. build daemons.

  Matthias


From mark at klomp.org  Thu May 22 07:16:18 2008
From: mark at klomp.org (Mark Wielaard)
Date: Thu, 22 May 2008 16:16:18 +0200
Subject: jtreg testing integrated
In-Reply-To: <48320814.7070201@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>
	<1ccfd1c10805191433i66f23073w7575d9d46acbdb6e@mail.gmail.com>
	<48320814.7070201@sun.com>
Message-ID: <1211465778.4054.32.camel@dijkstra.wildebeest.org>

Hi Jonathan,

On Mon, 2008-05-19 at 16:07 -0700, Jonathan Gibbons wrote:
> Separately, check out the options for handling @ignore tests. Even on 
> older versions
> of jtreg you can use "-k:!ignore" to ignore @ignore tests.  (This works 
> because @ignore
> tests are given an implicit "ignore" keyword.)   With later versions of 
> jtreg, you can use
> -Ignore:{quiet,error,run} to control how @ignore tests should be 
> handled. Using this
> option, you should be to get closer to the goal of "all tests should 
> pass", meaning
> that there are less failures and so less need to compare the output 
> results with jtdiff.

This is a really a great feature! For icedtea we now use "-v1 -a
-ignore:quiet", that give output and results that should be pretty
familiar to people. And this is the set that I hope we can get to be all
PASS in the default case.

One extension might be to have a "-ignore:try" that does try to run it,
that doesn't report it failure, but that does flag it as unexpected
XPASS to alert people to bugs that are (accidentally) fixed but where
the testcase was not yet enabled.

Cheers,

Mark



From mark at klomp.org  Thu May 22 07:27:06 2008
From: mark at klomp.org (Mark Wielaard)
Date: Thu, 22 May 2008 16:27:06 +0200
Subject: jtreg testing integrated
In-Reply-To: <1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
	<1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
Message-ID: <1211466426.4054.42.camel@dijkstra.wildebeest.org>

Hi Martin,

On Tue, 2008-05-20 at 06:00 -0700, Martin Buchholz wrote:
> On Tue, May 20, 2008 at 2:32 AM, Mark Wielaard  wrote:
> >> I like a policy of "Read my lips; no new test failures" but OpenJDK
> >> is not quite there; we get test failure creep when changes in
> >> one component break another component's tests.
> >
> > Yes, that would be idea. At least for openjdk6/icedtea we seem to be
> > pretty close actually. It will be more challenging for openjdk7. I
> > haven't quite figured out all the dynamics around "workspace
> > integration". But I assume we can get the master tree to zero fail and
> > then demand that any integration cycle doesn't introduce regressions.
> 
> There are too many tests to require team integrators to run
> them all on each integration cycle.

I am not sure. It does take about 3 hours to run all the included tests
(and I assume that when we add more tests or integrate things like mauve
it will rise). But I do hope people, not just integrators, will run them
regularly. Especially when they are working on/integrating larger
patches. And we can always fall back on autobuilders so we have a full
report at least soon after something bad happens so there is some chance
to revert a change relatively quickly.

>   For a few years I've advocated
> adding another level to the tree of workspaces.  My model is to
> rename the current MASTER workspace to PURGATORY, and
> add a "golden MASTER".
> The idea is that once a week or so all tests are run exhaustively,
> and when it is confirmed that there are no new test failures,
> the tested code from PURGATORY is promoted to MASTER.

This is fascinating. Intuitively I would call for less levels instead of
more because that makes issues show up earlier. It is one of the things
I haven't really wrapped my head around. The proliferation of separate
branches/workspaces. One main master tree where all work goes into by
default and only have separate (ad hoc) branches/workspaces for larger
work items that might be destabilizing seems an easier model to work
with.

Cheers,

Mark



From langel at redhat.com  Thu May 22 07:50:56 2008
From: langel at redhat.com (Lillian Angel)
Date: Thu, 22 May 2008 14:50:56 +0000
Subject: changeset in /hg/icedtea6: 2008-05-22  Lillian Angel  

changeset e42c2b2a8b14 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=e42c2b2a8b14
description:
	2008-05-22  Lillian Angel  

	        * Makefile.am: Fixed conditions for using JAVAC.
	        * Makefile.in: Regenerated.

diffstat:

3 files changed, 123 insertions(+), 36 deletions(-)
ChangeLog   |    5 +++
Makefile.am |   77 +++++++++++++++++++++++++++++++++++++++++++++--------------
Makefile.in |   77 +++++++++++++++++++++++++++++++++++++++++++++--------------

diffs (256 lines):

diff -r 5d3d25e58930 -r e42c2b2a8b14 ChangeLog
--- a/ChangeLog	Tue May 20 11:39:37 2008 -0400
+++ b/ChangeLog	Thu May 22 10:50:51 2008 -0400
@@ -1,3 +1,8 @@ 2008-05-20  Lillian Angel  
+
+	* Makefile.am: Fixed conditions for using JAVAC.
+	* Makefile.in: Regenerated.
+
 2008-05-20  Lillian Angel  
 
 	* Makefile.am: Fixed typo.
diff -r 5d3d25e58930 -r e42c2b2a8b14 Makefile.am
--- a/Makefile.am	Tue May 20 11:39:37 2008 -0400
+++ b/Makefile.am	Thu May 22 10:50:51 2008 -0400
@@ -793,10 +793,18 @@ hotspot-tools-source-files.txt: stamps/e
 	mkdir -p lib/hotspot-tools
 
 stamps/hotspot-tools-class-files.stamp: hotspot-tools-source-files.txt
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	  -source 1.6 \
-	  -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
-	  -bootclasspath '' @$<
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+            -source 1.6 \
+            -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
+            -bootclasspath '' @$< ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+	    -source 1.6 \
+	    -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
+	    -bootclasspath '' @$< ; \
+	fi
 	mkdir -p stamps
 	touch stamps/hotspot-tools-class-files.stamp
 
@@ -809,9 +817,16 @@ clean-hotspot-tools:
 # tools.jar
 bootstrap/jdk1.7.0/jre/lib/tools.jar: stamps/hotspot-tools-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib/
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
-          -C lib/hotspot-tools org -C lib/hotspot-tools java \
-          -C lib/hotspot-tools javax
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAR) cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+            -C lib/hotspot-tools org -C lib/hotspot-tools java \
+            -C lib/hotspot-tools javax ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+            -C lib/hotspot-tools org -C lib/hotspot-tools java \
+            -C lib/hotspot-tools javax ; \
+	fi
 	if test -d bootstrap/ecj ; \
 	then \
 	  mkdir -p bootstrap/ecj/lib/; \
@@ -825,10 +840,18 @@ rt-source-files.txt: stamps/extract.stam
 
 stamps/rt-class-files.stamp: rt-source-files.txt
 	mkdir -p lib/rt
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-	  -source 1.6 \
-	  -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-	  -bootclasspath '' @$<
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt \
+	    -source 1.6 \
+	    -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
+	    -bootclasspath '' @$< ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
+            -source 1.6 \
+            -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
+            -bootclasspath '' @$< ; \
+	fi
 	cp -r rt/net/sourceforge/jnlp/resources \
 	  lib/rt/net/sourceforge/jnlp/
 	mkdir -p stamps
@@ -842,8 +865,14 @@ clean-rt:
 # rt-closed.jar.
 bootstrap/jdk1.7.0/jre/lib/rt-closed.jar: stamps/rt-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt java \
-          -C lib/rt javax -C lib/rt net -C lib/rt sun
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAR) cf $@ -C lib/rt com -C lib/rt java \
+            -C lib/rt javax -C lib/rt net -C lib/rt sun ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt java \
+            -C lib/rt javax -C lib/rt net -C lib/rt sun ; \
+	fi
 	if test -d bootstrap/ecj/jre/lib ; \
 	then \
 	  cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar bootstrap/ecj/jre/lib/rt.jar; \
@@ -856,10 +885,17 @@ stamps/extra-class-files.stamp: extra-so
 stamps/extra-class-files.stamp: extra-source-files.txt \
 	bootstrap/jdk1.7.0/jre/lib/rt-closed.jar
 	mkdir -p extra-lib
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
-	  -source 1.6 \
- 	  -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
-	  -bootclasspath '' @extra-source-files.txt
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d extra-lib \
+	    -source 1.6 \
+ 	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
+	    -bootclasspath '' @extra-source-files.txt ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
+            -source 1.6 \
+            -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
+            -bootclasspath '' @extra-source-files.txt ; \
+	fi
 	cp -r extra/net/sourceforge/jnlp/about/resources \
 	  extra-lib/net/sourceforge/jnlp/about
 	mkdir -p stamps
@@ -871,7 +907,12 @@ clean-extra:
 	rm -f extra-source-files.txt
 
 extra-lib/about.jar: stamps/extra-class-files.stamp
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C extra-lib net
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAR) cf $@ -C extra-lib net ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C extra-lib net ; \
+	fi
 # gcjwebplugin.so.
 gcjwebplugin.so: gcjwebplugin.cc
 	if test "$(ENABLE_PLUGIN)" == "yes" ; \
diff -r 5d3d25e58930 -r e42c2b2a8b14 Makefile.in
--- a/Makefile.in	Tue May 20 11:39:37 2008 -0400
+++ b/Makefile.in	Thu May 22 10:50:51 2008 -0400
@@ -1229,10 +1229,18 @@ hotspot-tools-source-files.txt: stamps/e
 	mkdir -p lib/hotspot-tools
 
 stamps/hotspot-tools-class-files.stamp: hotspot-tools-source-files.txt
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	  -source 1.6 \
-	  -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
-	  -bootclasspath '' @$<
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+            -source 1.6 \
+            -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
+            -bootclasspath '' @$< ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+	    -source 1.6 \
+	    -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
+	    -bootclasspath '' @$< ; \
+	fi
 	mkdir -p stamps
 	touch stamps/hotspot-tools-class-files.stamp
 
@@ -1245,9 +1253,16 @@ clean-hotspot-tools:
 # tools.jar
 bootstrap/jdk1.7.0/jre/lib/tools.jar: stamps/hotspot-tools-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib/
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
-          -C lib/hotspot-tools org -C lib/hotspot-tools java \
-          -C lib/hotspot-tools javax
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAR) cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+            -C lib/hotspot-tools org -C lib/hotspot-tools java \
+            -C lib/hotspot-tools javax ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+            -C lib/hotspot-tools org -C lib/hotspot-tools java \
+            -C lib/hotspot-tools javax ; \
+	fi
 	if test -d bootstrap/ecj ; \
 	then \
 	  mkdir -p bootstrap/ecj/lib/; \
@@ -1261,10 +1276,18 @@ rt-source-files.txt: stamps/extract.stam
 
 stamps/rt-class-files.stamp: rt-source-files.txt
 	mkdir -p lib/rt
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-	  -source 1.6 \
-	  -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-	  -bootclasspath '' @$<
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt \
+	    -source 1.6 \
+	    -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
+	    -bootclasspath '' @$< ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
+            -source 1.6 \
+            -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
+            -bootclasspath '' @$< ; \
+	fi
 	cp -r rt/net/sourceforge/jnlp/resources \
 	  lib/rt/net/sourceforge/jnlp/
 	mkdir -p stamps
@@ -1278,8 +1301,14 @@ clean-rt:
 # rt-closed.jar.
 bootstrap/jdk1.7.0/jre/lib/rt-closed.jar: stamps/rt-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt java \
-          -C lib/rt javax -C lib/rt net -C lib/rt sun
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAR) cf $@ -C lib/rt com -C lib/rt java \
+            -C lib/rt javax -C lib/rt net -C lib/rt sun ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt java \
+            -C lib/rt javax -C lib/rt net -C lib/rt sun ; \
+	fi
 	if test -d bootstrap/ecj/jre/lib ; \
 	then \
 	  cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar bootstrap/ecj/jre/lib/rt.jar; \
@@ -1292,10 +1321,17 @@ stamps/extra-class-files.stamp: extra-so
 stamps/extra-class-files.stamp: extra-source-files.txt \
 	bootstrap/jdk1.7.0/jre/lib/rt-closed.jar
 	mkdir -p extra-lib
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
-	  -source 1.6 \
- 	  -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
-	  -bootclasspath '' @extra-source-files.txt
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d extra-lib \
+	    -source 1.6 \
+ 	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
+	    -bootclasspath '' @extra-source-files.txt ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
+            -source 1.6 \
+            -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
+            -bootclasspath '' @extra-source-files.txt ; \
+	fi
 	cp -r extra/net/sourceforge/jnlp/about/resources \
 	  extra-lib/net/sourceforge/jnlp/about
 	mkdir -p stamps
@@ -1307,7 +1343,12 @@ clean-extra:
 	rm -f extra-source-files.txt
 
 extra-lib/about.jar: stamps/extra-class-files.stamp
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C extra-lib net
+	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
+	  $(JAR) cf $@ -C extra-lib net ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C extra-lib net ; \
+	fi
 # gcjwebplugin.so.
 gcjwebplugin.so: gcjwebplugin.cc
 	if test "$(ENABLE_PLUGIN)" == "yes" ; \


From bugzilla-daemon at icedtea.classpath.org  Thu May 22 07:53:52 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 22 May 2008 14:53:52 +0000
Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath!
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152





------- Comment #7 from langel at redhat.com  2008-05-22 14:53 -------
This definitely fixes my problem as well. Looking into the problem...

thanks


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From langel at redhat.com  Thu May 22 08:05:53 2008
From: langel at redhat.com (Lillian Angel)
Date: Thu, 22 May 2008 15:05:53 +0000
Subject: changeset in /hg/icedtea: 2008-05-22  Lillian Angel  

changeset c095c04e718e in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=c095c04e718e
description:
	2008-05-22  Lillian Angel  

	        * Makefile.am: Updated conditions to use JAVAC.
	        * Makefile.in: Regenerated.

diffstat:

3 files changed, 79 insertions(+), 20 deletions(-)
ChangeLog   |    5 +++++
Makefile.am |   47 +++++++++++++++++++++++++++++++++++++----------
Makefile.in |   47 +++++++++++++++++++++++++++++++++++++----------

diffs (174 lines):

diff -r 18827b149f3b -r c095c04e718e ChangeLog
--- a/ChangeLog	Wed May 21 11:13:29 2008 -0400
+++ b/ChangeLog	Thu May 22 11:05:48 2008 -0400
@@ -1,3 +1,8 @@ 2008-05-21  Lillian Angel  
+
+	* Makefile.am: Updated conditions to use JAVAC.
+	* Makefile.in: Regenerated.
+
 2008-05-21  Lillian Angel  
 
 	* generated/sun/awt/X11/generator/sizer.32: Regenerated.
diff -r 18827b149f3b -r c095c04e718e Makefile.am
--- a/Makefile.am	Wed May 21 11:13:29 2008 -0400
+++ b/Makefile.am	Thu May 22 11:05:48 2008 -0400
@@ -747,10 +747,17 @@ hotspot-tools-source-files.txt: stamps/c
 	mkdir -p lib/hotspot-tools
 
 stamps/hotspot-tools-class-files.stamp: hotspot-tools-source-files.txt
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	  -source 1.6 \
-          -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-          -bootclasspath '' @$<
+	if ! test -f stamps/icedtea-ecj.stamp ; \
+	then \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools -bootclasspath '' -source 1.6 \
+	    -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
+	    @$< ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+	    -bootclasspath '' -source 1.6 \
+            -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
+            @$< ; \
+	fi
 	mkdir -p stamps
 	touch stamps/hotspot-tools-class-files.stamp
 
@@ -763,9 +770,16 @@ clean-hotspot-tools:
 # tools.jar
 bootstrap/jdk1.7.0/jre/lib/tools.jar: stamps/hotspot-tools-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib/
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+	if ! test -f stamps/icedtea-ecj.stamp ; \
+        then \
+    	  $(JAR) cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+	    -C lib/hotspot-tools org -C lib/hotspot-tools gnu -C lib/hotspot-tools java \
+	    -C lib/hotspot-tools javax ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
             -C lib/hotspot-tools org -C lib/hotspot-tools gnu -C lib/hotspot-tools java \
-            -C lib/hotspot-tools javax
+            -C lib/hotspot-tools javax ; \
+	fi
 	if test -d bootstrap/ecj ; \
 	then \
 	  mkdir -p bootstrap/ecj/lib/; \
@@ -779,10 +793,17 @@ rt-source-files.txt: stamps/clone.stamp 
 
 stamps/rt-class-files.stamp: rt-source-files.txt
 	mkdir -p lib/rt
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-	  -source 1.6 \
+	if ! test -f stamps/icedtea-ecj.stamp ; \
+        then \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt -bootclasspath '' -source 1.6 \
           -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          -bootclasspath '' @$<
+          @$< ; \
+        else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
+	  -bootclasspath '' -source 1.6 \
+          -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
+          @$< ; \
+        fi
 	cp -r rt/net/sourceforge/jnlp/resources \
 	  lib/rt/net/sourceforge/jnlp/
 	mkdir -p stamps
@@ -796,8 +817,14 @@ clean-rt:
 # rt-closed.jar.
 bootstrap/jdk1.7.0/jre/lib/rt-closed.jar: stamps/rt-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
+	if ! test -f stamps/icedtea-ecj.stamp ; \
+        then \
+          $(JAR) cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
           -C lib/rt javax -C lib/rt sun -C lib/rt org -C lib/rt net ; \
+	else \
+          $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
+          -C lib/rt javax -C lib/rt sun -C lib/rt org -C lib/rt net ; \
+	fi
 	if test -d bootstrap/ecj/jre/lib ; \
 	then \
 	  cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar bootstrap/ecj/jre/lib/rt.jar; \
diff -r 18827b149f3b -r c095c04e718e Makefile.in
--- a/Makefile.in	Wed May 21 11:13:29 2008 -0400
+++ b/Makefile.in	Thu May 22 11:05:48 2008 -0400
@@ -1154,10 +1154,17 @@ hotspot-tools-source-files.txt: stamps/c
 	mkdir -p lib/hotspot-tools
 
 stamps/hotspot-tools-class-files.stamp: hotspot-tools-source-files.txt
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	  -source 1.6 \
-          -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
-          -bootclasspath '' @$<
+	if ! test -f stamps/icedtea-ecj.stamp ; \
+	then \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools -bootclasspath '' -source 1.6 \
+	    -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
+	    @$< ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
+	    -bootclasspath '' -source 1.6 \
+            -sourcepath 'rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated' \
+            @$< ; \
+	fi
 	mkdir -p stamps
 	touch stamps/hotspot-tools-class-files.stamp
 
@@ -1170,9 +1177,16 @@ clean-hotspot-tools:
 # tools.jar
 bootstrap/jdk1.7.0/jre/lib/tools.jar: stamps/hotspot-tools-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib/
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+	if ! test -f stamps/icedtea-ecj.stamp ; \
+        then \
+    	  $(JAR) cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
+	    -C lib/hotspot-tools org -C lib/hotspot-tools gnu -C lib/hotspot-tools java \
+	    -C lib/hotspot-tools javax ; \
+	else \
+	  $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/hotspot-tools com -C lib/hotspot-tools sun \
             -C lib/hotspot-tools org -C lib/hotspot-tools gnu -C lib/hotspot-tools java \
-            -C lib/hotspot-tools javax
+            -C lib/hotspot-tools javax ; \
+	fi
 	if test -d bootstrap/ecj ; \
 	then \
 	  mkdir -p bootstrap/ecj/lib/; \
@@ -1186,10 +1200,17 @@ rt-source-files.txt: stamps/clone.stamp 
 
 stamps/rt-class-files.stamp: rt-source-files.txt
 	mkdir -p lib/rt
-	$(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-	  -source 1.6 \
+	if ! test -f stamps/icedtea-ecj.stamp ; \
+        then \
+	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt -bootclasspath '' -source 1.6 \
           -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
-          -bootclasspath '' @$<
+          @$< ; \
+        else \
+	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
+	  -bootclasspath '' -source 1.6 \
+          -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
+          @$< ; \
+        fi
 	cp -r rt/net/sourceforge/jnlp/resources \
 	  lib/rt/net/sourceforge/jnlp/
 	mkdir -p stamps
@@ -1203,8 +1224,14 @@ clean-rt:
 # rt-closed.jar.
 bootstrap/jdk1.7.0/jre/lib/rt-closed.jar: stamps/rt-class-files.stamp
 	mkdir -p bootstrap/jdk1.7.0/jre/lib
-	$(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
+	if ! test -f stamps/icedtea-ecj.stamp ; \
+        then \
+          $(JAR) cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
           -C lib/rt javax -C lib/rt sun -C lib/rt org -C lib/rt net ; \
+	else \
+          $(ICEDTEA_BOOT_DIR)/bin/jar cf $@ -C lib/rt com -C lib/rt gnu -C lib/rt java \
+          -C lib/rt javax -C lib/rt sun -C lib/rt org -C lib/rt net ; \
+	fi
 	if test -d bootstrap/ecj/jre/lib ; \
 	then \
 	  cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar bootstrap/ecj/jre/lib/rt.jar; \


From bugzilla-daemon at icedtea.classpath.org  Thu May 22 08:06:38 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 22 May 2008 15:06:38 +0000
Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath!
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152





------- Comment #8 from langel at redhat.com  2008-05-22 15:06 -------
I asked gbenson- he agreed that -client should be the default and this should
be filed upstream with Sun. I will file a bug report.


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From martinrb at google.com  Thu May 22 08:12:07 2008
From: martinrb at google.com (Martin Buchholz)
Date: Thu, 22 May 2008 08:12:07 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211466426.4054.42.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
	<1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
	<1211466426.4054.42.camel@dijkstra.wildebeest.org>
Message-ID: <1ccfd1c10805220812p2a81641ct49c4f6a8cd339ca7@mail.gmail.com>

[+quality-discuss, jdk7-gk]

On Thu, May 22, 2008 at 7:27 AM, Mark Wielaard  wrote:
> Hi Martin,
>
> On Tue, 2008-05-20 at 06:00 -0700, Martin Buchholz wrote:
>> On Tue, May 20, 2008 at 2:32 AM, Mark Wielaard  wrote:
>> >> I like a policy of "Read my lips; no new test failures" but OpenJDK
>> >> is not quite there; we get test failure creep when changes in
>> >> one component break another component's tests.
>> >
>> > Yes, that would be idea. At least for openjdk6/icedtea we seem to be
>> > pretty close actually. It will be more challenging for openjdk7. I
>> > haven't quite figured out all the dynamics around "workspace
>> > integration". But I assume we can get the master tree to zero fail and
>> > then demand that any integration cycle doesn't introduce regressions.
>>
>> There are too many tests to require team integrators to run
>> them all on each integration cycle.
>
> I am not sure. It does take about 3 hours to run all the included tests
> (and I assume that when we add more tests or integrate things like mauve
> it will rise).

Not all the regression tests are open source yet, and not all the
test suites available are open source (and some are likely to be
permanently encumbered).  And we should be adding more
static analysis tools to the testing process.

It sure would be nice to run all tests with -server and -client,
and with different GCs, and on 32 and 64-bit platforms,
with Java assertions enabled and disabled,
with C++ assertions enabled and disabled.

Soon a "full" testing cycle looks like it might take a week.

But I do hope people, not just integrators, will run them
> regularly. Especially when they are working on/integrating larger
> patches. And we can always fall back on autobuilders so we have a full
> report at least soon after something bad happens so there is some chance
> to revert a change relatively quickly.

Much of the world works on this model -
commit to trunk, wait for trouble, revert.
It's certainly much cheaper, and gets feedback quicker,
but creates fear among developers ("Notoriously careless
developer X just did a commit.  I think I'll wait for a week
before pulling")

>>   For a few years I've advocated
>> adding another level to the tree of workspaces.  My model is to
>> rename the current MASTER workspace to PURGATORY, and
>> add a "golden MASTER".
>> The idea is that once a week or so all tests are run exhaustively,
>> and when it is confirmed that there are no new test failures,
>> the tested code from PURGATORY is promoted to MASTER.
>
> This is fascinating. Intuitively I would call for less levels instead of
> more because that makes issues show up earlier. It is one of the things
> I haven't really wrapped my head around. The proliferation of separate
> branches/workspaces. One main master tree where all work goes into by
> default and only have separate (ad hoc) branches/workspaces for larger
> work items that might be destabilizing seems an easier model to work
> with.

It's certainly more work for the integrators.  But for the developers
my model is simple and comfortable.  Youir integrator will give you
a workspace to commit changes to.
Commit there whenever you feel like.  Go on to the next coding task.
Your changes will take a while to percolate into MASTER,
but what do you care?
When you sync, you pull in changes from MASTER, which are
*guaranteed* to not break any of your tests.  If you want specific
changes quickly, pull from PURGATORY or a less-tested team
workspace.

If you have a project where you need to share your work
with other developers immediately,
no problem - just create a project-specific shared workspace
that all project team members can commit to directly.
Decide on a level of testing the team is comfortable with -
including none at all.

Developers in my model are more productive partly because
they don't have to be afraid of breaking other developers.
They can do enough testing for 95% confidence
(which for many changes might mean no testing at all)
then commit.  The system will push back buggy changes
automatically.

Too many times I've suffered because tests in library land
have been broken by changes in hotspot.  Nevertheless,
the JDK MASTER is remarkably stable for a project with so
many developers, largely because of the gradual integration
process, with changes going into MASTER only after being
tested by integrators.  JDK developers don't go around chatting
about "build weather" - is the build broken today?  AGAIN?

This development model doesn't work as well for most
open source projects, because they have fewer, smarter, and more
dedicated developers, so there is less need.
Also, it's hard to find good integrators.  Most people (like myself)
end up doing it as a part-time job.  But just like source code
control systems have gotten sexy, perhaps someday
"code integration and testing systems" will become sexy,
and everyone will want to write one.

Martin


From mark at klomp.org  Thu May 22 08:20:22 2008
From: mark at klomp.org (Mark Wielaard)
Date: Thu, 22 May 2008 17:20:22 +0200
Subject: jtreg testing integrated
In-Reply-To: 
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
	<1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
	
Message-ID: <1211469622.4054.48.camel@dijkstra.wildebeest.org>

Hi Jon,

On Tue, 2008-05-20 at 08:24 -0700, Jonathan Gibbons wrote:
> The solution was to provide a utility called "EditLinks" within the  
> JavaTest
> framework. I assume it is still available within JT Harness. This is a  
> simple
> utility for post-processing the links within report files so that you  
> can move
> report files and work directories around as you choose.

Heay that is pretty neat!

So I just did this in my icedtea6 dir:
$ for i in hotspot langtools jdk; do java -cp test/jtreg.jar \
  com.sun.javatest.EditLinks -e `pwd` \
  http://icedtea.classpath.org/~mjw/jtreg test/$i; done

And uploaded the results:
http://icedtea.classpath.org/~mjw/jtreg/test/

And indeed the links now work and you can get a html overview of the
failure lists and correct links to the .jtr files such as:
http://icedtea.classpath.org/~mjw/jtreg/test/jdk/JTreport/html/failed.html

Great,

Mark



From bugzilla-daemon at icedtea.classpath.org  Thu May 22 08:40:00 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 22 May 2008 15:40:00 +0000
Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath!
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152





------- Comment #9 from gbenson at redhat.com  2008-05-22 15:40 -------
No, the default is probably correct, the crash is what I meant should be filed
upstream.

FWIW there's a little heuristic that determines whether to use -client or
-server depending on number of CPUs and how much RAM, that kind of thing.  If
you're using a big enough box it'll pick -server every time.


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From langel at redhat.com  Thu May 22 09:25:28 2008
From: langel at redhat.com (Lillian Angel)
Date: Thu, 22 May 2008 16:25:28 +0000
Subject: changeset in /hg/icedtea6: Fixed typo
Message-ID: 

changeset 707fd0557fda in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=707fd0557fda
description:
	Fixed typo

diffstat:

2 files changed, 2 insertions(+)
Makefile.am |    1 +
Makefile.in |    1 +

diffs (22 lines):

diff -r e42c2b2a8b14 -r 707fd0557fda Makefile.am
--- a/Makefile.am	Thu May 22 10:50:51 2008 -0400
+++ b/Makefile.am	Thu May 22 12:25:20 2008 -0400
@@ -886,6 +886,7 @@ stamps/extra-class-files.stamp: extra-so
 	bootstrap/jdk1.7.0/jre/lib/rt-closed.jar
 	mkdir -p extra-lib
 	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
 	  $(JAVAC) $(MEMORY_LIMIT) -g -d extra-lib \
 	    -source 1.6 \
  	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
diff -r e42c2b2a8b14 -r 707fd0557fda Makefile.in
--- a/Makefile.in	Thu May 22 10:50:51 2008 -0400
+++ b/Makefile.in	Thu May 22 12:25:20 2008 -0400
@@ -1322,6 +1322,7 @@ stamps/extra-class-files.stamp: extra-so
 	bootstrap/jdk1.7.0/jre/lib/rt-closed.jar
 	mkdir -p extra-lib
 	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
+	then \
 	  $(JAVAC) $(MEMORY_LIMIT) -g -d extra-lib \
 	    -source 1.6 \
  	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \


From Jonathan.Gibbons at Sun.COM  Thu May 22 10:00:25 2008
From: Jonathan.Gibbons at Sun.COM (Jonathan Gibbons)
Date: Thu, 22 May 2008 10:00:25 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211465778.4054.32.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<7A698D2C-CC96-4117-8A8D-9F92CFFF0A2A@sun.com>
	<1ccfd1c10805191433i66f23073w7575d9d46acbdb6e@mail.gmail.com>
	<48320814.7070201@sun.com>
	<1211465778.4054.32.camel@dijkstra.wildebeest.org>
Message-ID: <50814D57-B9B9-40F7-BA08-1C95528AD989@Sun.COM>

Mark,

The suggestion regarding -ignore:try is interesting, but I'd have to  
think about
how it could be done. The underlying JT Harness does not support such a
concept, and I doubt that it would be easy to add it. We'd have to  
create a
side table in jtreg of @ignored tests that were executed and which  
passed.
I'll have to go talk to the JT Harness folk to see if I could add that  
info into
a report.

One idea that has been on the table for a while is the idea of a  
"known failure
list".  You do a test run and then compare results against a list  
containing
tests which are regrettably known to fail.  Seems to me we could use
-ignore:run for jtreg, then invoke jtdiff against the KFL to get a  
report of
which tests did not behave as expected, including tests which now pass  
which
previously did not.

-- Jon

On May 22, 2008, at 7:16 AM, Mark Wielaard wrote:

> Hi Jonathan,
>
> On Mon, 2008-05-19 at 16:07 -0700, Jonathan Gibbons wrote:
>> Separately, check out the options for handling @ignore tests. Even on
>> older versions
>> of jtreg you can use "-k:!ignore" to ignore @ignore tests.  (This  
>> works
>> because @ignore
>> tests are given an implicit "ignore" keyword.)   With later  
>> versions of
>> jtreg, you can use
>> -Ignore:{quiet,error,run} to control how @ignore tests should be
>> handled. Using this
>> option, you should be to get closer to the goal of "all tests should
>> pass", meaning
>> that there are less failures and so less need to compare the output
>> results with jtdiff.
>
> This is a really a great feature! For icedtea we now use "-v1 -a
> -ignore:quiet", that give output and results that should be pretty
> familiar to people. And this is the set that I hope we can get to be  
> all
> PASS in the default case.
>
> One extension might be to have a "-ignore:try" that does try to run  
> it,
> that doesn't report it failure, but that does flag it as unexpected
> XPASS to alert people to bugs that are (accidentally) fixed but where
> the testcase was not yet enabled.
>
> Cheers,
>
> Mark
>



From Jonathan.Gibbons at Sun.COM  Thu May 22 10:17:38 2008
From: Jonathan.Gibbons at Sun.COM (Jonathan Gibbons)
Date: Thu, 22 May 2008 10:17:38 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211469622.4054.48.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
	<1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
	
	<1211469622.4054.48.camel@dijkstra.wildebeest.org>
Message-ID: <1D341CE9-3799-4B75-B7D6-A064F9F2CFD1@Sun.COM>

Mark,

If you're publishing results on a web server, you might be interested  
in some
servlets available in JTHarness.  They may be a little dusty now -- we  
wrote
them in the early days of Tomcat and .jsp files, but they can give you  
a fancy
view of a .jtr file in particular. The're in javatest.jar, in the  
com.sun.javatest.servlets
package. The documentation should hopefully be available in the JT  
Harness online
help.

-- Jon

On May 22, 2008, at 8:20 AM, Mark Wielaard wrote:

> Hi Jon,
>
> On Tue, 2008-05-20 at 08:24 -0700, Jonathan Gibbons wrote:
>> The solution was to provide a utility called "EditLinks" within the
>> JavaTest
>> framework. I assume it is still available within JT Harness. This  
>> is a
>> simple
>> utility for post-processing the links within report files so that you
>> can move
>> report files and work directories around as you choose.
>
> Heay that is pretty neat!
>
> So I just did this in my icedtea6 dir:
> $ for i in hotspot langtools jdk; do java -cp test/jtreg.jar \
>  com.sun.javatest.EditLinks -e `pwd` \
>  http://icedtea.classpath.org/~mjw/jtreg test/$i; done
>
> And uploaded the results:
> http://icedtea.classpath.org/~mjw/jtreg/test/
>
> And indeed the links now work and you can get a html overview of the
> failure lists and correct links to the .jtr files such as:
> http://icedtea.classpath.org/~mjw/jtreg/test/jdk/JTreport/html/failed.html
>
> Great,
>
> Mark
>



From Kelly.Ohair at Sun.COM  Thu May 22 11:31:21 2008
From: Kelly.Ohair at Sun.COM (Kelly O'Hair)
Date: Thu, 22 May 2008 11:31:21 -0700
Subject: Porting Hotspot to other platforms / OS'es
In-Reply-To: <17c6771e0805211004t317793b4ide487fd84717dcd6@mail.gmail.com>
References: <483423C5.3080109@neuweiler.biz>
	<17c6771e0805211004t317793b4ide487fd84717dcd6@mail.gmail.com>
Message-ID: <4835BBF9.2080705@sun.com>

I have been trying to make the JDK build process work a little bit
better for potential cross compilation environments, where the native
code built can't be run on the machine doing the building.
Granted I know it isn't ideal or anywhere near perfect.
But the basic OpenJDK build, up to the point near building the demos,
does not actually run the jdk image being built.
It does run the jdk built to create the demos as I recall, and beyond that,
I tried to allow for a better cross compilation situation.

But as to an environment where a BOOT JDK is not available... humm..
It seems to me that maybe an appropriate 'ssh some_known_host' prefix
on the ant, java, javac, javah, javadoc, ... commands. So that these
could be remote runs? Just a wild thought...
I have no idea if that would work or not...

-kto

Andrew John Hughes wrote:
> On 21/05/2008, Michael Neuweiler  wrote:
>>  Hi,
>>
>>  I wanted to start porting OpenJDK to Syllable on Intel32 but got stuck with
>> the chicken and egg problem of hotspot: "you need a running JDK to build a
>> new one".
>>
>>  What are your recommendations to start a port? Is cross-compiling the only
>> solution or are there other ways?
>>  I think I saw once that an XSLT is started with an already installed
>> JRE/JDK during the build process on my Linux machine. Is this the only
>> reason why a JRE has to be installed?
>>
>>  Any help would be greatly appreciated!
>>
>>  Regards,
>>   Michael Neuweiler
>>
>>
> 
> (Adding distro-pkg-dev too)
> 
> My understanding, both from building OpenJDK quite a number of times
> and from my own general thoughts on the issues of building a Java
> environment, is that bootstrapping the JDK through its standard build
> process is more than just handling XSLT.
> 
> The first thing you're likely to run across is that there are no
> current Java compilers (as far as I know) that are not written in Java
> -- the main two are ecj from Eclipse and javac itself.  The first
> thing the OpenJDK build process does is build javac and the other
> language tools.  The current build not only depends on an existing
> javac to do this,  but a full-scale JDK to run ant.  My personal
> feelings are that it would have been better to stick with make for the
> langtools, but oh well...
> 
> If my memory serves correctly, this is followed by JAXWS and JAXP,
> both of which require Java.  Thus, a sensible course of action might
> be to approach building HotSpot alone first.  Assuming this is
> possible (I have my doubts about it also including Java code), you
> could then use this to run an existing JAR file containing the tools
> to build.
> 
> The reason I've CCed distro-pkg-dev on this is that a lot of work on
> bootstrapping on unsupported architectures (mainly the CPU rather than
> the OS) has been done under the auspices of the IcedTea
> (http://icedtea.classpath.org/) project.  Here, we've found gcj to be
> useful in breaking this bootstrapping cycle -- do you know if GCC
> (which includes gcj) is available for the platform you are working on?
> This might be the simplest course of action.
> 
> Looking forward to hearing how this works out for you,


From Kelly.Ohair at Sun.COM  Thu May 22 11:59:02 2008
From: Kelly.Ohair at Sun.COM (Kelly O'Hair)
Date: Thu, 22 May 2008 11:59:02 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211466426.4054.42.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
	<1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
	<1211466426.4054.42.camel@dijkstra.wildebeest.org>
Message-ID: <4835C276.5010004@sun.com>



Mark Wielaard wrote:
> Hi Martin,
> 
> On Tue, 2008-05-20 at 06:00 -0700, Martin Buchholz wrote:
>> On Tue, May 20, 2008 at 2:32 AM, Mark Wielaard  wrote:
>>>> I like a policy of "Read my lips; no new test failures" but OpenJDK
>>>> is not quite there; we get test failure creep when changes in
>>>> one component break another component's tests.
>>> Yes, that would be idea. At least for openjdk6/icedtea we seem to be
>>> pretty close actually. It will be more challenging for openjdk7. I
>>> haven't quite figured out all the dynamics around "workspace
>>> integration". But I assume we can get the master tree to zero fail and
>>> then demand that any integration cycle doesn't introduce regressions.
>> There are too many tests to require team integrators to run
>> them all on each integration cycle.
> 
> I am not sure. It does take about 3 hours to run all the included tests
> (and I assume that when we add more tests or integrate things like mauve
> it will rise). But I do hope people, not just integrators, will run them
> regularly. Especially when they are working on/integrating larger
> patches. And we can always fall back on autobuilders so we have a full
> report at least soon after something bad happens so there is some chance
> to revert a change relatively quickly.

3 hours for runs with:
    -client and -server?
    one OS?
    32bit and 64bit?

And you are only talking about the tests in the jdk/test area I assume.

The issue I have seen with the testing is that if it isn't done on a good
spread of options and platforms and variations, something gets missed,
there is little consistency between developers as to what the official
requires test matrix is. Once we have a 100% pass list, and a required
matrix, I have a system to help enforce these tests being run, but so
far, nobody has given me a way to run just that list.
Once I have it, I think we can keep all or most repositories golden.

The Hotspot team runs many many variations, using options like -Xcomp
and -Xbatch and loads more. But they are trying to stress the VM.

> 
>>   For a few years I've advocated
>> adding another level to the tree of workspaces.  My model is to
>> rename the current MASTER workspace to PURGATORY, and
>> add a "golden MASTER".
>> The idea is that once a week or so all tests are run exhaustively,
>> and when it is confirmed that there are no new test failures,
>> the tested code from PURGATORY is promoted to MASTER.
> 
> This is fascinating. Intuitively I would call for less levels instead of
> more because that makes issues show up earlier. It is one of the things
> I haven't really wrapped my head around. The proliferation of separate
> branches/workspaces. One main master tree where all work goes into by
> default and only have separate (ad hoc) branches/workspaces for larger
> work items that might be destabilizing seems an easier model to work
> with.

Easier model to work with for developers yes, I agree, and I have to admit
when I came into the java org from a different part of Sun, I was somewhat
amazed too.  But it does serve a very valuable purpose, it corrals and isolates
the different teams, and prevents major and semi-major regressions from
impacting everyone in the organization.   At a cost I suppose.

Each layer does add a cost... and the PURGATORY&GOLDEN idea is a good one,
but just like having different team areas, it adds another delay in people
seeing a change show up in the MASTER area.

I'm more of a 'test before integrate' person, with streamlining and
automating the testing process, making it part of the developer push process,
adapting the tests as major regressions sneak by (you can never catch all
regressions, no matter what you do). Blocking pushes on any failure.
So I'm trying to throw hardware at the problem until we can possible do
the "exhaustive testing" that Martin mentions, as part of a developer
pushing a change in, before anyone else sees it, all automated.

But for automation, I want a test guarantee:
   "these tests should pass 100% of the time on all platforms in all situations"
and then we can think about enforcing it.
None of this wishy washy "this test fails sometimes due to the phase of
the moon" crap. ...  oops, can I say crap in a public email??...  ;^}

-kto

> 
> Cheers,
> 
> Mark
> 


From Kelly.Ohair at Sun.COM  Thu May 22 12:13:36 2008
From: Kelly.Ohair at Sun.COM (Kelly O'Hair)
Date: Thu, 22 May 2008 12:13:36 -0700
Subject: jtreg testing integrated
In-Reply-To: <1ccfd1c10805220812p2a81641ct49c4f6a8cd339ca7@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
	<1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
	<1211466426.4054.42.camel@dijkstra.wildebeest.org>
	<1ccfd1c10805220812p2a81641ct49c4f6a8cd339ca7@mail.gmail.com>
Message-ID: <4835C5E0.3060104@sun.com>

It's been my experience that when people say
    "Too many times ... broken by changes in hotspot ..."

That it's not that frequent an event at all, just that any single
event like it becomes a huge effort to isolate and resolve, two of them
quickly become "too many". And I indeed understand that very much.
It's like a gcc or C compiler bug, nasty nasty problems and mostly
just makes people angry or upset that it ever happened and that you
lost so much time tracking it down.

Nobody likes this to happen, but asking every team to run all your
tests on all platforms before they integrate isn't a very good solution
either, not when many of the tests are not easily runnable by that team.
It's like asking the plumber to run all the electrical tests to make sure
he hasn't caused a short somewhere, easier said than done, and will
probably cost you much more in the long run.

I will try and look into creating an automated test of some of the jdk
basic java tests, but I need help in creating a set of 100% pass tests
that run in a reasonable amount of time, say 15min-20min on a fast machine?
I could probably get that into their automated system easily enough, but
asking them to run everything just won't fly.

-kto

Martin Buchholz wrote:
> [+quality-discuss, jdk7-gk]
> 
> On Thu, May 22, 2008 at 7:27 AM, Mark Wielaard  wrote:
>> Hi Martin,
>>
>> On Tue, 2008-05-20 at 06:00 -0700, Martin Buchholz wrote:
>>> On Tue, May 20, 2008 at 2:32 AM, Mark Wielaard  wrote:
>>>>> I like a policy of "Read my lips; no new test failures" but OpenJDK
>>>>> is not quite there; we get test failure creep when changes in
>>>>> one component break another component's tests.
>>>> Yes, that would be idea. At least for openjdk6/icedtea we seem to be
>>>> pretty close actually. It will be more challenging for openjdk7. I
>>>> haven't quite figured out all the dynamics around "workspace
>>>> integration". But I assume we can get the master tree to zero fail and
>>>> then demand that any integration cycle doesn't introduce regressions.
>>> There are too many tests to require team integrators to run
>>> them all on each integration cycle.
>> I am not sure. It does take about 3 hours to run all the included tests
>> (and I assume that when we add more tests or integrate things like mauve
>> it will rise).
> 
> Not all the regression tests are open source yet, and not all the
> test suites available are open source (and some are likely to be
> permanently encumbered).  And we should be adding more
> static analysis tools to the testing process.
> 
> It sure would be nice to run all tests with -server and -client,
> and with different GCs, and on 32 and 64-bit platforms,
> with Java assertions enabled and disabled,
> with C++ assertions enabled and disabled.
> 
> Soon a "full" testing cycle looks like it might take a week.
> 
> But I do hope people, not just integrators, will run them
>> regularly. Especially when they are working on/integrating larger
>> patches. And we can always fall back on autobuilders so we have a full
>> report at least soon after something bad happens so there is some chance
>> to revert a change relatively quickly.
> 
> Much of the world works on this model -
> commit to trunk, wait for trouble, revert.
> It's certainly much cheaper, and gets feedback quicker,
> but creates fear among developers ("Notoriously careless
> developer X just did a commit.  I think I'll wait for a week
> before pulling")
> 
>>>   For a few years I've advocated
>>> adding another level to the tree of workspaces.  My model is to
>>> rename the current MASTER workspace to PURGATORY, and
>>> add a "golden MASTER".
>>> The idea is that once a week or so all tests are run exhaustively,
>>> and when it is confirmed that there are no new test failures,
>>> the tested code from PURGATORY is promoted to MASTER.
>> This is fascinating. Intuitively I would call for less levels instead of
>> more because that makes issues show up earlier. It is one of the things
>> I haven't really wrapped my head around. The proliferation of separate
>> branches/workspaces. One main master tree where all work goes into by
>> default and only have separate (ad hoc) branches/workspaces for larger
>> work items that might be destabilizing seems an easier model to work
>> with.
> 
> It's certainly more work for the integrators.  But for the developers
> my model is simple and comfortable.  Youir integrator will give you
> a workspace to commit changes to.
> Commit there whenever you feel like.  Go on to the next coding task.
> Your changes will take a while to percolate into MASTER,
> but what do you care?
> When you sync, you pull in changes from MASTER, which are
> *guaranteed* to not break any of your tests.  If you want specific
> changes quickly, pull from PURGATORY or a less-tested team
> workspace.
> 
> If you have a project where you need to share your work
> with other developers immediately,
> no problem - just create a project-specific shared workspace
> that all project team members can commit to directly.
> Decide on a level of testing the team is comfortable with -
> including none at all.
> 
> Developers in my model are more productive partly because
> they don't have to be afraid of breaking other developers.
> They can do enough testing for 95% confidence
> (which for many changes might mean no testing at all)
> then commit.  The system will push back buggy changes
> automatically.
> 
> Too many times I've suffered because tests in library land
> have been broken by changes in hotspot.  Nevertheless,
> the JDK MASTER is remarkably stable for a project with so
> many developers, largely because of the gradual integration
> process, with changes going into MASTER only after being
> tested by integrators.  JDK developers don't go around chatting
> about "build weather" - is the build broken today?  AGAIN?
> 
> This development model doesn't work as well for most
> open source projects, because they have fewer, smarter, and more
> dedicated developers, so there is less need.
> Also, it's hard to find good integrators.  Most people (like myself)
> end up doing it as a part-time job.  But just like source code
> control systems have gotten sexy, perhaps someday
> "code integration and testing systems" will become sexy,
> and everyone will want to write one.
> 
> Martin


From mark at klomp.org  Thu May 22 14:00:53 2008
From: mark at klomp.org (Mark Wielaard)
Date: Thu, 22 May 2008 23:00:53 +0200
Subject: jtreg testing integrated
In-Reply-To: <48346C07.3010404@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
Message-ID: <1211490053.3181.34.camel@dijkstra.wildebeest.org>

Hi Joe,

On Wed, 2008-05-21 at 11:37 -0700, Joseph D. Darcy wrote:
> > I think the most important thing is making sure the tests don't depend
> > on any sun internal only servers. That seems to solve the largest part
> > of the failures we are currently seeing.
> >   
> Those may take a little while to figure out a good fix in the sense of 
> still testing the networking code outside Sun's firewall as opposed to 
> just adding "if(!insideSun()) pass" logic.  I'll talk to the networking 
> team about this.

I did look through some of the failures and it looks we basically need
just 3 hosts:

  HOST = "javaweb.sfbay.sun.com";
  REFUSING_HOST = "jano.sfbay.sun.com";
  FAR_HOST = "theclub.ireland.sun.com";
  UNRESOLVABLE_HOST = "blah-blah.blah-blah.blah";

With daytime and echo available. The only wrinkle is that some tests
expect to be able to use quick timeouts from HOST, but to need long
timeouts from FAR_HOST. I think we could provide something public for
this. But I might have missed some tests that need other services. Do
you have a full overview?

> On a related note, there are times where it could be useful for a test 
> to have somewhat different behavior on Sun's production JDK versus 
> OpenJDK.  For example, I'm the author of the 
> java/lang/reflect/Generics/Probe.java test which fails on OpenJDK since 
> it references some production-only classes.  There are a few options to 
> fix this.  One way would be to remove all reference to the 
> production-only classes, which would reduce the usefulness of the test 
> for the production code; conversely, the whole test could be moved to 
> closed, reducing the test coverage of OpenJDK.  The test could be split 
> into open and closed parts, complicating maintenance.  So instead I 
> changed the test to only look at the production classes for a production 
> build.  I test for a production build using
> 
> System.getProperty("java.runtime.name").startsWith("Java(TM)")
> 
> Out of the box, our OpenJDK builds have "java.runtime.name" start with 
> "OpenJDK"; is that true in your IcedTea/OpenJDK builds too?

It depends on the version and the distribution. IcedTea6 now calls
itself OpenJDK, but IcedTea7 calls itself IcedTea. Ubuntu has a patch to
return "Java(TM)" here. And we might actually might want to make that
the default. There are already bug reports about applications and
applets testing for this string to be exactly in the way as the
proprietary implementations (you could argue that is a bug in that
application/applet, but users don't really care unfortunately).

Whenever possible I think we should make this configurable on a specific
test property. That is more work, but allows all derivatives, not just
Sun's ClosedJDK to use the same tests with their own settings. The
defaults should of course be what works with generic upstream OpenJDK.

I was looking at this particular test and I didn't immediately see why
javax.crypto.SunJCE_x couldn't be replaced with a commonly available
class in OpenJDK. What is special about those classes that they need to
be explicitly tested against?

> For the javax/script tests, I was going to add "if (no javascript engine 
> and production JDK) fail else note/warning" logic so that our production 
> build gets the same coverage and if an OpenJDK build come with a 
> javascript engine, it would get testing too.

What do you precisely mean when you say that you have an "if production
JDK"? What functional feature does that test against?

Cheers,

Mark



From Joe.Darcy at Sun.COM  Thu May 22 14:14:20 2008
From: Joe.Darcy at Sun.COM (Joe Darcy)
Date: Thu, 22 May 2008 14:14:20 -0700
Subject: jtreg testing integrated
In-Reply-To: <1211490053.3181.34.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<1211490053.3181.34.camel@dijkstra.wildebeest.org>
Message-ID: <4835E22C.5060304@sun.com>

Mark Wielaard wrote:
> Hi Joe,
>
> On Wed, 2008-05-21 at 11:37 -0700, Joseph D. Darcy wrote:
>   
>

[snip]

>> On a related note, there are times where it could be useful for a test 
>> to have somewhat different behavior on Sun's production JDK versus 
>> OpenJDK.  For example, I'm the author of the 
>> java/lang/reflect/Generics/Probe.java test which fails on OpenJDK since 
>> it references some production-only classes.  There are a few options to 
>> fix this.  One way would be to remove all reference to the 
>> production-only classes, which would reduce the usefulness of the test 
>> for the production code; conversely, the whole test could be moved to 
>> closed, reducing the test coverage of OpenJDK.  The test could be split 
>> into open and closed parts, complicating maintenance.  So instead I 
>> changed the test to only look at the production classes for a production 
>> build.  I test for a production build using
>>
>> System.getProperty("java.runtime.name").startsWith("Java(TM)")
>>
>> Out of the box, our OpenJDK builds have "java.runtime.name" start with 
>> "OpenJDK"; is that true in your IcedTea/OpenJDK builds too?
>>     
>
> It depends on the version and the distribution. IcedTea6 now calls
> itself OpenJDK, but IcedTea7 calls itself IcedTea. Ubuntu has a patch to
> return "Java(TM)" here. And we might actually might want to make that
> the default. 

I doubt Sun's lawyers would be happy with that!

> There are already bug reports about applications and
> applets testing for this string to be exactly in the way as the
> proprietary implementations (you could argue that is a bug in that
> application/applet, but users don't really care unfortunately).
>
> Whenever possible I think we should make this configurable on a specific
> test property. That is more work, but allows all derivatives, not just
> Sun's ClosedJDK to use the same tests with their own settings. The
> defaults should of course be what works with generic upstream OpenJDK.
>
> I was looking at this particular test and I didn't immediately see why
> javax.crypto.SunJCE_x couldn't be replaced with a commonly available
> class in OpenJDK. What is special about those classes that they need to
> be explicitly tested against?
>   

The crypto classes in Sun's product are obfuscated, US government 
requirement, and the obfuscators have been know to corrupt the signature 
attribute used by the reflection methods in question.

>   
>> For the javax/script tests, I was going to add "if (no javascript engine 
>> and production JDK) fail else note/warning" logic so that our production 
>> build gets the same coverage and if an OpenJDK build come with a 
>> javascript engine, it would get testing too.
>>     
>
> What do you precisely mean when you say that you have an "if production
> JDK"? What functional feature does that test against?
>   

I use the value in that system property.  In a helper class I define

  32     public static ScriptEngine getJsEngine(ScriptEngineManager m) {
  33         ScriptEngine e  = m.getEngineByName("js");
  34         if (e == null &&
  35             
System.getProperty("java.runtime.name").startsWith("Java(TM)")) {
  36             // A js engine is requied for Sun's product JDK
  37             throw new RuntimeException("no js engine found");
  38         }
  39         return e;
  40     }

and then the tests in question use

  40             ScriptEngine jsengine = Helper.getJsEngine(manager);
  41             if (jsengine == null) {
  42                 System.out.println("Warning: No js engine found; 
test vacuously passes.");
  43                 return;
  44             }
  45  // Rest of test...

-Joe


From mark at klomp.org  Thu May 22 14:19:26 2008
From: mark at klomp.org (Mark Wielaard)
Date: Thu, 22 May 2008 23:19:26 +0200
Subject: jtreg testing integrated
In-Reply-To: <17c6771e0805211723h60ee30fhdb1f68da9ec8108d@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
	<4834AA89.40001@sun.com>
	<17c6771e0805211702x6c2d5955tf9cbecc07d5c3d26@mail.gmail.com>
	<17c6771e0805211723h60ee30fhdb1f68da9ec8108d@mail.gmail.com>
Message-ID: <1211491166.3181.43.camel@dijkstra.wildebeest.org>

Hi Andrew,

On Thu, 2008-05-22 at 01:23 +0100, Andrew John Hughes wrote:
> Indeed, I believe Mark started looking into this specifically for this
> reason; so that the tests could be run on the OpenJDK being packaged
> in distributions and so the community could have a goal to work
> towards in fixing any issues.

The reason I wanted the testsuite integrated into the normal build and
hopefully run on as many platforms/setups as possible was to spread the
testing effort as wide as possible. And to hopefully come to a common
baseline that all derivatives would follow as minimum quality that
should be reached. We will never be able to centrally test every
configuration/hardware/os setup, so it is important that the end user
can eventually do it themselves.

> So I apologise if any of my comments read as being abrasive or as not
> understanding the issues of Sun's 'production build'.  But it's
> something very foreign to us, and something I'd expect to remain so,
> while the production build remains a proprietary product.

Actually I don't think it is that foreign. We have always had derivative
works that are slightly different because of platform/runtime setups. It
is good we have some common test suites that can be run on all of them.
What is somewhat foreign is singling out one derivative as "the
production build" which has a configuration which is actually different
from the upstream defaults. We shouldn't hard code such configurations
into the testsuite, but it is certainly desirable to make them possible.

Cheers,

Mark



From mark at klomp.org  Thu May 22 14:33:25 2008
From: mark at klomp.org (Mark Wielaard)
Date: Thu, 22 May 2008 23:33:25 +0200
Subject: jtreg testing integrated
In-Reply-To: <4835E22C.5060304@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<1211490053.3181.34.camel@dijkstra.wildebeest.org>
	<4835E22C.5060304@sun.com>
Message-ID: <1211492005.3181.52.camel@dijkstra.wildebeest.org>

Hi Joe,

On Thu, 2008-05-22 at 14:14 -0700, Joe Darcy wrote:
> >> System.getProperty("java.runtime.name").startsWith("Java(TM)")
> >>
> >> Out of the box, our OpenJDK builds have "java.runtime.name" start with 
> >> "OpenJDK"; is that true in your IcedTea/OpenJDK builds too?
> >>     
> >
> > It depends on the version and the distribution. IcedTea6 now calls
> > itself OpenJDK, but IcedTea7 calls itself IcedTea. Ubuntu has a patch to
> > return "Java(TM)" here. And we might actually might want to make that
> > the default. 
> 
> I doubt Sun's lawyers would be happy with that!

haha :) But well, what can you do if it is a feature string actual
applications test against. More importantly soon we will see derivatives
of pass the TCK and hopefully they will then all be considered Java(TM)
anyway.

> > I was looking at this particular test and I didn't immediately see why
> > javax.crypto.SunJCE_x couldn't be replaced with a commonly available
> > class in OpenJDK. What is special about those classes that they need to
> > be explicitly tested against?
> >   
> 
> The crypto classes in Sun's product are obfuscated, US government 
> requirement, and the obfuscators have been know to corrupt the signature 
> attribute used by the reflection methods in question.

Couldn't we create a new test then for this case specifically? Something
like Jasmin can probably be used to write such "corrupt" classes. Mauve
contains a module that uses Jasmin to create "bad classes" to try to
fool the byte code verifier for example.

> >> For the javax/script tests, I was going to add "if (no javascript engine 
> >> and production JDK) fail else note/warning" logic so that our production 
> >> build gets the same coverage and if an OpenJDK build come with a 
> >> javascript engine, it would get testing too.
> >>     
> >
> > What do you precisely mean when you say that you have an "if production
> > JDK"? What functional feature does that test against?
> >   
> 
> I use the value in that system property.  In a helper class I define
> 
>   32     public static ScriptEngine getJsEngine(ScriptEngineManager m) {
>   33         ScriptEngine e  = m.getEngineByName("js");
>   34         if (e == null &&
>   35             
> System.getProperty("java.runtime.name").startsWith("Java(TM)")) {
>   36             // A js engine is requied for Sun's product JDK
>   37             throw new RuntimeException("no js engine found");
>   38         }
>   39         return e;
>   40     }

Aha. I don't think that is a good feature test. As said above the
runtime.name is not really a good selector (much too broad). And I
assume people will want to configure their OpenJDK derivative with or
without different scripting engines. In fact I was going to follow
David's advice and make IcedTea honor a ./configure --with-rhino flag.
It would be good if that could then also set some property so that the
correct tests are run.

Cheers,

Mark



From mr at sun.com  Thu May 22 14:37:18 2008
From: mr at sun.com (Mark Reinhold)
Date: Thu, 22 May 2008 14:37:18 -0700
Subject: jtreg testing integrated 
In-Reply-To: mark@klomp.org; Thu, 22 May 2008 23:33:25 +0200;
	<1211492005.3181.52.camel@dijkstra.wildebeest.org> 
Message-ID: <20080522213718.DB6E45B39@eggemoggin.niobe.net>

> Date: Thu, 22 May 2008 23:33:25 +0200
> From: Mark Wielaard 

> On Thu, 2008-05-22 at 14:14 -0700, Joe Darcy wrote:
>> Mark Wielaard wrote:
>>> It depends on the version and the distribution. IcedTea6 now calls
>>> itself OpenJDK, but IcedTea7 calls itself IcedTea. Ubuntu has a patch to
>>> return "Java(TM)" here. And we might actually might want to make that
>>> the default.
>> 
>> I doubt Sun's lawyers would be happy with that!
> 
> haha :) But well, what can you do if it is a feature string actual
> applications test against. More importantly soon we will see derivatives
> of pass the TCK and hopefully they will then all be considered Java(TM)
> anyway.

If actual applications test for this string (ugh!) then we can likely
convince Sun lawyers that returning "Java(TM)" is justified.

- Mark


From michael at neuweiler.biz  Wed May 21 23:43:22 2008
From: michael at neuweiler.biz (Michael Neuweiler)
Date: Thu, 22 May 2008 08:43:22 +0200
Subject: Porting Hotspot to other platforms / OS'es
In-Reply-To: <17c6771e0805211004t317793b4ide487fd84717dcd6@mail.gmail.com>
References: <483423C5.3080109@neuweiler.biz>
	<17c6771e0805211004t317793b4ide487fd84717dcd6@mail.gmail.com>
Message-ID: <4835160A.3040302@neuweiler.biz>

Hi Andrew,

Thanks a lot for your fast response. I do share your opinion that 
building/bootstrapping at least the hotspot must _not_ rely on any other 
java technology but solely on the standard GNU toolchain (or similar). 
If the build of hotspot with gcc/gcj is possible, I wouldn't mind 
copying jar's over from an existing installation. That'd be ok - but no 
libraries or other platform/OS dependant binary.

In the meantime I discovered the porters-dev mailinglist where I was 
able to find dome interesting information and one possible solution 
(although it requires some special tweaks with a customized linux shell, 
ssh and nfs to the target environment) : 
http://mail.openjdk.java.net/pipermail/porters-dev/2008-February/000080.html

I will also check with the developers of Haiku 
(http://mail.openjdk.java.net/pipermail/porters-dev/2008-January/000055.html) 
and the porters to MIPS 
(http://mail.openjdk.java.net/pipermail/porters-dev/2008-April/000131.html) 
to find out more.

I'll keep you informed on my progress and once I'm "blissed" with 
success I'll write a guide which could be added to the FAQ section.

Regards,
 Michael

Andrew John Hughes wrote:
> On 21/05/2008, Michael Neuweiler  wrote:
>   
>>  Hi,
>>
>>  I wanted to start porting OpenJDK to Syllable on Intel32 but got stuck with
>> the chicken and egg problem of hotspot: "you need a running JDK to build a
>> new one".
>>
>>  What are your recommendations to start a port? Is cross-compiling the only
>> solution or are there other ways?
>>  I think I saw once that an XSLT is started with an already installed
>> JRE/JDK during the build process on my Linux machine. Is this the only
>> reason why a JRE has to be installed?
>>
>>  Any help would be greatly appreciated!
>>
>>  Regards,
>>   Michael Neuweiler
>>
>>
>>     
>
> (Adding distro-pkg-dev too)
>
> My understanding, both from building OpenJDK quite a number of times
> and from my own general thoughts on the issues of building a Java
> environment, is that bootstrapping the JDK through its standard build
> process is more than just handling XSLT.
>
> The first thing you're likely to run across is that there are no
> current Java compilers (as far as I know) that are not written in Java
> -- the main two are ecj from Eclipse and javac itself.  The first
> thing the OpenJDK build process does is build javac and the other
> language tools.  The current build not only depends on an existing
> javac to do this,  but a full-scale JDK to run ant.  My personal
> feelings are that it would have been better to stick with make for the
> langtools, but oh well...
>
> If my memory serves correctly, this is followed by JAXWS and JAXP,
> both of which require Java.  Thus, a sensible course of action might
> be to approach building HotSpot alone first.  Assuming this is
> possible (I have my doubts about it also including Java code), you
> could then use this to run an existing JAR file containing the tools
> to build.
>
> The reason I've CCed distro-pkg-dev on this is that a lot of work on
> bootstrapping on unsupported architectures (mainly the CPU rather than
> the OS) has been done under the auspices of the IcedTea
> (http://icedtea.classpath.org/) project.  Here, we've found gcj to be
> useful in breaking this bootstrapping cycle -- do you know if GCC
> (which includes gcj) is available for the platform you are working on?
> This might be the simplest course of action.
>
> Looking forward to hearing how this works out for you,
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080522/67dcd749/attachment.html 

From gnu_andrew at member.fsf.org  Thu May 22 14:48:34 2008
From: gnu_andrew at member.fsf.org (Andrew John Hughes)
Date: Thu, 22 May 2008 22:48:34 +0100
Subject: Porting Hotspot to other platforms / OS'es
In-Reply-To: <4835160A.3040302@neuweiler.biz>
References: <483423C5.3080109@neuweiler.biz>
	<17c6771e0805211004t317793b4ide487fd84717dcd6@mail.gmail.com>
	<4835160A.3040302@neuweiler.biz>
Message-ID: <17c6771e0805221448h34df3895q4604c42d5c6a98e6@mail.gmail.com>

On 22/05/2008, Michael Neuweiler  wrote:
>
>  Hi Andrew,
>
>  Thanks a lot for your fast response. I do share your opinion that
> building/bootstrapping at least the hotspot must _not_ rely on any other
> java technology but solely on the standard GNU toolchain (or similar). If
> the build of hotspot with gcc/gcj is possible, I wouldn't mind copying jar's
> over from an existing installation. That'd be ok - but no libraries or other
> platform/OS dependant binary.
>

Well it should work with just GCJ.  Certainly I've built IcedTea
(which wraps OpenJDK in a build harness that uses GCJ) with only GCJ
on my system.  The question is whether GCJ is available on
x86/Syllable as I've never heard of Syllable before.

>  In the meantime I discovered the porters-dev mailinglist where I was able
> to find dome interesting information and one possible solution (although it
> requires some special tweaks with a customized linux shell, ssh and nfs to
> the target environment) :
> http://mail.openjdk.java.net/pipermail/porters-dev/2008-February/000080.html
>
>  I will also check with the developers of Haiku
> (http://mail.openjdk.java.net/pipermail/porters-dev/2008-January/000055.html)
> and the porters to MIPS
> (http://mail.openjdk.java.net/pipermail/porters-dev/2008-April/000131.html)
> to find out more.
>

Yes, sorry forgot to mention this.  The solution does sound a little
complicated to me though.

>  I'll keep you informed on my progress and once I'm "blissed" with success
> I'll write a guide which could be added to the FAQ section.
>

Great!

>  Regards,
>   Michael
>
>
>  Andrew John Hughes wrote:
>  On 21/05/2008, Michael Neuweiler  wrote:
>
>
>  Hi,
>
>  I wanted to start porting OpenJDK to Syllable on Intel32 but got stuck with
> the chicken and egg problem of hotspot: "you need a running JDK to build a
> new one".
>
>  What are your recommendations to start a port? Is cross-compiling the only
> solution or are there other ways?
>  I think I saw once that an XSLT is started with an already installed
> JRE/JDK during the build process on my Linux machine. Is this the only
> reason why a JRE has to be installed?
>
>  Any help would be greatly appreciated!
>
>  Regards,
>  Michael Neuweiler
>
>
>
>  (Adding distro-pkg-dev too)
>
> My understanding, both from building OpenJDK quite a number of times
> and from my own general thoughts on the issues of building a Java
> environment, is that bootstrapping the JDK through its standard build
> process is more than just handling XSLT.
>
> The first thing you're likely to run across is that there are no
> current Java compilers (as far as I know) that are not written in Java
> -- the main two are ecj from Eclipse and javac itself. The first
> thing the OpenJDK build process does is build javac and the other
> language tools. The current build not only depends on an existing
> javac to do this, but a full-scale JDK to run ant. My personal
> feelings are that it would have been better to stick with make for the
> langtools, but oh well...
>
> If my memory serves correctly, this is followed by JAXWS and JAXP,
> both of which require Java. Thus, a sensible course of action might
> be to approach building HotSpot alone first. Assuming this is
> possible (I have my doubts about it also including Java code), you
> could then use this to run an existing JAR file containing the tools
> to build.
>
> The reason I've CCed distro-pkg-dev on this is that a lot of work on
> bootstrapping on unsupported architectures (mainly the CPU rather than
> the OS) has been done under the auspices of the IcedTea
> (http://icedtea.classpath.org/) project. Here, we've found gcj to be
> useful in breaking this bootstrapping cycle -- do you know if GCC
> (which includes gcj) is available for the platform you are working on?
> This might be the simplest course of action.
>
> Looking forward to hearing how this works out for you,
>
>


-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


From mark at klomp.org  Thu May 22 14:48:53 2008
From: mark at klomp.org (Mark Wielaard)
Date: Thu, 22 May 2008 23:48:53 +0200
Subject: jtreg testing integrated
In-Reply-To: <20080522213718.DB6E45B39@eggemoggin.niobe.net>
References: <20080522213718.DB6E45B39@eggemoggin.niobe.net>
Message-ID: <1211492933.3181.58.camel@dijkstra.wildebeest.org>

Hi Mark,

On Thu, 2008-05-22 at 14:37 -0700, Mark Reinhold wrote:
> > On Thu, 2008-05-22 at 14:14 -0700, Joe Darcy wrote:
> >> Mark Wielaard wrote:
> >>> It depends on the version and the distribution. IcedTea6 now calls
> >>> itself OpenJDK, but IcedTea7 calls itself IcedTea. Ubuntu has a patch to
> >>> return "Java(TM)" here. And we might actually might want to make that
> >>> the default.
> >> 
> >> I doubt Sun's lawyers would be happy with that!
> > 
> > haha :) But well, what can you do if it is a feature string actual
> > applications test against. More importantly soon we will see derivatives
> > of pass the TCK and hopefully they will then all be considered Java(TM)
> > anyway.
> 
> If actual applications test for this string (ugh!) then we can likely
> convince Sun lawyers that returning "Java(TM)" is justified.

I misremembered the actual bug being about the runtime.name variable,
but it is prety close (it was about the plugin string having to contain
Java(TM)): http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=111

Of course the point was more that testing against runtime.name is not
the correct feature test for this particular case. And that different
OpenJDK derivatives already use different values for that property.

Cheers,

Mark



From gnu_andrew at member.fsf.org  Thu May 22 14:56:46 2008
From: gnu_andrew at member.fsf.org (Andrew John Hughes)
Date: Thu, 22 May 2008 22:56:46 +0100
Subject: jtreg testing integrated
In-Reply-To: <1211491166.3181.43.camel@dijkstra.wildebeest.org>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
	<4834AA89.40001@sun.com>
	<17c6771e0805211702x6c2d5955tf9cbecc07d5c3d26@mail.gmail.com>
	<17c6771e0805211723h60ee30fhdb1f68da9ec8108d@mail.gmail.com>
	<1211491166.3181.43.camel@dijkstra.wildebeest.org>
Message-ID: <17c6771e0805221456l2888cf86kab2bddde1f5e57be@mail.gmail.com>

On 22/05/2008, Mark Wielaard  wrote:
> Hi Andrew,
>
>
>  On Thu, 2008-05-22 at 01:23 +0100, Andrew John Hughes wrote:
>  > Indeed, I believe Mark started looking into this specifically for this
>  > reason; so that the tests could be run on the OpenJDK being packaged
>  > in distributions and so the community could have a goal to work
>  > towards in fixing any issues.
>
>
> The reason I wanted the testsuite integrated into the normal build and
>  hopefully run on as many platforms/setups as possible was to spread the
>  testing effort as wide as possible. And to hopefully come to a common
>  baseline that all derivatives would follow as minimum quality that
>  should be reached. We will never be able to centrally test every
>  configuration/hardware/os setup, so it is important that the end user
>  can eventually do it themselves.
>

Seems very sensible to me.

>
>  > So I apologise if any of my comments read as being abrasive or as not
>  > understanding the issues of Sun's 'production build'.  But it's
>  > something very foreign to us, and something I'd expect to remain so,
>  > while the production build remains a proprietary product.
>
>
> Actually I don't think it is that foreign. We have always had derivative
>  works that are slightly different because of platform/runtime setups. It
>  is good we have some common test suites that can be run on all of them.
>  What is somewhat foreign is singling out one derivative as "the
>  production build" which has a configuration which is actually different
>  from the upstream defaults. We shouldn't hard code such configurations
>  into the testsuite, but it is certainly desirable to make them possible.
>

Yes, I wasn't saying that the general concept was foreign.   The point
was more that we aren't aware of the various oddities of Sun's
production build.  Deliberately obscuring classes as Joe mentioned is
certainly a very foreign and worrying idea to me.

The 'singling-out' proposition is not so much foreign, as something
we'd simply try not do because it's an inherently bad and biased idea.
 I believe the closest we've come is in not adding code because we
knew it would break particular VMs or compilers.  For example, I
recall issues with the original gcj compiler and the accessibility
classes.  But this would be the equivalent of adding a test to Mauve
that tested explicitly for Kaffe for example, which I don't believe
we've ever done or would want to do.

>  Cheers,
>
>
>  Mark
>
>


-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


From mark at klomp.org  Thu May 22 15:04:47 2008
From: mark at klomp.org (Mark Wielaard)
Date: Fri, 23 May 2008 00:04:47 +0200
Subject: jtreg testing integrated
In-Reply-To: <4835C276.5010004@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<17c6771e0805190756l3abb06d0g74158054589471fb@mail.gmail.com>
	<1ccfd1c10805190830j37ef4f8bg12de006c9e051298@mail.gmail.com>
	<1211275953.3284.33.camel@dijkstra.wildebeest.org>
	<1ccfd1c10805200600m74b6f735g9159f10a27f8dc26@mail.gmail.com>
	<1211466426.4054.42.camel@dijkstra.wildebeest.org>
	<4835C276.5010004@sun.com>
Message-ID: <1211493887.3181.73.camel@dijkstra.wildebeest.org>

Hi Kelly,

On Thu, 2008-05-22 at 11:59 -0700, Kelly O'Hair wrote:
> Mark Wielaard wrote:
> > I am not sure. It does take about 3 hours to run all the included tests
> > (and I assume that when we add more tests or integrate things like mauve
> > it will rise). But I do hope people, not just integrators, will run them
> > regularly. Especially when they are working on/integrating larger
> > patches. And we can always fall back on autobuilders so we have a full
> > report at least soon after something bad happens so there is some chance
> > to revert a change relatively quickly.
> 
> 3 hours for runs with:
>     -client and -server?
>     one OS?
>     32bit and 64bit?
> 
> And you are only talking about the tests in the jdk/test area I assume.

No all the jtreg based test (-a -ignore:quiet) currently included in
langtools, jdk and hotspot. On a x86_64, dual core, 3.2Ghz, Fedora 8.

> The issue I have seen with the testing is that if it isn't done on a good
> spread of options and platforms and variations, something gets missed,
> there is little consistency between developers as to what the official
> requires test matrix is. Once we have a 100% pass list, and a required
> matrix, I have a system to help enforce these tests being run, but so
> far, nobody has given me a way to run just that list.
> Once I have it, I think we can keep all or most repositories golden.

Yes, that would be ideal.

> The Hotspot team runs many many variations, using options like -Xcomp
> and -Xbatch and loads more. But they are trying to stress the VM.

I assume there are many more hotspot tests than the 4 currently
included. Hopefully they can be liberated so more people can run them.

> I'm more of a 'test before integrate' person, with streamlining and
> automating the testing process, making it part of the developer push process,
> adapting the tests as major regressions sneak by (you can never catch all
> regressions, no matter what you do). Blocking pushes on any failure.
> So I'm trying to throw hardware at the problem until we can possible do
> the "exhaustive testing" that Martin mentions, as part of a developer
> pushing a change in, before anyone else sees it, all automated.

With a more distributed version control system a lot more can be
separated I guess. Your idea of a core test of tests that should always
pass 100% is good. Then autobuilders could take over. And everybody that
cares about a particular architecture/setup/configuration could add
their own autobuilder to the mix and make sure the full blown testsuite
keeps passing completely.

For GCC there is a nice system where when someone commits something on a
platform that they don't have access to a build machine runs and send
email to that person "After your latest commit the gnats Ada compiler
cross compiled from mips64 to ppc AIX failed the following tests. GO FIX
IT!".

> But for automation, I want a test guarantee:
>    "these tests should pass 100% of the time on all platforms in all situations"
> and then we can think about enforcing it.
> None of this wishy washy "this test fails sometimes due to the phase of
> the moon" crap. ...  oops, can I say crap in a public email??...  ;^}

Yes, that is the biggest danger "flaky tests". With Mauve we actually
have that problem. And we are constantly fighting it. It is a huge cost
to all involved :{

Cheers,

Mark



From Joe.Darcy at Sun.COM  Thu May 22 16:04:10 2008
From: Joe.Darcy at Sun.COM (Joseph D. Darcy)
Date: Thu, 22 May 2008 16:04:10 -0700
Subject: jtreg testing integrated
In-Reply-To: <17c6771e0805211723h60ee30fhdb1f68da9ec8108d@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
	<4834AA89.40001@sun.com>
	<17c6771e0805211702x6c2d5955tf9cbecc07d5c3d26@mail.gmail.com>
	<17c6771e0805211723h60ee30fhdb1f68da9ec8108d@mail.gmail.com>
Message-ID: <4835FBEA.8010208@sun.com>

Andrew John Hughes wrote:
>>  >  Yes, getting accurate, descriptive, and neutral (and concise) wording can
>>  > be tricky, as "proprietary" is also disparaging in some contexts ;-)
>>  >
>>
>>
>> Er... it's very much intended to be disparaging.  There's a good basis
>>  for that, whereas I don't see one for simply classifying all other
>>  builds as below the standard of this 'production build' -- well,
>>  outside Sun anyway :)
>>
> 
> It occurred to me I should probably clarify this a little more, and
> the rest of the discussion with a little context.
> 
> OpenJDK is pretty much the first extended content I and many other GNU
> Classpath/GCJ/etc. developers have had with Sun's JDK.  Prior to this,
> if it was used at all, it would be to run a simple test case because
> the output differed between the Classpath implementation and Sun's
> reference implementation.  Certainly no-one who worked on these
> projects will have seen the source code; this is a pre-requisite for
> this work.
> 
> This is still very much the case; with the use of IcedTea you are
> seeing a switch not from shipping Sun's proprietary JDK but from
> shipping a variety of Classpath-based solutions.  The proprietary JDK
> doesn't really enter into the mainstream of most distributions such as
> Fedora, Debian or Ubuntu.  If it's packaged at all, it lurks in a
> separate repository for non-Free packages.

Which is why OpenJDK 6 is good news :-)

> Thus, I get a little alarmed when I read comments about special cases
> being added to the GPLed implementation to handle issues with the
> proprietary JDK.  This is not because this is inherently wrong, but
> simply because I can foresee this causing additional problems or
> inconveniences for those who are now packaging and shipping OpenJDK.
> Indeed, I believe Mark started looking into this specifically for this
> reason; so that the tests could be run on the OpenJDK being packaged
> in distributions and so the community could have a goal to work
> towards in fixing any issues.
> 
> So I apologise if any of my comments read as being abrasive or as not
> understanding the issues of Sun's 'production build'.  But it's
> something very foreign to us, and something I'd expect to remain so,
> while the production build remains a proprietary product.

Sending email from a fsf.org address, I wouldn't be surprised if you had 
disparaging thoughts about proprietary, non-Free, software even if you 
didn't voice them ;-)  So no slight was taken and my use of "production 
JDK" wasn't intended to detract from any OpenJDK distributions.

I've worked on the JDK at Sun for a while now so I have a different 
perspective on the code.  For me, in addition to everything it was 
before for the previous 10+ years, the (Open)JDK code base is now also 
an open source project under the GPL.  This has been and continues to be 
an adjustment to how we in Sun think about and work with the code and 
there are still some issues to work through, including addressing the 
copyright/licensing concerns recently raised by Debian's review of an 
OpenJDK package as well as adjusting the regression tests to be more 
appropriate for OpenJDK.

One of my many not-yet-written blog entries is a discussion of the 
diminishing differences between an "openjdk=true" build of the JDK 
sources and a Sun product/proprietary build of the sources.  The vast 
majority of the meaningful content of sources used to build, say, 
OpenJDK 7, is the same as that used to build Sun's proprietary product. 
  For example, overall in the langtools area, we don't have any closed 
code today and we actively don't want any introduced!  However, the few 
differences do tend to get a disproportionate amount of attention.

I strongly support Mark's initiative to publish and compare OpenJDK 
regression test results.  Now that jtreg is (finally!) available under 
open source, I think it is natural to use the regression tests that come 
as part of the JDK source as one shared way to get a read on the quality 
of the resulting bits.

One artifact of more than a decade of development before being an open 
source project is that not all of the regression tests are in the open; 
of course, that is not directly visible to the OpenJDK project.  A much 
smaller, but more visible, artifact is a case like my generics Probe 
test, written in 2004, that assumes the availability of a class which 
happens to not be in OpenJDK.  What should this test be today with the 
current situation of the JDK code?  I don't think simply moving the test 
to the closed area is the best solution and more maintenance purposes I 
prefer to not break the test into open and closed portions; I expect the 
understanding of good solutions to these boundary cases to be refined 
over time.

-Joe


From gnu_andrew at member.fsf.org  Thu May 22 16:37:08 2008
From: gnu_andrew at member.fsf.org (Andrew John Hughes)
Date: Fri, 23 May 2008 00:37:08 +0100
Subject: jtreg testing integrated
In-Reply-To: <4835FBEA.8010208@sun.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
	<4834AA89.40001@sun.com>
	<17c6771e0805211702x6c2d5955tf9cbecc07d5c3d26@mail.gmail.com>
	<17c6771e0805211723h60ee30fhdb1f68da9ec8108d@mail.gmail.com>
	<4835FBEA.8010208@sun.com>
Message-ID: <17c6771e0805221637u347bb137teaabac893cdf249b@mail.gmail.com>

On 23/05/2008, Joseph D. Darcy  wrote:
> Andrew John Hughes wrote:
>
> >
> > >  >  Yes, getting accurate, descriptive, and neutral (and concise)
> wording can
> > >  > be tricky, as "proprietary" is also disparaging in some contexts ;-)
> > >  >
> > >
> > >
> > > Er... it's very much intended to be disparaging.  There's a good basis
> > >  for that, whereas I don't see one for simply classifying all other
> > >  builds as below the standard of this 'production build' -- well,
> > >  outside Sun anyway :)
> > >
> > >
> >
> > It occurred to me I should probably clarify this a little more, and
> > the rest of the discussion with a little context.
> >
> > OpenJDK is pretty much the first extended content I and many other GNU
> > Classpath/GCJ/etc. developers have had with Sun's JDK.  Prior to this,
> > if it was used at all, it would be to run a simple test case because
> > the output differed between the Classpath implementation and Sun's
> > reference implementation.  Certainly no-one who worked on these
> > projects will have seen the source code; this is a pre-requisite for
> > this work.
> >
> > This is still very much the case; with the use of IcedTea you are
> > seeing a switch not from shipping Sun's proprietary JDK but from
> > shipping a variety of Classpath-based solutions.  The proprietary JDK
> > doesn't really enter into the mainstream of most distributions such as
> > Fedora, Debian or Ubuntu.  If it's packaged at all, it lurks in a
> > separate repository for non-Free packages.
> >
>
>  Which is why OpenJDK 6 is good news :-)
>
>

I agree.  In fact, I'd go as far as to say fantastic :)

> > Thus, I get a little alarmed when I read comments about special cases
> > being added to the GPLed implementation to handle issues with the
> > proprietary JDK.  This is not because this is inherently wrong, but
> > simply because I can foresee this causing additional problems or
> > inconveniences for those who are now packaging and shipping OpenJDK.
> > Indeed, I believe Mark started looking into this specifically for this
> > reason; so that the tests could be run on the OpenJDK being packaged
> > in distributions and so the community could have a goal to work
> > towards in fixing any issues.
> >
> > So I apologise if any of my comments read as being abrasive or as not
> > understanding the issues of Sun's 'production build'.  But it's
> > something very foreign to us, and something I'd expect to remain so,
> > while the production build remains a proprietary product.
> >
>
>  Sending email from a fsf.org address, I wouldn't be surprised if you had
> disparaging thoughts about proprietary, non-Free, software even if you
> didn't voice them ;-)  So no slight was taken and my use of "production JDK"
> wasn't intended to detract from any OpenJDK distributions.
>

That's good to hear, and I personally didn't interpret the term that
way.  I'm just overtly aware that it so easily could be.

>  I've worked on the JDK at Sun for a while now so I have a different
> perspective on the code.  For me, in addition to everything it was before
> for the previous 10+ years, the (Open)JDK code base is now also an open
> source project under the GPL.  This has been and continues to be an
> adjustment to how we in Sun think about and work with the code and there are
> still some issues to work through, including addressing the
> copyright/licensing concerns recently raised by Debian's review of an
> OpenJDK package as well as adjusting the regression tests to be more
> appropriate for OpenJDK.
>

As external observers of this transformation, we can see this issue
and appreciate how things are slowly changing for the better.  Our
comments are intended to help this process, rather than hinder, and I
hope this is the case.

Getting the OpenJDK into Debian will be a nice milestone, simply
because of this legal scrutiny it is currently undergoing.  I use
Debian on many of my machines (and have manually installed OpenJDK6 on
them) and this level of integrity is one of the main reasons I do so.

>  One of my many not-yet-written blog entries is a discussion of the
> diminishing differences between an "openjdk=true" build of the JDK sources
> and a Sun product/proprietary build of the sources.  The vast majority of
> the meaningful content of sources used to build, say, OpenJDK 7, is the same
> as that used to build Sun's proprietary product.  For example, overall in
> the langtools area, we don't have any closed code today and we actively
> don't want any introduced!  However, the few differences do tend to get a
> disproportionate amount of attention.
>

Given the langtools are now in a separate tree in OpenJDK6, could the
ClosedJDK6 builds not start using this instead?  It would mean some
overhead and change initially, but once the update was done, it would
reduce maintenance overall IMO.

>  I strongly support Mark's initiative to publish and compare OpenJDK
> regression test results.  Now that jtreg is (finally!) available under open
> source, I think it is natural to use the regression tests that come as part
> of the JDK source as one shared way to get a read on the quality of the
> resulting bits.
>

Me too.  It's great to see jtreg finally being Freed.  As I mentioned
previously on the list, I've tried running the tests previously in a
very adhoc way because I was eager to use these, not just for testing
OpenJDK but also (presumably from some masochistic desire) against GNU
Classpath.

>  One artifact of more than a decade of development before being an open
> source project is that not all of the regression tests are in the open; of
> course, that is not directly visible to the OpenJDK project.  A much
> smaller, but more visible, artifact is a case like my generics Probe test,
> written in 2004, that assumes the availability of a class which happens to
> not be in OpenJDK.  What should this test be today with the current
> situation of the JDK code?  I don't think simply moving the test to the
> closed area is the best solution and more maintenance purposes I prefer to
> not break the test into open and closed portions; I expect the understanding
> of good solutions to these boundary cases to be refined over time.
>

The revelation that some of the ClosedJDK classes are obfusticated is
new to me too. Is this all the test is looking for?  If so, it might
be one of the few that does deserve to be segregated for the closed
build, although I agree that the majority need more detailed handling.

>  -Joe
>


-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


From Joe.Darcy at Sun.COM  Thu May 22 17:40:00 2008
From: Joe.Darcy at Sun.COM (Joseph D. Darcy)
Date: Thu, 22 May 2008 17:40:00 -0700
Subject: jtreg testing integrated
In-Reply-To: <17c6771e0805221637u347bb137teaabac893cdf249b@mail.gmail.com>
References: <1211188871.5783.26.camel@dijkstra.wildebeest.org>
	<1211202423.5783.30.camel@dijkstra.wildebeest.org>
	<4831B203.6050305@sun.com>
	<1211276460.3284.39.camel@dijkstra.wildebeest.org>
	<48346C07.3010404@sun.com>
	<17c6771e0805211414n13085d8drfd8a3d0ccc19a407@mail.gmail.com>
	<4834AA89.40001@sun.com>
	<17c6771e0805211702x6c2d5955tf9cbecc07d5c3d26@mail.gmail.com>
	<17c6771e0805211723h60ee30fhdb1f68da9ec8108d@mail.gmail.com>
	<4835FBEA.8010208@sun.com>
	<17c6771e0805221637u347bb137teaabac893cdf249b@mail.gmail.com>
Message-ID: <48361260.4060600@sun.com>

Andrew John Hughes wrote:
> On 23/05/2008, Joseph D. Darcy  wrote:
>> Andrew John Hughes wrote:

[snip]

>>  One of my many not-yet-written blog entries is a discussion of the
>> diminishing differences between an "openjdk=true" build of the JDK sources
>> and a Sun product/proprietary build of the sources.  The vast majority of
>> the meaningful content of sources used to build, say, OpenJDK 7, is the same
>> as that used to build Sun's proprietary product.  For example, overall in
>> the langtools area, we don't have any closed code today and we actively
>> don't want any introduced!  However, the few differences do tend to get a
>> disproportionate amount of attention.
>>
> 
> Given the langtools are now in a separate tree in OpenJDK6, could the
> ClosedJDK6 builds not start using this instead?  It would mean some
> overhead and change initially, but once the update was done, it would
> reduce maintenance overall IMO.

Yes, such a switchover would be possible in principle.  I acknowledge 
the likely long-term engineering benefits, but I suspect the folks 
running the 6 update releases would be reticent to move over to the 
different code base.

[snip]

>>  One artifact of more than a decade of development before being an open
>> source project is that not all of the regression tests are in the open; of
>> course, that is not directly visible to the OpenJDK project.  A much
>> smaller, but more visible, artifact is a case like my generics Probe test,
>> written in 2004, that assumes the availability of a class which happens to
>> not be in OpenJDK.  What should this test be today with the current
>> situation of the JDK code?  I don't think simply moving the test to the
>> closed area is the best solution and more maintenance purposes I prefer to
>> not break the test into open and closed portions; I expect the understanding
>> of good solutions to these boundary cases to be refined over time.
>>
> 
> The revelation that some of the ClosedJDK classes are obfusticated is
> new to me too. Is this all the test is looking for?  If so, it might
> be one of the few that does deserve to be segregated for the closed
> build, although I agree that the majority need more detailed handling.

The JDK is quite a complicated piece of software; I've learned many more 
things about it during the course of OpenJDK 6!  With US crypto 
regulations as they currently are, the crypto class files in Sun's 
commercial product must be obfuscated.

What my test does is to load the classes in question reflectively and 
then poke at them using the getGenericFoo methods 
(getGenericConstructors, etc.).  As opposed to the getFoo methods, the 
getGenericFoo methods use the signature attribute to compute their 
result.  Some of the classes loaded are these obfuscated classes.  In 
the past, the obfuscator didn't preserve the signature attribute 
properly and the toGenericFoo methods would throw exceptions and 
otherwise not work.  The test makes sure that the getGenericFoo methods 
work on these classes too.  Just to be clear, the obfuscated classes are 
*not* in OpenJDK.

-Joe


From langel at redhat.com  Fri May 23 13:42:31 2008
From: langel at redhat.com (Lillian Angel)
Date: Fri, 23 May 2008 20:42:31 +0000
Subject: changeset in /hg/icedtea6: 2008-05-23  Lillian Angel  

changeset 39145184c656 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=39145184c656
description:
	2008-05-23  Lillian Angel  

	        * Makefile.am: Updated jtreg to use correct javac and jar.
	        * Makefile.in: Regenerated.

diffstat:

3 files changed, 9 insertions(+), 4 deletions(-)
ChangeLog   |    5 +++++
Makefile.am |    4 ++--
Makefile.in |    4 ++--

diffs (44 lines):

diff -r 707fd0557fda -r 39145184c656 ChangeLog
--- a/ChangeLog	Thu May 22 12:25:20 2008 -0400
+++ b/ChangeLog	Fri May 23 16:42:24 2008 -0400
@@ -1,3 +1,8 @@ 2008-05-22  Lillian Angel  
+
+	* Makefile.am: Updated jtreg to use correct javac and jar.
+	* Makefile.in: Regenerated.
+
 2008-05-22  Lillian Angel  
 
 	* Makefile.am: Fixed conditions for using JAVAC.
diff -r 707fd0557fda -r 39145184c656 Makefile.am
--- a/Makefile.am	Thu May 22 12:25:20 2008 -0400
+++ b/Makefile.am	Fri May 23 16:42:24 2008 -0400
@@ -933,10 +933,10 @@ stamps/jtreg.stamp:
 stamps/jtreg.stamp:
 	rm -rf test/jtreg/classes
 	mkdir -p test/jtreg/classes
-	bootstrap/icedtea/bin/javac -g -d test/jtreg/classes -source 1.5 \
+	$(ICEDTEA_BOOT_DIR)/bin/javac -g -d test/jtreg/classes -source 1.5 \
 		 -encoding iso-8859-1 `find test/jtreg/com -name '*.java'`
 	(cd test/jtreg; \
-	 ../../bootstrap/icedtea/bin/jar cfm ../jtreg.jar \
+	 $(ICEDTEA_BOOT_DIR)/bin/jar cfm ../jtreg.jar \
 		META-INF/MANIFEST.MF \
 		legal  README JavaTest.cmdMgrs.lst JavaTest.toolMgrs.lst \
 		`find com -type f -a -not -name '*.java'` \
diff -r 707fd0557fda -r 39145184c656 Makefile.in
--- a/Makefile.in	Thu May 22 12:25:20 2008 -0400
+++ b/Makefile.in	Fri May 23 16:42:24 2008 -0400
@@ -1369,10 +1369,10 @@ stamps/jtreg.stamp:
 stamps/jtreg.stamp:
 	rm -rf test/jtreg/classes
 	mkdir -p test/jtreg/classes
-	bootstrap/icedtea/bin/javac -g -d test/jtreg/classes -source 1.5 \
+	$(ICEDTEA_BOOT_DIR)/bin/javac -g -d test/jtreg/classes -source 1.5 \
 		 -encoding iso-8859-1 `find test/jtreg/com -name '*.java'`
 	(cd test/jtreg; \
-	 ../../bootstrap/icedtea/bin/jar cfm ../jtreg.jar \
+	 $(ICEDTEA_BOOT_DIR)/bin/jar cfm ../jtreg.jar \
 		META-INF/MANIFEST.MF \
 		legal  README JavaTest.cmdMgrs.lst JavaTest.toolMgrs.lst \
 		`find com -type f -a -not -name '*.java'` \


From bugzilla-daemon at icedtea.classpath.org  Sat May 24 00:48:45 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Sat, 24 May 2008 07:48:45 +0000
Subject: [Bug 139] no source included for maf-1_0.jar, jlfgr-1_0.jar
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=139





------- Comment #1 from Paul.Hampson at Pobox.com  2008-05-24 07:48 -------
jlfgr-1_0.jar is presumably equivalent to the one found at
http://java.sun.com/developer/techDocs/hi/repository/ under a license matching
the LICENSE file contained within.

However, the one in the openJDK source appears to have SHA1 sums and a digital
signature thereof for the LICENSE file and the 186 image files, which the
downloadable one lacks.

The only differences between the content of the included and downloadable
jlfgr-1_0.jar are in the META-INF/ directory.


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From bugzilla-daemon at icedtea.classpath.org  Sat May 24 00:55:02 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Sat, 24 May 2008 07:55:02 +0000
Subject: [Bug 139] no source included for maf-1_0.jar, jlfgr-1_0.jar
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=139





------- Comment #2 from Paul.Hampson at Pobox.com  2008-05-24 07:55 -------
MAF-1_0.jar provides com.sun.java.swing.*, which
http://openjdk.neojava.org/hotspot/search?q=com.sun.java.swing. indicates is
used in a few places in the openJDK, and is also used at least by
beantest.action package from the OBS Instantiation Environment (See
http://control.ee.ethz.ch/~ceg/AutomatedFrameworkInstantiation/doc/javadoc/beantest/action/package-summary.html)


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From bugzilla-daemon at icedtea.classpath.org  Sat May 24 01:39:03 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Sat, 24 May 2008 08:39:03 +0000
Subject: [Bug 140] no source included for jscheme*jar
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=140





------- Comment #2 from Paul.Hampson at Pobox.com  2008-05-24 08:39 -------
jscheme.jar matches lib/jscheme.jar contained in jschemeFull_5_0_0.jar from
http://sourceforge.net/project/showfiles.php?group_id=50593. This is under the
zlib/png licensce according to the documentation in jschemeFull_5_0_0.jar


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From bugzilla-daemon at icedtea.classpath.org  Sat May 24 02:32:54 2008
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Sat, 24 May 2008 09:32:54 +0000
Subject: [Bug 141] corba .prp files "contain restricted materials of IBM"
Message-ID: 

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=141





------- Comment #3 from Paul.Hampson at Pobox.com  2008-05-24 09:32 -------
In fact, everything that isn't a java source or class file in
openjdk/corba/src/share/classes/com/sun/tools/corba/se/idl/ except ir.idl,
orb.idl (both have GPL boilerplate) and keywords (has no copyright at all) has
"(C) COPYRIGHT International Business Machines Corp." and no GPL boilerplate.

first.set
follow.set
grammar3.idl
grammar.idl
idl_ja.prp
idl.prp
idl_zh_CN.prp
toJavaPortable/toJavaPortable_zh_CN.prp
toJavaPortable/toJavaPortable.prp
toJavaPortable/toJavaPortable_ja.prp

The set and idl files are all marked "THIS PRODUCT CONTAINS RESTRICTED
MATERIALS OF IBM"
The prp files are all marked "Licensed Materials - Property of IBM"


-- 
Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


From mark at klomp.org  Sun May 25 10:38:40 2008
From: mark at klomp.org (Mark Wielaard)
Date: Sun, 25 May 2008 19:38:40 +0200
Subject: changeset in /hg/icedtea: 2008-05-21  Lillian Angel 
	
References: 
Message-ID: <1211737120.3166.26.camel@dijkstra.wildebeest.org>

Hi Lillian,

On Wed, 2008-05-21 at 13:41 +0000, Lillian Angel wrote:
> changeset aeba6ca27fc7 in /hg/icedtea
> details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=aeba6ca27fc7
> description:
> 	2008-05-21  Lillian Angel  
> 
> 	        * .hgignore: Updated.
> 	        * Makefile.am: Updated to build with ecj properly.
> 	        * Makefile.in: Regenerated.
> 	        * aclocal.m4: Likewise.
> 	        * configure: Likewise.
> 	        * javac.in: Changed to use 1.6 source.

Was that last change to 1.6 necessary? It makes building with a gcj that
doesn't support the 1.6 target classes impossible (like on fedora 8).

I tested on Fedora 8 and Fedora 9 with that last change reverted (and
explicitly marking -source 1.5 in Makefile.am - -source 1.6 isn't
actually a valid/meaningful value since there were no java language
changes between 1.5 and 1.6). And it build fine now on both platform. So
for now I have made this change:

2008-05-25  Mark Wielaard  

        * Makefile.am: Use -source 1.5 whenever possible.
        * Makefile.in: Regenerated.
        * javac.in: Use -1.5.

Please let us on older platforms know if you really need to upgrade to
1.6 for some reason, then we can see if we can find some solution for
making the build work when using a 1.5 only runtime.

Thanks,

Mark
-------------- next part --------------
A non-text attachment was scrubbed...
Name: revert-to-1.5.patch
Type: text/x-patch
Size: 2075 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080525/5f271cee/attachment.bin 

From mark at klomp.org  Sun May 25 10:43:21 2008
From: mark at klomp.org (Mark Wielaard)
Date: Sun, 25 May 2008 17:43:21 +0000
Subject: changeset in /hg/icedtea6: Use -1.5 whenever possible.
Message-ID: 

changeset d72271b9d9ef in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d72271b9d9ef
description:
	Use -1.5 whenever possible.

	2008-05-25  Mark Wielaard  

	       * Makefile.am: Use -source 1.5 whenever possible.
	       * Makefile.in: Regenerated.
	       * javac.in: Use -1.5.

diffstat:

3 files changed, 13 insertions(+), 13 deletions(-)
Makefile.am |   12 ++++++------
Makefile.in |   12 ++++++------
javac.in    |    2 +-

diffs (105 lines):

diff -r 39145184c656 -r d72271b9d9ef Makefile.am
--- a/Makefile.am	Fri May 23 16:42:24 2008 -0400
+++ b/Makefile.am	Sun May 25 19:42:00 2008 +0200
@@ -796,12 +796,12 @@ stamps/hotspot-tools-class-files.stamp: 
 	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
 	then \
 	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-            -source 1.6 \
+            -source 1.5 \
             -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
             -bootclasspath '' @$< ; \
 	else \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	    -source 1.6 \
+	    -source 1.5 \
 	    -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
 	    -bootclasspath '' @$< ; \
 	fi
@@ -843,12 +843,12 @@ stamps/rt-class-files.stamp: rt-source-f
 	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
 	then \
 	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt \
-	    -source 1.6 \
+	    -source 1.5 \
 	    -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
 	    -bootclasspath '' @$< ; \
 	else \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-            -source 1.6 \
+            -source 1.5 \
             -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
             -bootclasspath '' @$< ; \
 	fi
@@ -888,12 +888,12 @@ stamps/extra-class-files.stamp: extra-so
 	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
 	then \
 	  $(JAVAC) $(MEMORY_LIMIT) -g -d extra-lib \
-	    -source 1.6 \
+	    -source 1.5 \
  	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
 	    -bootclasspath '' @extra-source-files.txt ; \
 	else \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
-            -source 1.6 \
+            -source 1.5 \
             -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
             -bootclasspath '' @extra-source-files.txt ; \
 	fi
diff -r 39145184c656 -r d72271b9d9ef Makefile.in
--- a/Makefile.in	Fri May 23 16:42:24 2008 -0400
+++ b/Makefile.in	Sun May 25 19:42:00 2008 +0200
@@ -1232,12 +1232,12 @@ stamps/hotspot-tools-class-files.stamp: 
 	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
 	then \
 	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-            -source 1.6 \
+            -source 1.5 \
             -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
             -bootclasspath '' @$< ; \
 	else \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/hotspot-tools \
-	    -source 1.6 \
+	    -source 1.5 \
 	    -sourcepath rt:hotspot-tools:$(OPENJDK_SOURCEPATH_DIRS):generated \
 	    -bootclasspath '' @$< ; \
 	fi
@@ -1279,12 +1279,12 @@ stamps/rt-class-files.stamp: rt-source-f
 	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
 	then \
 	  $(JAVAC) $(MEMORY_LIMIT) -g -d lib/rt \
-	    -source 1.6 \
+	    -source 1.5 \
 	    -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
 	    -bootclasspath '' @$< ; \
 	else \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d lib/rt \
-            -source 1.6 \
+            -source 1.5 \
             -sourcepath rt:$(OPENJDK_SOURCEPATH_DIRS):generated \
             -bootclasspath '' @$< ; \
 	fi
@@ -1324,12 +1324,12 @@ stamps/extra-class-files.stamp: extra-so
 	if ! test -d $(ICEDTEA_BOOT_DIR) ; \
 	then \
 	  $(JAVAC) $(MEMORY_LIMIT) -g -d extra-lib \
-	    -source 1.6 \
+	    -source 1.5 \
  	    -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
 	    -bootclasspath '' @extra-source-files.txt ; \
 	else \
 	  $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g -d extra-lib \
-            -source 1.6 \
+            -source 1.5 \
             -sourcepath extra -cp bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \
             -bootclasspath '' @extra-source-files.txt ; \
 	fi
diff -r 39145184c656 -r d72271b9d9ef javac.in
--- a/javac.in	Fri May 23 16:42:24 2008 -0400
+++ b/javac.in	Sun May 25 19:42:00 2008 +0200
@@ -31,4 +31,4 @@ fi
 fi
 
 CLASSPATH=@ECJ_JAR@${CLASSPATH:+:}$CLASSPATH \
-  @JAVA@ org.eclipse.jdt.internal.compiler.batch.Main -1.6 -nowarn $bcoption $NEW_ARGS
+  @JAVA@ org.eclipse.jdt.internal.compiler.batch.Main -1.5 -nowarn $bcoption $NEW_ARGS


From mark at klomp.org  Sun May 25 12:16:28 2008
From: mark at klomp.org (Mark Wielaard)
Date: Sun, 25 May 2008 21:16:28 +0200
Subject: SV:  Opening multiple output lines
In-Reply-To: <36EC82E93EB0AD40A4301DAD654323868CA4FB2ACD@mail.midverk.is>
References: <475F1063.6080109@sun.com> <48191A17.3070604@redhat.com>
	<20080504171929.GA20060@gnu.wildebeest.org>
	,<1210294097.16656.18.camel@dijkstra.wildebeest.org>
	<36EC82E93EB0AD40A4301DAD654323868CA4FB2ACD@mail.midverk.is>
Message-ID: <1211742988.3166.43.camel@dijkstra.wildebeest.org>

Hi Karl,

On Fri, 2008-05-09 at 19:58 +0000, Karl Helgason wrote:
> I added software sound mixing to the gervill Project which writes to default directaudio backend.
> And thus allows true sharing of audio device (within the Java application).

This is great! Sorry for the late response. I integrated it into
icedtea. But I haven't set it as default yet because I didn't have time
to fully test it. I do want to have it integrated so others can play
with it though.

Also thanks for your AudioFloatFormatConverter.getTargetFormats() fix, I
removed my own attempt of fixing that. And for integrating the dls/sf2
soundbank opening issues.

Also since we now have jtreg integrated I imported all the tests so they
will now all be run by default on a make check (or make jtregcheck).
That found two issues.

One with a test. TestRender1 accesses its test files through
getResourceAsStream(), but the jtreg tag specification recommends
opening files through the system property test.src so that the test can
be run inside another work directory. See
http://www.openjdk.org/jtreg/tag-spec.txt
Patch to change this attached.

The other issue is with the change that made SoftAudioProcessor
(limiter, reverb, chorus, agc) more general. Since you cannot provide a
Synthesizer directly to one of these classes you need a way to pass it
the control rate. Unfortunately SoftSynthesizer.getControlRate() is
currently protected and there is as far as I can see no other way to get
the control rate. So I believe the method should be made public. A
change to do this and adapt the tests to use this is attached.

With these changes all tests pass.

Cheers,

Mark
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TestRender1-test.src.patch
Type: text/x-patch
Size: 1370 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080525/5beff035/attachment.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: controlrate.patch
Type: text/x-patch
Size: 7079 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080525/5beff035/attachment-0001.bin 

From mark at klomp.org  Sun May 25 12:21:57 2008
From: mark at klomp.org (Mark Wielaard)
Date: Sun, 25 May 2008 19:21:57 +0000
Subject: changeset in /hg/icedtea6: Import Gervill fixes from CVS and add...
Message-I