From bugzilla-daemon at icedtea.classpath.org Fri Aug 1 08:24:54 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 01 Aug 2008 15:24:54 +0000 Subject: [Bug 178] New: Icedtea7 configure error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=178 Summary: Icedtea7 configure error Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: eric225125 at yahoo.com I get the following error when I try to compile Icedtea7 from the Mercurial: configure: error: conditional "GCC_OLD" was never defined. Usually this means the macro was only invoked conditionally. !!! ERROR in dev-java/icedtea-9999: !!! In econf at line 2040 !!! econf failed -- 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 Fri Aug 1 08:26:44 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 01 Aug 2008 15:26:44 +0000 Subject: [Bug 178] Icedtea7 configure error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=178 ------- Comment #1 from eric225125 at yahoo.com 2008-08-01 15:26 ------- Created an attachment (id=85) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=85&action=view) config.log -- 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 robermann at gmail.com Sat Aug 2 04:39:37 2008 From: robermann at gmail.com (Roberto Mannai) Date: Sat, 2 Aug 2008 13:39:37 +0200 Subject: openjdk/icedtea: com.sun.image.codec.jpeg package In-Reply-To: <414e44f70808020428k4baf27dei77237ce115d40eaa@mail.gmail.com> References: <414e44f70808020428k4baf27dei77237ce115d40eaa@mail.gmail.com> Message-ID: <414e44f70808020439w6a45e057y3090d48a955e421f@mail.gmail.com> Hi all Does anyone know what is the "com.sun.image.codec.jpeg." package destiny? As far I understand, in openjdk 6 it is handled with a patch: http://icedtea.classpath.org/hg/icedtea/file/0fd2fbf0dfd0/patches/icedtea-jpegclasses.patch (but fails in not adding the setJPEGEncodeParam method) [javac] /root/.eclipse/CodeSounding/java2Demo/srcRewritten/java2d/demos/Images/JPEGFlip.java:113: cannot find symbol [javac] symbol : method setJPEGEncodeParam(com.sun.image.codec.jpeg.JPEGEncodeParam) [javac] location: class com.sun.image.codec.jpeg.JPEGImageEncoder [javac] encoder.setJPEGEncodeParam(param); [javac] ^ In icedtea 7 it is totally missing: [javac] /root/.eclipse/CodeSounding/java2Demo/srcRewritten/java2d/demos/Images/JPEGFlip.java:44: package com.sun.image.codec.jpeg does not exist [javac] import com.sun.image.codec.jpeg.*; [javac] ^ Best regards Roberto Mannai From robermann at gmail.com Sat Aug 2 04:42:04 2008 From: robermann at gmail.com (Roberto Mannai) Date: Sat, 2 Aug 2008 13:42:04 +0200 Subject: openjdk,icedtea - Xmx option mandatory Message-ID: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> Hi all For a test I've just installed: java-1_7_0-icedtea on my opensuse11 box. "java -version" command crashes with an error. In order to work, I must use the -Xmx option, also with 1m: java -Xmx1m -version Any reason for it? Is it a bug? Ciao Roberto Mannai From doko at ubuntu.com Sun Aug 3 10:34:14 2008 From: doko at ubuntu.com (Matthias Klose) Date: Sun, 03 Aug 2008 19:34:14 +0200 Subject: [patch] fix build on architectures with a signed size_t Message-ID: <4895EC16.6030406@ubuntu.com> attached are three patches to build on architectures with a signed size_t (s390-linux-gnu). - jdk-signed-size_t.diff, there's already a compat SSIZE_T macro in the code, just use it. - hotspot-idx_t-signed-size_t.diff, the BitMap code assumes a unsigned size_t. - hotspot-params-signed-size_t.diff, command line parameters of type size_t currently are not supported. As a workaround, add casts. This may be better addressed. Matthias -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: jdk-signed-size_t.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080803/7513da86/attachment.ksh -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: hotspot-idx_t-signed-size_t.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080803/7513da86/attachment-0001.ksh -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: hotspot-params-signed-size_t.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080803/7513da86/attachment-0002.ksh From fw at deneb.enyo.de Sun Aug 3 15:55:04 2008 From: fw at deneb.enyo.de (Florian Weimer) Date: Mon, 04 Aug 2008 00:55:04 +0200 Subject: [patch] fix build on architectures with a signed size_t In-Reply-To: <4895EC16.6030406@ubuntu.com> (Matthias Klose's message of "Sun, 03 Aug 2008 19:34:14 +0200") References: <4895EC16.6030406@ubuntu.com> Message-ID: <87ej55k8tz.fsf@mid.deneb.enyo.de> * Matthias Klose: > attached are three patches to build on architectures with a signed size_t > (s390-linux-gnu). Yuck. Is this really true? Seems so. C99 requires size_t to be unsigned (section 6.5.3.4), and so does POSIX. I suspsect this was also the case in C90, it's not listed as a change in C99. And if it's unsigned in C90, it's unsigned in C++ (and the The C++ Programming Language, 3rd edition, confirms this). In fact, the GNU C++ standard library assumes that std::size_t is unsigned. IIRC, there is code out there which performs security checks (against integer overflows, for instance) and which assumes that size_t is unsigned. Call me insane, but it's the architecture that needs fixing, not OpenJDK. From fw at deneb.enyo.de Sun Aug 3 16:01:04 2008 From: fw at deneb.enyo.de (Florian Weimer) Date: Mon, 04 Aug 2008 01:01:04 +0200 Subject: [patch] fix build on architectures with a signed size_t In-Reply-To: <87ej55k8tz.fsf@mid.deneb.enyo.de> (Florian Weimer's message of "Mon, 04 Aug 2008 00:55:04 +0200") References: <4895EC16.6030406@ubuntu.com> <87ej55k8tz.fsf@mid.deneb.enyo.de> Message-ID: <877iaxk8jz.fsf@mid.deneb.enyo.de> * Florian Weimer: > * Matthias Klose: > >> attached are three patches to build on architectures with a signed size_t >> (s390-linux-gnu). > > Yuck. Is this really true? Seems so. No, it's not. At least not in the sid chroot on raptor.debian.org. FWIW, my corrected test case is: #include volatile size_t x; main() { x = -1; if (x < 0) puts("broken"); } From gnu_andrew at member.fsf.org Sun Aug 3 18:24:46 2008 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Mon, 4 Aug 2008 02:24:46 +0100 Subject: Re-enable --with-openjdk-src-dir support for IcedTea7 Message-ID: <20080804012446.GA1509@rivendell.middle-earth.co.uk> This patch re-enables the ability to use --with-openjdk-src-dir to point to an OpenJDK tree in the filesystem. A copy is taken so that the original tree is not affected by the IcedTea build patches. ChangeLog: 2008-08-04 Andrew John Hughes * Makefile.am: Don't download and extract when an external source dir is specified. Instead, obtain a local copy of the tree. * acinclude.m4: Use a more meaningful name for the OpenJDK srcdir conditional. -- 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 -------------- next part -------------- diff -r 1af9afe21773 Makefile.am --- a/Makefile.am Sun Jul 27 22:30:04 2008 +0100 +++ b/Makefile.am Mon Aug 04 02:21:27 2008 +0100 @@ -280,6 +280,7 @@ stamps/download.stamp: +if !OPENJDK_SRC_DIR_FOUND if USE_ALT_OPENJDK_SRC_ZIP else if USE_HG @@ -308,6 +309,7 @@ fi ; \ $(WGET) $(OPENJDK_URL)$(OPENJDK_SRC_ZIP) -O $(OPENJDK_SRC_ZIP); \ fi +endif endif endif if WITH_CACAO @@ -464,6 +466,9 @@ $(DISTRIBUTION_PATCHES) stamps/extract.stamp: stamps/download.stamp +if OPENJDK_SRC_DIR_FOUND + cp -a $(OPENJDK_SRC_DIR) openjdk +else if ! test -d openjdk ; then \ if [ ! -z $(OPENJDK_SRC_ZIP) ] ; then \ $(UNZIP) -q $(OPENJDK_SRC_ZIP) ; \ @@ -472,6 +477,7 @@ false; \ fi; \ fi; +endif chmod -R ug+w openjdk sh $(srcdir)/fsg.sh ; mkdir -p stamps diff -r 1af9afe21773 acinclude.m4 --- a/acinclude.m4 Sun Jul 27 22:30:04 2008 +0100 +++ b/acinclude.m4 Mon Aug 04 02:21:27 2008 +0100 @@ -174,7 +174,7 @@ AC_MSG_RESULT(${OPENJDK_SRC_DIR}) ]) AC_SUBST(OPENJDK_SRC_DIR) - AM_CONDITIONAL(GNU_CLASSLIB_FOUND, test "x${conditional_with_openjdk_sources}" = xtrue) + AM_CONDITIONAL(OPENJDK_SRC_DIR_FOUND, test "x${conditional_with_openjdk_sources}" = xtrue) ]) AC_DEFUN([FIND_ECJ_JAR], From Dalibor.Topic at Sun.COM Sun Aug 3 23:03:58 2008 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Mon, 04 Aug 2008 08:03:58 +0200 Subject: VisualVM in IcedTea6 In-Reply-To: <48906FC1.8040303@redhat.com> References: <488F718E.6020309@redhat.com> <4890413F.3010403@ubuntu.com> <17c6771e0807300457j6524cd20ga38c8917e9d3c054@mail.gmail.com> <48906A2E.3060805@redhat.com> <17c6771e0807300638h15304ccdgc90166222205821a@mail.gmail.com> <48906FC1.8040303@redhat.com> Message-ID: <48969BCE.1030306@Sun.COM> Joshua Sumali wrote: > No, it would only build netbeans7, platform2, and visualvm. The actual > "dropping-in" of visualvm occurs right after IcedTea is built. It > happens at the same time as the dropping in of > gcjwebplugin/icedteaplugin (stamps/icedtea.stamp target in Makefile.am). Hi Joshua, On a somewhat related sidenote, I should point out that the NetBeans team is working on GNU/Linux packages out in the open at http://wiki.netbeans.org/NativeLinuxPackages and on the http://installer.netbeans.org/servlets/SummarizeList?listName=linux-packaging mailing list. There has been quite some talk about Fedora on the list recently, you may want to check it out, and see if that wouldn't make the VisualVM inclusion in Fedora simpler. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: Thomas Schr?der, Wolfgang Engels, Dr. Roland B?mer Vorsitzender des Aufsichtsrates: Martin H?ring From aph at redhat.com Mon Aug 4 04:19:21 2008 From: aph at redhat.com (Andrew Haley) Date: Mon, 04 Aug 2008 12:19:21 +0100 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> Message-ID: <4896E5B9.7020603@redhat.com> Roberto Mannai wrote: > For a test I've just installed: > java-1_7_0-icedtea > on my opensuse11 box. > > "java -version" command crashes with an error. In order to work, I > must use the -Xmx option, also with 1m: > > java -Xmx1m -version > > Any reason for it? Is it a bug? It must be. How much memory have you got? Andrew. From aph at redhat.com Mon Aug 4 04:24:02 2008 From: aph at redhat.com (Andrew Haley) Date: Mon, 04 Aug 2008 12:24:02 +0100 Subject: [patch] fix build on architectures with a signed size_t In-Reply-To: <877iaxk8jz.fsf@mid.deneb.enyo.de> References: <4895EC16.6030406@ubuntu.com> <87ej55k8tz.fsf@mid.deneb.enyo.de> <877iaxk8jz.fsf@mid.deneb.enyo.de> Message-ID: <4896E6D2.9030109@redhat.com> Florian Weimer wrote: > * Florian Weimer: > >> * Matthias Klose: >> >>> attached are three patches to build on architectures with a signed size_t >>> (s390-linux-gnu). >> Yuck. Is this really true? Seems so. > > No, it's not. It's not. 7.17 Common definitions 1 The following types and macros are defined in the standard header . Some are also defined in other headers, as noted in their respective subclauses. 2 The types are ptrdiff_t which is the signed integer type of the result of subtracting two pointers; size_t which is the unsigned integer type of the result of the sizeof operator; Andrew. From fw at deneb.enyo.de Mon Aug 4 04:27:41 2008 From: fw at deneb.enyo.de (Florian Weimer) Date: Mon, 04 Aug 2008 13:27:41 +0200 Subject: [patch] fix build on architectures with a signed size_t In-Reply-To: <4896E6D2.9030109@redhat.com> (Andrew Haley's message of "Mon, 04 Aug 2008 12:24:02 +0100") References: <4895EC16.6030406@ubuntu.com> <87ej55k8tz.fsf@mid.deneb.enyo.de> <877iaxk8jz.fsf@mid.deneb.enyo.de> <4896E6D2.9030109@redhat.com> Message-ID: <873allf2aa.fsf@mid.deneb.enyo.de> * Andrew Haley: > Florian Weimer wrote: >> * Florian Weimer: >> >>> * Matthias Klose: >>> >>>> attached are three patches to build on architectures with a signed size_t >>>> (s390-linux-gnu). >>> Yuck. Is this really true? Seems so. >> >> No, it's not. > > It's not. I was more concerned with the reality on s390, not what's in the standard. Unfortunately, my first test case was wrong. From aph at redhat.com Mon Aug 4 04:36:42 2008 From: aph at redhat.com (Andrew Haley) Date: Mon, 04 Aug 2008 12:36:42 +0100 Subject: [patch] fix build on architectures with a signed size_t In-Reply-To: <873allf2aa.fsf@mid.deneb.enyo.de> References: <4895EC16.6030406@ubuntu.com> <87ej55k8tz.fsf@mid.deneb.enyo.de> <877iaxk8jz.fsf@mid.deneb.enyo.de> <4896E6D2.9030109@redhat.com> <873allf2aa.fsf@mid.deneb.enyo.de> Message-ID: <4896E9CA.60008@redhat.com> Florian Weimer wrote: > * Andrew Haley: > >> Florian Weimer wrote: >>> * Florian Weimer: >>> >>>> * Matthias Klose: >>>> >>>>> attached are three patches to build on architectures with a signed size_t >>>>> (s390-linux-gnu). >>>> Yuck. Is this really true? Seems so. >>> No, it's not. >> It's not. > > I was more concerned with the reality on s390, not what's in the > standard. Unfortunately, my first test case was wrong. Is the reality then that GNU C on s/390 is not ISO C compliant? I didn't know that. It must break a ton of code. Andrew. From aph at redhat.com Mon Aug 4 04:43:21 2008 From: aph at redhat.com (Andrew Haley) Date: Mon, 04 Aug 2008 12:43:21 +0100 Subject: [patch] fix build on architectures with a signed size_t In-Reply-To: <4896E9CA.60008@redhat.com> References: <4895EC16.6030406@ubuntu.com> <87ej55k8tz.fsf@mid.deneb.enyo.de> <877iaxk8jz.fsf@mid.deneb.enyo.de> <4896E6D2.9030109@redhat.com> <873allf2aa.fsf@mid.deneb.enyo.de> <4896E9CA.60008@redhat.com> Message-ID: <4896EB59.5010802@redhat.com> Andrew Haley wrote: > Florian Weimer wrote: >> * Andrew Haley: >> >>> Florian Weimer wrote: >>>> * Florian Weimer: >>>> >>>>> * Matthias Klose: >>>>> >>>>>> attached are three patches to build on architectures with a signed size_t >>>>>> (s390-linux-gnu). >>>>> Yuck. Is this really true? Seems so. >>>> No, it's not. >>> It's not. >> I was more concerned with the reality on s390, not what's in the >> standard. Unfortunately, my first test case was wrong. > > Is the reality then that GNU C on s/390 is not ISO C compliant? > I didn't know that. It must break a ton of code. I don't believe it. Here's s390/linux.h: #undef SIZE_TYPE #define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "long unsigned int") #undef PTRDIFF_TYPE #define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int") Andrew. From robermann at gmail.com Mon Aug 4 05:23:24 2008 From: robermann at gmail.com (Roberto Mannai) Date: Mon, 4 Aug 2008 14:23:24 +0200 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <4896E5B9.7020603@redhat.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> Message-ID: <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> My system has 512 mb of RAM, on a 32 bit processor. If I try to set the Xms option, java complains it is larger than max size, so in my opinion the jvm does not allocate any default xmx parameter. The error is: "Could not reserve enough space for object heap'' The same message occurs also with java-1_6_0-openjdk. Best regards Roberto Mannai On 8/4/08, Andrew Haley wrote: > Roberto Mannai wrote: > > > For a test I've just installed: > > java-1_7_0-icedtea > > on my opensuse11 box. > > > > "java -version" command crashes with an error. In order to work, I > > must use the -Xmx option, also with 1m: > > > > java -Xmx1m -version > > > > Any reason for it? Is it a bug? > > It must be. How much memory have you got? > > Andrew. > From aph at redhat.com Mon Aug 4 05:26:24 2008 From: aph at redhat.com (Andrew Haley) Date: Mon, 04 Aug 2008 13:26:24 +0100 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> Message-ID: <4896F570.3080300@redhat.com> Roberto Mannai wrote: > My system has 512 mb of RAM, on a 32 bit processor. > > If I try to set the Xms option, java complains it is larger than max > size, so in my opinion the jvm does not allocate any default xmx > parameter. > > The error is: > "Could not reserve enough space for object heap'' > > The same message occurs also with java-1_6_0-openjdk. Maybe a limits problem? What does ulimit -a say? > On 8/4/08, Andrew Haley wrote: >> Roberto Mannai wrote: >> >>> For a test I've just installed: >>> java-1_7_0-icedtea >>> on my opensuse11 box. >>> >>> "java -version" command crashes with an error. In order to work, I >>> must use the -Xmx option, also with 1m: >>> >>> java -Xmx1m -version >>> >>> Any reason for it? Is it a bug? >> It must be. How much memory have you got? >> >> Andrew. >> From mark at klomp.org Mon Aug 4 05:35:19 2008 From: mark at klomp.org (Mark Wielaard) Date: Mon, 04 Aug 2008 14:35:19 +0200 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> Message-ID: <1217853319.3061.11.camel@dijkstra.wildebeest.org> Hi Roberto, On Mon, 2008-08-04 at 14:23 +0200, Roberto Mannai wrote: > On 8/4/08, Andrew Haley wrote: > > Roberto Mannai wrote: > > > > > For a test I've just installed: > > > java-1_7_0-icedtea > > > on my opensuse11 box. > > > > > > "java -version" command crashes with an error. In order to work, I > > > must use the -Xmx option, also with 1m: > > > > > > java -Xmx1m -version > > > > > > Any reason for it? Is it a bug? > > > > It must be. How much memory have you got? > > My system has 512 mb of RAM, on a 32 bit processor. > > If I try to set the Xms option, java complains it is larger than max > size, so in my opinion the jvm does not allocate any default xmx > parameter. > > The error is: > "Could not reserve enough space for object heap'' > > The same message occurs also with java-1_6_0-openjdk. That is strange. Can you give us some more information? How exactly did you install icedtea/openjdk? Was is it a precompiled package, if so from where? If not, how did you configure and compile from source? Do other opensuse users have the same issue? What is the exact command given and output? Both for the failing and the working -Xmx1m -version case? (Best to copy/paste the command line completely, any output, including errors, stacktraces and the output of -version is interesting.) Thanks, Mark From fw at deneb.enyo.de Mon Aug 4 07:55:41 2008 From: fw at deneb.enyo.de (Florian Weimer) Date: Mon, 04 Aug 2008 16:55:41 +0200 Subject: [patch] fix build on architectures with a signed size_t In-Reply-To: <4896E9CA.60008@redhat.com> (Andrew Haley's message of "Mon, 04 Aug 2008 12:36:42 +0100") References: <4895EC16.6030406@ubuntu.com> <87ej55k8tz.fsf@mid.deneb.enyo.de> <877iaxk8jz.fsf@mid.deneb.enyo.de> <4896E6D2.9030109@redhat.com> <873allf2aa.fsf@mid.deneb.enyo.de> <4896E9CA.60008@redhat.com> Message-ID: <8763qgakya.fsf@mid.deneb.enyo.de> * Andrew Haley: >> I was more concerned with the reality on s390, not what's in the >> standard. Unfortunately, my first test case was wrong. > > Is the reality then that GNU C on s/390 is not ISO C compliant? > I didn't know that. It must break a ton of code. Let me repeat: My initial test case was wrong. It reported size_t as signed, when it wasn't. Sorry about that. At least on raptor.debian.org, in the sid chroot, size_t is unsigned. From robermann at gmail.com Mon Aug 4 12:47:27 2008 From: robermann at gmail.com (Roberto Mannai) Date: Mon, 4 Aug 2008 21:47:27 +0200 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <1217853319.3061.11.camel@dijkstra.wildebeest.org> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> <1217853319.3061.11.camel@dijkstra.wildebeest.org> Message-ID: <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> In order to get some feedback, I wrote to the opensuse-java at opensuse.org mailing list. At least one user was successful running the command, it seems, on a 64bit processor. In order to get more feedback, I open the following bug: https://bugzilla.novell.com/show_bug.cgi?id=414462 Coping below for your convenience: When running the java process, I get the following error: linux:~/.eclipse # java -version Error occurred during initialization of VM Could not reserve enough space for object heap *** glibc detected *** java: free(): invalid pointer: 0xb7737254 *** ======= Backtrace: ========= /lib/libc.so.6[0xb7f86fc4] /lib/libc.so.6(cfree+0x9c)[0xb7f8895c] /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a94fb1] /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a580a2] /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a59860] /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a5dc85] /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so(JNI_CreateJavaVM+0x5c)[0xb78faccc] java(JavaMain+0x9e)[0x804a4de] /lib/libpthread.so.0[0xb806e175] /lib/libc.so.6(clone+0x5e)[0xb7fe8dce] ======= Memory map: ======== 08048000-08050000 r-xp 00000000 08:01 1379425 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java 08050000-08051000 r--p 00008000 08:01 1379425 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java 08051000-08052000 rw-p 00009000 08:01 1379425 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java 08052000-08073000 rw-p 08052000 00:00 0 [heap] b5400000-b5421000 rw-p b5400000 00:00 0 b5421000-b5500000 ---p b5421000 00:00 0 b55ca000-b55cb000 rwxp b55ca000 00:00 0 b55cb000-b564a000 rwxp b55cb000 00:00 0 b564a000-b5672000 rwxp b564a000 00:00 0 b5672000-b764a000 rwxp b5672000 00:00 0 b764a000-b766e000 r-xp 00000000 08:01 3915 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so b766e000-b766f000 r--p 00023000 08:01 3915 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so b766f000-b7671000 rw-p 00024000 08:01 3915 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so b7671000-b76a6000 r--s 00000000 08:01 4401 /var/run/nscd/passwd b76a6000-b76b9000 r-xp 00000000 08:01 1100751 /lib/libnsl-2.8.so b76b9000-b76ba000 r--p 00012000 08:01 1100751 /lib/libnsl-2.8.so b76ba000-b76bb000 rw-p 00013000 08:01 1100751 /lib/libnsl-2.8.so b76bb000-b76bd000 rw-p b76bb000 00:00 0 b76c7000-b76d3000 r-xp 00000000 08:01 24423 /lib/libgcc_s.so.1 b76d3000-b76d4000 r--p 0000b000 08:01 24423 /lib/libgcc_s.so.1 b76d4000-b76d5000 rw-p 0000c000 08:01 24423 /lib/libgcc_s.so.1 b76d5000-b76dc000 r-xp 00000000 08:01 3938 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so b76dc000-b76dd000 r--p 00006000 08:01 3938 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so b76dd000-b76de000 rw-p 00007000 08:01 3938 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so b76de000-b76e5000 r-xp 00000000 08:01 1218520 /lib/librt-2.8.so b76e5000-b76e6000 r--p 00006000 08:01 1218520 /lib/librt-2.8.so b76e6000-b76e7000 rw-p 00007000 08:01 1218520 /lib/librt-2.8.so b76e7000-b76ea000 ---p b76e7000 00:00 0 b76ea000-b7738000 rw-p b76ea000 00:00 0 b7738000-b775c000 r-xp 00000000 08:01 1034658 /lib/libm-2.8.so b775c000-b775d000 r--p 00023000 08:01 1034658 /lib/libm-2.8.so b775d000-b775e000 rw-p 00024000 08:01 1034658 /lib/libm-2.8.so b775e000-b7adc000 r-xp 00000000 08:01 3898 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so b7adc000-b7aef000 r--p 0037e000 08:01 3898 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so b7aef000-b7afb000 rw-p 00391000 08:01 3898 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so b7afb000-b7f1b000 rw-p b7afb000 00:00 0 b7f1b000-b8058000 r-xp 00000000 08:01 145156 /lib/libc-2.8.so b8058000-b805a000 r--p 0013d000 08:01 145156 /lib/libc-2.8.so b805a000-b805b000 rw-p 0013f000 08:01 145156 /lib/libc-2.8.so b805b000-b805e000 rw-p b805b000 00:00 0 b805e000-b8060000 r-xp 00000000 08:01 996292 /lib/libdl-2.8.so b8060000-b8061000 r--p 00001000 08:01 996292 /lib/libdl-2.8.so b8061000-b8062000 rw-p 00002000 08:01 996292 /lib/libdl-2.8.so b8062000-b8066000 r-xp 00000000 08:01 3903 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so b8066000-b8067000 r--p 00003000 08:01 3903 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so b8067000-b8068000 rw-p 00004000 08:01 3903 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so b8068000-b807c000 r-xp 00000000 08:01 1100778 /lib/libpthread-2.8.so b807c000-b807d000 r--p 00013000 08:01 1100778 /lib/libpthread-2.8.so b807d000-b807e000 rw-p 00014000 08:01 1100778 /lib/libpthread-2.8.so b807e000-b8080000 rw-p b807e000 00:00 0 b8080000-b8092000 r-xp 00000000 08:01 146523 /lib/libz.so.1.2.3 b8092000-b8093000 r--p 00011000 08:01 146523 /lib/libz.so.1.2.3 b8093000-b8094000 rw-p 00012000 08:01 146523 /lib/libz.so.1.2.3 b8094000-b80a0000 r-xp 00000000 08:01 3937 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so b80a0000-b80a1000 r--p 0000c000 08:01 3937 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so b80a1000-b80a2000 rw-p 0000d000 08:01 3937 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so b80a2000-b80aa000 rw-s 00000000 08:01 4291 /tmp/hsperfdata_root/5298 (deleted) b80aa000-b80b1000 r-xp 00000000 08:01 3940 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so b80b1000-b80b2000 r--p 00006000 08:01 3940 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so b80b2000-b80b3000 rw-p 00007000 08:01 3940 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so b80b3000-b80b4000 rw-p b80b3000 00:00 0 b80b4000-b80b5000 r--p b80b4000 00:00 0 b80b5000-b80b6000 rw-p b80b5000 00:00 0 b80b6000-b80d1000 r-xp 00000000 08:01 115121 /lib/ld-2.8.so b80d1000-b80d2000 r--p 0001a000 08:01 115121 /lib/ld-2.8.so b80d2000-b80d3000 rw-p 0001b000 08:01 115121 /lib/ld-2.8.so bfebe000-bfed3000 rw-p bffeb000 00:00 0 [stack] ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso] Aborted In order to work, I must set the Xmx option, for example: linux:~/.eclipse # java -Xmx1m -version java version "1.6.0" IcedTea Runtime Environment (build 1.6.0-b09) OpenJDK Client VM (build 1.6.0-b09, mixed mode) RPM version: linux:~/.eclipse # rpm -q java-1_6_0-openjdk java-1_6_0-openjdk-1.2_b09-9.1 Opensuse version: 11.0 Kernel version: linux:~/.eclipse # uname -r 2.6.25.11-0.1-pae Ciao Roberto On Mon, Aug 4, 2008 at 2:35 PM, Mark Wielaard wrote: > Hi Roberto, > > On Mon, 2008-08-04 at 14:23 +0200, Roberto Mannai wrote: >> On 8/4/08, Andrew Haley wrote: >> > Roberto Mannai wrote: >> > >> > > For a test I've just installed: >> > > java-1_7_0-icedtea >> > > on my opensuse11 box. >> > > >> > > "java -version" command crashes with an error. In order to work, I >> > > must use the -Xmx option, also with 1m: >> > > >> > > java -Xmx1m -version >> > > >> > > Any reason for it? Is it a bug? >> > >> > It must be. How much memory have you got? >> >> My system has 512 mb of RAM, on a 32 bit processor. >> >> If I try to set the Xms option, java complains it is larger than max >> size, so in my opinion the jvm does not allocate any default xmx >> parameter. >> >> The error is: >> "Could not reserve enough space for object heap'' >> >> The same message occurs also with java-1_6_0-openjdk. > > That is strange. Can you give us some more information? > > How exactly did you install icedtea/openjdk? > > Was is it a precompiled package, if so from where? > If not, how did you configure and compile from source? > > Do other opensuse users have the same issue? > > What is the exact command given and output? > Both for the failing and the working -Xmx1m -version case? > (Best to copy/paste the command line completely, any output, including > errors, stacktraces and the output of -version is interesting.) > > Thanks, > > Mark > > From twisti at complang.tuwien.ac.at Tue Aug 5 08:05:32 2008 From: twisti at complang.tuwien.ac.at (Christian Thalinger) Date: Tue, 05 Aug 2008 15:05:32 +0000 Subject: changeset in /hg/icedtea6: 2008-08-05 Christian Thalinger changeset 59665e494100 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=59665e494100 description: 2008-08-05 Christian Thalinger * autogen.sh: New file. diffstat: 2 files changed, 130 insertions(+) ChangeLog | 4 + autogen.sh | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diffs (141 lines): diff -r 63c7ccd8da7f -r 59665e494100 ChangeLog --- a/ChangeLog Fri Aug 01 01:25:21 2008 +0200 +++ b/ChangeLog Tue Aug 05 17:05:24 2008 +0200 @@ -1,3 +1,7 @@ 2008-08-01 Matthias Klose + + * autogen.sh: New file. + 2008-08-01 Matthias Klose * patches/icedtea-zero.patch (os::dll_load): Fix typo for mipsel. diff -r 63c7ccd8da7f -r 59665e494100 autogen.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/autogen.sh Tue Aug 05 17:05:24 2008 +0200 @@ -0,0 +1,126 @@ +#!/bin/sh + +# Test for autoconf commands. + +# Test for autoconf. + +HAVE_AUTOCONF=false + +for AUTOCONF in autoconf autoconf259; do + if ${AUTOCONF} --version > /dev/null 2>&1; then + AUTOCONF_VERSION=`${AUTOCONF} --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'` +# echo ${AUTOCONF_VERSION} + case ${AUTOCONF_VERSION} in + 2.59* | 2.6[0-9]* ) + HAVE_AUTOCONF=true + break; + ;; + esac + fi +done + +# Test for autoheader. + +HAVE_AUTOHEADER=false + +for AUTOHEADER in autoheader autoheader259; do + if ${AUTOHEADER} --version > /dev/null 2>&1; then + AUTOHEADER_VERSION=`${AUTOHEADER} --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'` +# echo ${AUTOHEADER_VERSION} + case ${AUTOHEADER_VERSION} in + 2.59* | 2.6[0-9]* ) + HAVE_AUTOHEADER=true + break; + ;; + esac + fi +done + +# Test for autoreconf. + +HAVE_AUTORECONF=false + +for AUTORECONF in autoreconf; do + if ${AUTORECONF} --version > /dev/null 2>&1; then + AUTORECONF_VERSION=`${AUTORECONF} --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'` +# echo ${AUTORECONF_VERSION} + case ${AUTORECONF_VERSION} in + 2.59* | 2.6[0-9]* ) + HAVE_AUTORECONF=true + break; + ;; + esac + fi +done + +if test ${HAVE_AUTOCONF} = false; then + echo "No proper autoconf was found." + echo "You must have autoconf 2.59 or later installed." + exit 1 +fi + +if test ${HAVE_AUTOHEADER} = false; then + echo "No proper autoheader was found." + echo "You must have autoconf 2.59 or later installed." + exit 1 +fi + +if test ${HAVE_AUTORECONF} = false; then + echo "No proper autoreconf was found." + echo "You must have autoconf 2.59 or later installed." + exit 1 +fi + + +# Test for automake commands. + +# Test for aclocal. + +HAVE_ACLOCAL=false + +for ACLOCAL in aclocal aclocal-1.10; do + if ${ACLOCAL} --version > /dev/null 2>&1; then + ACLOCAL_VERSION=`${ACLOCAL} --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'` +# echo ${ACLOCAL_VERSION} + case ${ACLOCAL_VERSION} in + 1.1[0-9]* ) + HAVE_ACLOCAL=true + break; + ;; + esac + fi +done + +# Test for automake. + +HAVE_AUTOMAKE=false + +for AUTOMAKE in automake automake-1.10; do + if ${AUTOMAKE} --version > /dev/null 2>&1; then + AUTOMAKE_VERSION=`${AUTOMAKE} --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'` +# echo ${AUTOMAKE_VERSION} + case ${AUTOMAKE_VERSION} in + 1.1[0-9]* ) + HAVE_AUTOMAKE=true + break; + ;; + esac + fi +done + +if test ${HAVE_ACLOCAL} = false; then + echo "No proper aclocal was found." + echo "You must have automake 1.10 or later installed." + exit 1 +fi + +if test ${HAVE_AUTOMAKE} = false; then + echo "No proper automake was found." + echo "You must have automake 1.10 or later installed." + exit 1 +fi + + +export ACLOCAL AUTOCONF AUTOHEADER AUTOMAKE + +${AUTORECONF} --force --install From Svante.Schubert at Sun.COM Tue Aug 5 08:13:55 2008 From: Svante.Schubert at Sun.COM (Svante Schubert) Date: Tue, 05 Aug 2008 17:13:55 +0200 Subject: OpenOffice.org build fails due to Rhino integration in OpenJDK Message-ID: <48986E33.8090107@sun.com> Hi, We have an issue with building OpenOffice.org with openjdk-6-jdk 6b11-5, which most likely will effect the OpenOffice.org Fedora build as well. http://www.openoffice.org/issues/show_bug.cgi?id=91641 It was most likely introduced by http://icedtea.classpath.org/hg/icedtea6/file/63c7ccd8da7f/patches/icedtea-rhino.patch which adds Rhino with original package names to the OpenJDK. Since than we are unable to compile a previous version of Rhino using the above JDK, as always the Rhino interfaces from the JDK are found. JDK 1.4 had once the same problem, when adding Xalan using the Apache packages, but was fixed in JDK 5. In believe that in our case it is not even possible to use the none-standard -Xbootclasspath parameter as a workaround as the we can not add the classes that we are going to compile into our classpath. I suggest to rename the Rhino packages part of OpenJDK to allow to use different versions of Rhino. PS: Please reply all as most of the ppl on CC are not subscribed to the list. Kind regards, Svante -- Sun Microsystems GmbH Svante Schubert Nagelsweg 55 Software Engineer 20097 Hamburg StarOffice / OpenOffice.org Development Germany Phone: +49(0)40 236 46 500 http://www.sun.com Svante.Schubert at sun.com Sitz der Gesellschaft: Sun Microsystems GmbH, Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht Muenchen: HRB 161028 Geschaeftsfuehrer: Wolfgang Engels, Dr. Roland Boemer Vorsitzender des Aufsichtsrates: Martin Haering From bugzilla-daemon at icedtea.classpath.org Tue Aug 5 08:33:20 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 15:33:20 +0000 Subject: [Bug 179] New: javascript script support through rhino should not be on bootclasspath Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=179 Summary: javascript script support through rhino should not be on bootclasspath Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: mark at klomp.org The current setup of the javax.scripting engine that handles javascript through rhino depends on having all the rhino classes on the bootclasspath. See: http://mail.openjdk.java.net/pipermail/build-dev/2008-June/001176.html The problem is that the current javax.scripting javascript engine relies on all of the rhino classes being on the bootclasspath. This interferes badly when someone tries to compile their own rhino with possible different signatures (because the version on the bootclasspath is picked up first). See: http://www.openoffice.org/issues/show_bug.cgi?id=91641 To work around this the javascript engine needs to refactored to use a separate classloader to load the rhino classes. -- 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 Tue Aug 5 08:36:02 2008 From: langel at redhat.com (Lillian Angel) Date: Tue, 05 Aug 2008 11:36:02 -0400 Subject: VisualVM in IcedTea6 In-Reply-To: <48969BCE.1030306@Sun.COM> References: <488F718E.6020309@redhat.com> <4890413F.3010403@ubuntu.com> <17c6771e0807300457j6524cd20ga38c8917e9d3c054@mail.gmail.com> <48906A2E.3060805@redhat.com> <17c6771e0807300638h15304ccdgc90166222205821a@mail.gmail.com> <48906FC1.8040303@redhat.com> <48969BCE.1030306@Sun.COM> Message-ID: <48987362.5040706@redhat.com> Hi, Dalibor Topic wrote: > Joshua Sumali wrote: >> No, it would only build netbeans7, platform2, and visualvm. The actual >> "dropping-in" of visualvm occurs right after IcedTea is built. It >> happens at the same time as the dropping in of >> gcjwebplugin/icedteaplugin (stamps/icedtea.stamp target in Makefile.am). > Hi Joshua, > > On a somewhat related sidenote, I should point out that the NetBeans > team is working on GNU/Linux packages out in the open at > http://wiki.netbeans.org/NativeLinuxPackages and on the > http://installer.netbeans.org/servlets/SummarizeList?listName=linux-packaging > > mailing list. There has been quite some talk about Fedora on the list > recently, you may want to check it out, and see if that wouldn't make > the VisualVM inclusion in Fedora simpler. > I believe we are waiting on more info from someone responsible at Sun. https://bugzilla.redhat.com/show_bug.cgi?id=439265 Thanks, Lillian From mark at klomp.org Tue Aug 5 08:36:24 2008 From: mark at klomp.org (Mark Wielaard) Date: Tue, 05 Aug 2008 17:36:24 +0200 Subject: OpenOffice.org build fails due to Rhino integration in OpenJDK In-Reply-To: <48986E33.8090107@sun.com> References: <48986E33.8090107@sun.com> Message-ID: <1217950584.3051.18.camel@dijkstra.wildebeest.org> Hi Svante, On Tue, 2008-08-05 at 17:13 +0200, Svante Schubert wrote: > We have an issue with building OpenOffice.org with openjdk-6-jdk 6b11-5, > which most likely will effect the OpenOffice.org Fedora build as well. > http://www.openoffice.org/issues/show_bug.cgi?id=91641 > > It was most likely introduced by > > http://icedtea.classpath.org/hg/icedtea6/file/63c7ccd8da7f/patches/icedtea-rhino.patch > which adds Rhino with original package names to the OpenJDK. Yes, that is most likely the patch indeed. See also: http://mail.openjdk.java.net/pipermail/build-dev/2008-June/001176.html I have added Caolan to the CC in the hope that he knows how the OpenOffice package on Fedora handles this. (Maybe it hasn't been build against a newer icedtea/openjdk yet?) > Since than we are unable to compile a previous version of Rhino using > the above JDK, as always the Rhino interfaces from the JDK are found. Yes, that would be a problem indeed. Do you need to compile your own version of Rhino? I believe almost all distros come with a recent rhino these days that you could depend on (just like icedtea/openjdk does now). > In believe that in our case it is not even possible to use the > none-standard -Xbootclasspath parameter as a workaround as the we can > not add the classes that we are going to compile into our classpath. I think you can use -Xbootclasspath for javac to explicitly exclude the rhino.jar (and only use the other standard bootclasses). But I haven't tried myself yet. > I suggest to rename the Rhino packages part of OpenJDK to allow to use > different versions of Rhino. Renaming isn't a very good solution. As was earlier discussed: http://mail.openjdk.java.net/pipermail/build-dev/2008-June/001180.html We don't actually want to bundle extra copies of classes that a distribution already packages separately. That would create a lot of extra work when such a package needs to be rebuild or updated. And embedding libraries also risks missing security updates. But you are right that the problem is that that the javax.scripting support for javascript currently relies on all the rhino classes being on the bootclasspath. This is obviously wrong. I have opened a bug report: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=179 I'll try to see if I can make some time for it. But no guarantees. So if someone else wants to take a stab on making the rhino classes loaded through a separate classloader that would be really nice. Cheers, Mark From Dalibor.Topic at Sun.COM Tue Aug 5 10:29:25 2008 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Tue, 05 Aug 2008 19:29:25 +0200 Subject: VisualVM in IcedTea6 In-Reply-To: <48987362.5040706@redhat.com> References: <488F718E.6020309@redhat.com> <4890413F.3010403@ubuntu.com> <17c6771e0807300457j6524cd20ga38c8917e9d3c054@mail.gmail.com> <48906A2E.3060805@redhat.com> <17c6771e0807300638h15304ccdgc90166222205821a@mail.gmail.com> <48906FC1.8040303@redhat.com> <48969BCE.1030306@Sun.COM> <48987362.5040706@redhat.com> Message-ID: <48988DF5.8010709@sun.com> Lillian Angel wrote: > I believe we are waiting on more info from someone responsible at Sun. > https://bugzilla.redhat.com/show_bug.cgi?id=439265 That one seems to be closed. ;) cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: Thomas Schr?der, Wolfgang Engels, Dr. Roland B?mer Vorsitzender des Aufsichtsrates: Martin H?ring From mark at klomp.org Tue Aug 5 10:43:03 2008 From: mark at klomp.org (Mark Wielaard) Date: Tue, 05 Aug 2008 19:43:03 +0200 Subject: VisualVM in IcedTea6 In-Reply-To: <48988DF5.8010709@sun.com> References: <488F718E.6020309@redhat.com> <4890413F.3010403@ubuntu.com> <17c6771e0807300457j6524cd20ga38c8917e9d3c054@mail.gmail.com> <48906A2E.3060805@redhat.com> <17c6771e0807300638h15304ccdgc90166222205821a@mail.gmail.com> <48906FC1.8040303@redhat.com> <48969BCE.1030306@Sun.COM> <48987362.5040706@redhat.com> <48988DF5.8010709@sun.com> Message-ID: <1217958184.3051.22.camel@dijkstra.wildebeest.org> On Tue, 2008-08-05 at 19:29 +0200, Dalibor Topic wrote: > Lillian Angel wrote: > > I believe we are waiting on more info from someone responsible at Sun. > > https://bugzilla.redhat.com/show_bug.cgi?id=439265 > That one seems to be closed. ;) There are different people having different packaging requests for different versions of netbeans it seems. The above is for 6.0. There is also https://bugzilla.redhat.com/show_bug.cgi?id=456337 (for 6.1) and https://bugzilla.redhat.com/show_bug.cgi?id=456341 (for "platform 8"). It is probably a good idea if the various packagers collaborated around one version/package. Cheers, Mark From bugzilla-daemon at icedtea.classpath.org Tue Aug 5 10:46:05 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 17:46:05 +0000 Subject: [Bug 178] Icedtea7 configure error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=178 ------- Comment #2 from jsumali at redhat.com 2008-08-05 17:46 ------- I'm assuming you're getting that error from ./configure. Can you try to `hg pull; hg update`, then try to ./configure again? There was a change made in repo on Jul 22 that removes GCC_OLD from configure.ac (see ChangeLog). I'm unable to reproduce this error. -- 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 Tue Aug 5 10:53:42 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Tue, 05 Aug 2008 13:53:42 -0400 Subject: VisualVM in IcedTea6 In-Reply-To: <1217958184.3051.22.camel@dijkstra.wildebeest.org> References: <488F718E.6020309@redhat.com> <4890413F.3010403@ubuntu.com> <17c6771e0807300457j6524cd20ga38c8917e9d3c054@mail.gmail.com> <48906A2E.3060805@redhat.com> <17c6771e0807300638h15304ccdgc90166222205821a@mail.gmail.com> <48906FC1.8040303@redhat.com> <48969BCE.1030306@Sun.COM> <48987362.5040706@redhat.com> <48988DF5.8010709@sun.com> <1217958184.3051.22.camel@dijkstra.wildebeest.org> Message-ID: <489893A6.6020609@redhat.com> Mark Wielaard wrote: > On Tue, 2008-08-05 at 19:29 +0200, Dalibor Topic wrote: > >> Lillian Angel wrote: >> >>> I believe we are waiting on more info from someone responsible at Sun. >>> https://bugzilla.redhat.com/show_bug.cgi?id=439265 >>> >> That one seems to be closed. ;) >> > > There are different people having different packaging requests for > different versions of netbeans it seems. The above is for 6.0. > There is also https://bugzilla.redhat.com/show_bug.cgi?id=456337 (for > 6.1) and https://bugzilla.redhat.com/show_bug.cgi?id=456341 (for > "platform 8"). It is probably a good idea if the various packagers > collaborated around one version/package. > > Cheers, > > Mark > > That would be a good idea, collaborating around one version/package to begin with, but I have a good feeling that we might end up needing multiple versions of netbeans platform depending on which apps are going to depend on it. I know for one that VisualVM will only run on platform7 (in netbeans 6.0.1). Josh From bugzilla-daemon at icedtea.classpath.org Tue Aug 5 11:11:08 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 18:11:08 +0000 Subject: [Bug 180] New: JVM crash while running Eclipse 3.4 on Fedora 9 (x86_64) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=180 Summary: JVM crash while running Eclipse 3.4 on Fedora 9 (x86_64) Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: critical Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: veguilla at gmail.com Crash when changing JDK settings on Eclipse. Generic error message reports: # Java VM: OpenJDK 64-Bit Server VM (1.6.0-b09 mixed mode linux-amd64) # Problematic frame: # V [libjvm.so+0x1ffafa] # # The crash happened outside the Java Virtual Machine in native code. # -- 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 Tue Aug 5 11:11:14 2008 From: langel at redhat.com (Lillian Angel) Date: Tue, 05 Aug 2008 14:11:14 -0400 Subject: VisualVM in IcedTea6 In-Reply-To: <489893A6.6020609@redhat.com> References: <488F718E.6020309@redhat.com> <4890413F.3010403@ubuntu.com> <17c6771e0807300457j6524cd20ga38c8917e9d3c054@mail.gmail.com> <48906A2E.3060805@redhat.com> <17c6771e0807300638h15304ccdgc90166222205821a@mail.gmail.com> <48906FC1.8040303@redhat.com> <48969BCE.1030306@Sun.COM> <48987362.5040706@redhat.com> <48988DF5.8010709@sun.com> <1217958184.3051.22.camel@dijkstra.wildebeest.org> <489893A6.6020609@redhat.com> Message-ID: <489897C2.6090109@redhat.com> Joshua Sumali wrote: > Mark Wielaard wrote: >> On Tue, 2008-08-05 at 19:29 +0200, Dalibor Topic wrote: >> >>> Lillian Angel wrote: >>> >>>> I believe we are waiting on more info from someone responsible at Sun. >>>> https://bugzilla.redhat.com/show_bug.cgi?id=439265 >>>> >>> That one seems to be closed. ;) >>> >> >> There are different people having different packaging requests for >> different versions of netbeans it seems. The above is for 6.0. >> There is also https://bugzilla.redhat.com/show_bug.cgi?id=456337 (for >> 6.1) and https://bugzilla.redhat.com/show_bug.cgi?id=456341 (for >> "platform 8"). It is probably a good idea if the various packagers >> collaborated around one version/package. >> >> Cheers, >> >> Mark >> >> > That would be a good idea, collaborating around one version/package to > begin with, but I have a good feeling that we might end up needing > multiple versions of netbeans platform depending on which apps are going > to depend on it. I know for one that VisualVM will only run on platform7 > (in netbeans 6.0.1). Against Fedora policy to ship more than one version for a package. Lillian From bugzilla-daemon at icedtea.classpath.org Tue Aug 5 11:12:34 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 18:12:34 +0000 Subject: [Bug 180] JVM crash while running Eclipse 3.4 on Fedora 9 (x86_64) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=180 ------- Comment #1 from veguilla at gmail.com 2008-08-05 18:12 ------- Created an attachment (id=86) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=86&action=view) Error log #1 -- 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 Aug 5 11:12:51 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 18:12:51 +0000 Subject: [Bug 180] JVM crash while running Eclipse 3.4 on Fedora 9 (x86_64) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=180 ------- Comment #2 from veguilla at gmail.com 2008-08-05 18:12 ------- Created an attachment (id=87) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=87&action=view) Error log #2 -- 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 Aug 5 11:32:33 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 18:32:33 +0000 Subject: [Bug 180] JVM crash while running Eclipse 3.4 on Fedora 9 (x86_64) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=180 mlists at juma.me.uk changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mlists at juma.me.uk ------- Comment #3 from mlists at juma.me.uk 2008-08-05 18:32 ------- This seems like: http://bugs.sun.com/view_bug.do?bug_id=6614100 It was fixed in 6-open(b11) and I believe that IcedTea included a patch before that. -- 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 Aug 5 12:13:07 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 19:13:07 +0000 Subject: [Bug 176] openjdk 6b11-2 crashes while starting eclipse 3.4 j2ee Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=176 ------- Comment #2 from jsumali at redhat.com 2008-08-05 19:13 ------- Are you using OpenJDK or IcedTea? I just did a new b11 build with IcedTea6 from repository, and I'm unable to reproduce this crash with Eclipse Classic 3.4 or Eclipse IDE for Java EE Developers (downloaded from eclipse.org). Both versions seem to run 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 bugzilla-daemon at icedtea.classpath.org Tue Aug 5 12:28:32 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 19:28:32 +0000 Subject: [Bug 180] JVM crash while running Eclipse 3.4 on Fedora 9 (x86_64) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=180 mark at klomp.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #4 from mark at klomp.org 2008-08-05 19:28 ------- Yes it does look like this was fixed some time ago. 1.6.0-b09 is pretty old by now. The fix was in http://article.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/2390 -- 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 Aug 5 13:03:50 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 20:03:50 +0000 Subject: [Bug 176] openjdk 6b11-2 crashes while starting eclipse 3.4 j2ee Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=176 mlists at juma.me.uk changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mlists at juma.me.uk ------- Comment #3 from mlists at juma.me.uk 2008-08-05 20:03 ------- This looks like an eclipse bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=236724 -- 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 Aug 5 14:20:06 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Aug 2008 21:20:06 +0000 Subject: [Bug 176] openjdk 6b11-2 crashes while starting eclipse 3.4 j2ee Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=176 ------- Comment #4 from michele at pupazzo.org 2008-08-05 21:20 ------- Hi Joshua, I'm using the OpenJDK package from debian unstable. I believe it contains both. I've updated now to package revision 6b11-5 and the problem is gone. Here's the relevant changelog for the package: openjdk-6 (6b11-5) unstable; urgency=low * debian/rules (stamps/mauve-build): Configure with --host and --build. * openjdk-6-jdk: Recommend libxt-dev (jawt_md.h header includes). * Fix build issues on s390 (signed size_t). -- Matthias Klose Sun, 03 Aug 2008 20:05:44 +0200 openjdk-6 (6b11-4) unstable; urgency=low * Update IcedTea build infrastructure (20080801). - Fix typo, causing build failure on mipsel. -- Matthias Klose Fri, 01 Aug 2008 01:25:51 +0200 openjdk-6 (6b11-3) unstable; urgency=low * Include the name of the VM used in the package description. * Update IcedTea build infrastructure (20080731). * Build for alpha, arm, mips and mipsel. * Switch from libcupsys2(-dev) to libcups2(-dev) for newer releases. (Closes: #492384) * Add symlinks for header files found in JAVA_HOME/include/linux in JAVA_HOME/include. * openjdk-6-jre: Don' recommend lesstif2 anymore. Should I just close this bug? Or do you guys prefer closing them yourselves? regards, Michele -- 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 Aug 5 19:55:01 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Aug 2008 02:55:01 +0000 Subject: [Bug 178] Icedtea7 configure error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=178 ------- Comment #3 from eric225125 at yahoo.com 2008-08-06 02:55 ------- I am using Andrew's ebuild to install icedtea. Here's the complete configure output from the latest update: ./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --with-icedtea --with-icedtea-home=/usr/lib/icedtea6-9999 --with-parallel-jobs=2 --with-openjdk-src-zip=/usr/paludis/distfiles/openjdk-7-ea-src-b31-17_jul_2008.zip --disable-optimizations --disable-docs --enable-gcjwebplugin --without-rhino --build=x86_64-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking how to create a pax tar archive... gnutar checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of x86_64-pc-linux-gnu-gcc... none checking for x86_64-pc-linux-gnu-g++... x86_64-pc-linux-gnu-g++ checking whether we are using the GNU C++ compiler... yes checking whether x86_64-pc-linux-gnu-g++ accepts -g... yes checking dependency style of x86_64-pc-linux-gnu-g++... none checking for x86_64-pc-linux-gnu-make... no checking for make... /usr/libexec/paludis/utils/make checking for x86_64-pc-linux-gnu-gzip... no checking for gzip... /bin/gzip checking for x86_64-pc-linux-gnu-ant... no checking for ant... /usr/bin/ant checking for x86_64-pc-linux-gnu-find... no checking for find... /usr/bin/find checking for x86_64-pc-linux-gnu-patch... no checking for patch... /usr/libexec/paludis/utils/patch checking for x86_64-pc-linux-gnu-tar... no checking for tar... /bin/tar checking for x86_64-pc-linux-gnu-chmod... no checking for chmod... /bin/chmod checking for x86_64-pc-linux-gnu-md5sum... no checking for md5sum... /usr/bin/md5sum checking for x86_64-pc-linux-gnu-wget... no checking for wget... /usr/bin/wget checking for x86_64-pc-linux-gnu-zip... no checking for zip... /usr/bin/zip checking for x86_64-pc-linux-gnu-unzip... no checking for unzip... /usr/bin/unzip checking for x86_64-pc-linux-gnu-cpio... no checking for cpio... /bin/cpio checking for x86_64-pc-linux-gnu-file... no checking for file... /usr/bin/file checking for x86_64-pc-linux-gnu-fastjar... no checking for x86_64-pc-linux-gnu-jar... no checking for fastjar... no checking for jar... jar checking for x86_64-pc-linux-gnu-gawk... no checking for gawk... /usr/bin/gawk checking whether to include Javascript support via Rhino... no checking openjdk source zip... /usr/paludis/distfiles/openjdk-7-ea-src-b31-17_jul_2008.zip checking openjdk sources... /var/tmp/paludis/dev-java-icedtea-9999/work/icedtea/openjdk checking whether to use CACAO as VM... no checking CACAO home directory... $(abs_top_builddir)/cacao/install checking CACAO source zip... not specified checking whether to disable optimizations... yes, building with -O0 -g checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking whether to use the zero-assembler port... no checking whether to use the Shark JIT... no checking whether to retrieve the source code from Mercurial... no checking whether to use code from the Closures project... no checking whether to use code from the CVMI project... no checking cups/cups.h usability... yes checking cups/cups.h presence... yes checking for cups/cups.h... yes checking cups/ppd.h usability... yes checking cups/ppd.h presence... yes checking for cups/ppd.h... yes checking X11/X.h usability... yes checking X11/X.h presence... yes checking for X11/X.h... yes checking for main in -ljpeg... yes checking for main in -lgif... yes checking for main in -lz... yes checking for x86_64-pc-linux-gnu-pkg-config... no checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for XPROTO... yes checking for XT... yes checking for XP... yes checking for X11... yes checking for XINERAMA... yes checking for LIBPNG... yes checking for XTST... yes checking for FREETYPE2... yes checking for ALSA... yes configure: error: conditional "GCC_OLD" was never defined. Usually this means the macro was only invoked conditionally. -- 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 Aug 5 20:00:09 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Aug 2008 03:00:09 +0000 Subject: [Bug 178] Icedtea7 configure error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=178 ------- Comment #4 from eric225125 at yahoo.com 2008-08-06 03:00 ------- I'm not sure, but this might be helpful. I does look like GCC_OLD is still in a few files including configure.ac: localhost dev-java-icedtea-9999 # grep -r -i 'gcc_old' . ./work/icedtea/ChangeLog: * configure.ac: Don't bother with GCC_OLD. ./work/icedtea/ChangeLog: * Makefile.am: Changed LIBGCJ_OLD to GCC_OLD. ./work/icedtea/ChangeLog: * acinclude.m4: Renamed LIBGCJ_OLD to GCC_OLD. ./work/icedtea/ChangeLog: * configure.ac: Renamed LIBGCJ_OLD to GCC_OLD. ./work/icedtea/acinclude.m4: AM_CONDITIONAL(GCC_OLD, test x != x) ./work/icedtea/acinclude.m4: AM_CONDITIONAL(GCC_OLD, test x = x) ./work/icedtea/autom4te.cache/output.1:GCC_OLD_TRUE ./work/icedtea/autom4te.cache/output.1:GCC_OLD_FALSE ./work/icedtea/autom4te.cache/output.1: GCC_OLD_TRUE= ./work/icedtea/autom4te.cache/output.1: GCC_OLD_FALSE='#' ./work/icedtea/autom4te.cache/output.1: GCC_OLD_TRUE='#' ./work/icedtea/autom4te.cache/output.1: GCC_OLD_FALSE= ./work/icedtea/autom4te.cache/output.1: GCC_OLD_TRUE= ./work/icedtea/autom4te.cache/output.1: GCC_OLD_FALSE='#' ./work/icedtea/autom4te.cache/output.1: GCC_OLD_TRUE='#' ./work/icedtea/autom4te.cache/output.1: GCC_OLD_FALSE= ./work/icedtea/autom4te.cache/output.1:if test -z "${GCC_OLD_TRUE}" && test -z "${GCC_OLD_FALSE}"; then ./work/icedtea/autom4te.cache/output.1: { { $as_echo "$as_me:$LINENO: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/autom4te.cache/output.1:$as_echo "$as_me: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/autom4te.cache/output.1:if test -z "${GCC_OLD_TRUE}" && test -z "${GCC_OLD_FALSE}"; then ./work/icedtea/autom4te.cache/output.1: { { $as_echo "$as_me:$LINENO: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/autom4te.cache/output.1:$as_echo "$as_me: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/autom4te.cache/traces.1: AM_CONDITIONAL(GCC_OLD, test x != x) ./work/icedtea/autom4te.cache/traces.1: AM_CONDITIONAL(GCC_OLD, test x = x) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- AM_CONDITIONAL([GCC_OLD], [test x != x]) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- m4_pattern_allow([^GCC_OLD_TRUE$]) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- m4_pattern_allow([^GCC_OLD_FALSE$]) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- _AM_SUBST_NOTMAKE([GCC_OLD_TRUE]) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- _AM_SUBST_NOTMAKE([GCC_OLD_FALSE]) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- AM_CONDITIONAL([GCC_OLD], [test x = x]) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- m4_pattern_allow([^GCC_OLD_TRUE$]) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- m4_pattern_allow([^GCC_OLD_FALSE$]) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- _AM_SUBST_NOTMAKE([GCC_OLD_TRUE]) ./work/icedtea/autom4te.cache/traces.1:m4trace:configure.ac:200: -1- _AM_SUBST_NOTMAKE([GCC_OLD_FALSE]) ./work/icedtea/autom4te.cache/output.2:GCC_OLD_TRUE ./work/icedtea/autom4te.cache/output.2:GCC_OLD_FALSE ./work/icedtea/autom4te.cache/output.2: GCC_OLD_TRUE= ./work/icedtea/autom4te.cache/output.2: GCC_OLD_FALSE='#' ./work/icedtea/autom4te.cache/output.2: GCC_OLD_TRUE='#' ./work/icedtea/autom4te.cache/output.2: GCC_OLD_FALSE= ./work/icedtea/autom4te.cache/output.2: GCC_OLD_TRUE= ./work/icedtea/autom4te.cache/output.2: GCC_OLD_FALSE='#' ./work/icedtea/autom4te.cache/output.2: GCC_OLD_TRUE='#' ./work/icedtea/autom4te.cache/output.2: GCC_OLD_FALSE= ./work/icedtea/autom4te.cache/output.2:if test -z "${GCC_OLD_TRUE}" && test -z "${GCC_OLD_FALSE}"; then ./work/icedtea/autom4te.cache/output.2: { { $as_echo "$as_me:$LINENO: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/autom4te.cache/output.2:$as_echo "$as_me: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/autom4te.cache/output.2:if test -z "${GCC_OLD_TRUE}" && test -z "${GCC_OLD_FALSE}"; then ./work/icedtea/autom4te.cache/output.2: { { $as_echo "$as_me:$LINENO: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/autom4te.cache/output.2:$as_echo "$as_me: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AM_CONDITIONAL([GCC_OLD], [test x != x]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AC_SUBST([GCC_OLD_TRUE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AC_SUBST_TRACE([GCC_OLD_TRUE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- m4_pattern_allow([^GCC_OLD_TRUE$]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AC_SUBST([GCC_OLD_FALSE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AC_SUBST_TRACE([GCC_OLD_FALSE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- m4_pattern_allow([^GCC_OLD_FALSE$]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- _AM_SUBST_NOTMAKE([GCC_OLD_TRUE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- _AM_SUBST_NOTMAKE([GCC_OLD_FALSE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AM_CONDITIONAL([GCC_OLD], [test x = x]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AC_SUBST([GCC_OLD_TRUE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AC_SUBST_TRACE([GCC_OLD_TRUE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- m4_pattern_allow([^GCC_OLD_TRUE$]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AC_SUBST([GCC_OLD_FALSE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- AC_SUBST_TRACE([GCC_OLD_FALSE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- m4_pattern_allow([^GCC_OLD_FALSE$]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- _AM_SUBST_NOTMAKE([GCC_OLD_TRUE]) ./work/icedtea/autom4te.cache/traces.2:m4trace:configure.ac:200: -1- _AM_SUBST_NOTMAKE([GCC_OLD_FALSE]) ./work/icedtea/config.log:configure:12882: error: conditional "GCC_OLD" was never defined. ./work/icedtea/config.log:GCC_OLD_FALSE='' ./work/icedtea/config.log:GCC_OLD_TRUE='' ./work/icedtea/configure:GCC_OLD_TRUE ./work/icedtea/configure:GCC_OLD_FALSE ./work/icedtea/configure: GCC_OLD_TRUE= ./work/icedtea/configure: GCC_OLD_FALSE='#' ./work/icedtea/configure: GCC_OLD_TRUE='#' ./work/icedtea/configure: GCC_OLD_FALSE= ./work/icedtea/configure: GCC_OLD_TRUE= ./work/icedtea/configure: GCC_OLD_FALSE='#' ./work/icedtea/configure: GCC_OLD_TRUE='#' ./work/icedtea/configure: GCC_OLD_FALSE= ./work/icedtea/configure:if test -z "${GCC_OLD_TRUE}" && test -z "${GCC_OLD_FALSE}"; then ./work/icedtea/configure: { { $as_echo "$as_me:$LINENO: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/configure:$as_echo "$as_me: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/configure:if test -z "${GCC_OLD_TRUE}" && test -z "${GCC_OLD_FALSE}"; then ./work/icedtea/configure: { { $as_echo "$as_me:$LINENO: error: conditional \"GCC_OLD\" was never defined. ./work/icedtea/configure:$as_echo "$as_me: error: conditional \"GCC_OLD\" was never defined. -- 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 Svante.Schubert at Sun.COM Wed Aug 6 04:04:50 2008 From: Svante.Schubert at Sun.COM (Svante Schubert) Date: Wed, 06 Aug 2008 13:04:50 +0200 Subject: OpenOffice.org build fails due to Rhino integration in OpenJDK In-Reply-To: <1217950584.3051.18.camel@dijkstra.wildebeest.org> References: <48986E33.8090107@sun.com> <1217950584.3051.18.camel@dijkstra.wildebeest.org> Message-ID: <48998552.9060700@sun.com> Hi Mark, Mark Wielaard wrote: > Hi Svante, > > On Tue, 2008-08-05 at 17:13 +0200, Svante Schubert wrote: > >> We have an issue with building OpenOffice.org with openjdk-6-jdk 6b11-5, >> which most likely will effect the OpenOffice.org Fedora build as well. >> http://www.openoffice.org/issues/show_bug.cgi?id=91641 >> >> It was most likely introduced by >> >> http://icedtea.classpath.org/hg/icedtea6/file/63c7ccd8da7f/patches/icedtea-rhino.patch >> which adds Rhino with original package names to the OpenJDK. >> > > Yes, that is most likely the patch indeed. See also: > http://mail.openjdk.java.net/pipermail/build-dev/2008-June/001176.html > > I have added Caolan to the CC in the hope that he knows how the > OpenOffice package on Fedora handles this. (Maybe it hasn't been build > against a newer icedtea/openjdk yet?) > > >> Since than we are unable to compile a previous version of Rhino using >> the above JDK, as always the Rhino interfaces from the JDK are found. >> > > Yes, that would be a problem indeed. Do you need to compile your own > version of Rhino? I believe almost all distros come with a recent rhino > these days that you could depend on (just like icedtea/openjdk does > now). > Yes, the exchange of the Rhino would be a workaround and an update would be about time, but it does not solve the general problem compiling a different Rhino with this OpenJDK. > >> In believe that in our case it is not even possible to use the >> none-standard -Xbootclasspath parameter as a workaround as the we can >> not add the classes that we are going to compile into our classpath. >> > > I think you can use -Xbootclasspath for javac to explicitly exclude the > rhino.jar (and only use the other standard bootclasses). But I haven't > tried myself yet. > Interesting, one of the guys, which have the problem in their environment should give this a try as workaround. > >> I suggest to rename the Rhino packages part of OpenJDK to allow to use >> different versions of Rhino. >> > > Renaming isn't a very good solution. As was earlier discussed: > http://mail.openjdk.java.net/pipermail/build-dev/2008-June/001180.html > We don't actually want to bundle extra copies of classes that a > distribution already packages separately. That would create a lot of > extra work when such a package needs to be rebuild or updated. And > embedding libraries also risks missing security updates. > Adding by automation an 'internal.' in front of a package name to all external libraries does not seem too hard to me, but I am not an expert on this and certainly have overseen something. In any case now people might use the Rhino API and it might be painful if the Rhino library is exchanged later. > But you are right that the problem is that that the javax.scripting > support for javascript currently relies on all the rhino classes being > on the bootclasspath. This is obviously wrong. I have opened a bug > report: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=179 > Thank you very much, Mark! > I'll try to see if I can make some time for it. But no guarantees. So if > someone else wants to take a stab on making the rhino classes loaded > through a separate classloader that would be really nice. > > Cheers, > > Mark > > Cheers, Svante From bugzilla-daemon at icedtea.classpath.org Wed Aug 6 06:11:13 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Aug 2008 13:11:13 +0000 Subject: [Bug 176] openjdk 6b11-2 crashes while starting eclipse 3.4 j2ee Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=176 jsumali at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #5 from jsumali at redhat.com 2008-08-06 13:11 ------- Thanks for updating, I will 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 jsumali at redhat.com Wed Aug 6 06:23:23 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Wed, 06 Aug 2008 13:23:23 +0000 Subject: changeset in /hg/icedtea: 2008-08-06 Joshua Sumali changeset 2b7233b8a439 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=2b7233b8a439 description: 2008-08-06 Joshua Sumali * acinclude.m4: Don't bother with GCC_OLD here either. diffstat: 2 files changed, 4 insertions(+), 2 deletions(-) ChangeLog | 4 ++++ acinclude.m4 | 2 -- diffs (30 lines): diff -r e6094a45393c -r 2b7233b8a439 ChangeLog --- a/ChangeLog Mon Aug 04 02:22:43 2008 +0100 +++ b/ChangeLog Wed Aug 06 09:23:00 2008 -0400 @@ -1,3 +1,7 @@ 2008-08-04 Andrew John Hughes + + * acinclude.m4: Don't bother with GCC_OLD here either. + 2008-08-04 Andrew John Hughes * Makefile.am: diff -r e6094a45393c -r 2b7233b8a439 acinclude.m4 --- a/acinclude.m4 Mon Aug 04 02:22:43 2008 +0100 +++ b/acinclude.m4 Wed Aug 06 09:23:00 2008 -0400 @@ -220,7 +220,6 @@ AC_DEFUN([FIND_ECJ_JAR], AC_DEFUN([FIND_LIBGCJ_JAR], [ - AM_CONDITIONAL(GCC_OLD, test x != x) AC_ARG_WITH([libgcj-jar], [AS_HELP_STRING(--with-libgcj-jar,specify location of the libgcj 4.3.0 jar)], [ @@ -243,7 +242,6 @@ AC_DEFUN([FIND_LIBGCJ_JAR], LIBGCJ_JAR=/usr/share/java/libgcj-4.3.jar AC_MSG_RESULT(${LIBGCJ_JAR}) else - AM_CONDITIONAL(GCC_OLD, test x = x) if test -e "/usr/share/java/libgcj-4.1.2.jar"; then LIBGCJ_JAR=/usr/share/java/libgcj-4.1.2.jar AC_MSG_RESULT(${LIBGCJ_JAR}) From bugzilla-daemon at icedtea.classpath.org Wed Aug 6 06:25:13 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Aug 2008 13:25:13 +0000 Subject: [Bug 178] Icedtea7 configure error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=178 jsumali at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #5 from jsumali at redhat.com 2008-08-06 13:25 ------- OK, I removed the remaining GCC_OLD conditional that was missed. Running `hg pull; hg update; autoconf;` should fix the problem. Thanks for reporting 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 Dalibor.Topic at Sun.COM Wed Aug 6 06:27:24 2008 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Wed, 06 Aug 2008 15:27:24 +0200 Subject: OpenOffice.org build fails due to Rhino integration in OpenJDK In-Reply-To: <48998552.9060700@sun.com> References: <48986E33.8090107@sun.com> <1217950584.3051.18.camel@dijkstra.wildebeest.org> <48998552.9060700@sun.com> Message-ID: <4899A6BC.3000506@Sun.COM> Svante Schubert wrote: >> Yes, that would be a problem indeed. Do you need to compile your own >> version of Rhino? I believe almost all distros come with a recent rhino >> these days that you could depend on (just like icedtea/openjdk does >> now). >> >> > Yes, the exchange of the Rhino would be a workaround and an update would > be about time, but it does not solve the general problem compiling a > different Rhino with this OpenJDK. I'm seeing another iteration of the same bug in Ubuntu's bugtracker: http://www.mail-archive.com/ubuntu-bugs at lists.ubuntu.com/msg949701.html cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: Thomas Schr?der, Wolfgang Engels, Dr. Roland B?mer Vorsitzender des Aufsichtsrates: Martin H?ring From twisti at complang.tuwien.ac.at Wed Aug 6 08:08:18 2008 From: twisti at complang.tuwien.ac.at (Christian Thalinger) Date: Wed, 06 Aug 2008 15:08:18 +0000 Subject: changeset in /hg/icedtea6: 2008-08-06 Christian Thalinger changeset caf1f4959def in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=caf1f4959def description: 2008-08-06 Christian Thalinger * patches/icedtea-cacao.patch: Moved architecture stuff into... * patches/icedtea-arch.patch: New file. * Makefile.am (EXTRA_DIST): Added patches/icedtea-arch.patch. (ICEDTEA_PATCHES): Likewise. * HACKING: Likewise. diffstat: 5 files changed, 289 insertions(+), 235 deletions(-) ChangeLog | 8 + HACKING | 4 Makefile.am | 6 patches/icedtea-arch.patch | 275 +++++++++++++++++++++++++++++++++++++++++++ patches/icedtea-cacao.patch | 231 ------------------------------------ diffs (truncated from 579 to 500 lines): diff -r 59665e494100 -r caf1f4959def ChangeLog --- a/ChangeLog Tue Aug 05 17:05:24 2008 +0200 +++ b/ChangeLog Wed Aug 06 19:13:38 2008 -0400 @@ -1,3 +1,11 @@ 2008-08-05 Christian Thalinger + + * patches/icedtea-cacao.patch: Moved architecture stuff into... + * patches/icedtea-arch.patch: New file. + * Makefile.am (EXTRA_DIST): Added patches/icedtea-arch.patch. + (ICEDTEA_PATCHES): Likewise. + * HACKING: Likewise. + 2008-08-05 Christian Thalinger * autogen.sh: New file. diff -r 59665e494100 -r caf1f4959def HACKING --- a/HACKING Tue Aug 05 17:05:24 2008 +0200 +++ b/HACKING Wed Aug 06 19:13:38 2008 -0400 @@ -63,7 +63,7 @@ The following patches are currently appl * icedtea-hotspot-gcc-pr36917.patch: Work around miscompilation with GCC 4.3 (PR 36917). * icedtea-hotspot-citypeflow.patch: Fix hotspot miscompilation with GCC 4.3 on x86. * icedtea-alpha-fixes.patch: Fix build issues on alpha-linux. -* +* icedtea-arch.patch: Add support for additional architectures. The following patches are only applied to OpenJDK6 in IcedTea6: @@ -111,7 +111,7 @@ The following patches are only applied w The following patches are only applied when building with the CACAO virtual machine: -* icedtea-cacao.patch: Add support for additional architectures and don't run 'java' in a new thread. +* icedtea-cacao.patch: Don't run 'java' in a new thread. Obsolete Patches ================ diff -r 59665e494100 -r caf1f4959def Makefile.am --- a/Makefile.am Tue Aug 05 17:05:24 2008 +0200 +++ b/Makefile.am Wed Aug 06 19:13:38 2008 -0400 @@ -74,7 +74,8 @@ EXTRA_DIST = rt generated $(ICEDTEA_PATC EXTRA_DIST = rt generated $(ICEDTEA_PATCHES) $(ICEDTEA_FSG_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-arch.patch patches/icedtea-cacao.patch \ + javaws.png javaws.desktop \ overlays extra jconsole.desktop policytool.desktop \ test/jtreg patches/icedtea-plugin.patch \ patches/icedtea-liveconnect.patch IcedTeaPlugin.cc \ @@ -494,7 +495,8 @@ ICEDTEA_PATCHES = \ patches/icedtea-hotspot-citypeflow.patch \ patches/icedtea-alpha-fixes.patch \ $(SHARK_PATCH) \ - $(GCC_PATCH) + $(GCC_PATCH) \ + patches/icedtea-arch.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 59665e494100 -r caf1f4959def patches/icedtea-arch.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-arch.patch Wed Aug 06 19:13:38 2008 -0400 @@ -0,0 +1,275 @@ +diff -r 63b67d07d5e9 openjdk/jdk/make/common/shared/Compiler-gcc.gmk +--- ../openjdk/jdk/make/common/shared/Compiler-gcc.gmk Tue Mar 25 16:27:33 2008 +0000 ++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk Wed Mar 26 08:24:35 2008 +0000 +@@ -75,28 +75,51 @@ ifeq ($(PLATFORM), linux) + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* + else +- ifneq ("$(findstring sparc,$(ARCH))", "") +- # sparc or sparcv9 +- REQUIRED_CC_VER = 4.0 +- REQUIRED_GCC_VER = 4.0.* +- else +- ifeq ($(ARCH_DATA_MODEL), 32) ++ ifeq ($(ARCH), alpha) ++ # alpha ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* ++ endif ++ ifeq ($(ARCH), amd64) ++ # amd64 ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* ++ endif ++ ifeq ($(ARCH), arm) ++ # arm ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* ++ endif ++ ifeq ($(ARCH), i586) + # i586 + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.1* + REQUIRED_GCC_VER_INT = 3.2.1-7a +- else +- ifeq ($(ARCH), amd64) +- # amd64 +- REQUIRED_CC_VER = 3.2 +- REQUIRED_GCC_VER = 3.2.* + endif + ifeq ($(ARCH), ia64) + # ia64 + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 2.9[56789].* + endif ++ ifeq ($(ARCH), mips) ++ # mips ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* + endif ++ ifneq ("$(findstring ppc,$(ARCH))", "") ++ # ppc or ppc64 ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* ++ endif ++ ifneq ("$(findstring s390,$(ARCH))", "") ++ # s390 or s390x ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* ++ endif ++ ifneq ("$(findstring sparc,$(ARCH))", "") ++ # sparc or sparcv9 ++ REQUIRED_CC_VER = 4.0 ++ REQUIRED_GCC_VER = 4.0.* + endif + endif + # Option used to create a shared library +diff -r 63b67d07d5e9 openjdk/jdk/make/javax/sound/SoundDefs.gmk +--- ../openjdk/jdk/make/javax/sound/SoundDefs.gmk Tue Mar 25 16:27:33 2008 +0000 ++++ openjdk/jdk/make/javax/sound/SoundDefs.gmk Wed Mar 26 08:29:28 2008 +0000 +@@ -58,9 +58,45 @@ ifdef ICEDTEA_ZERO_BUILD + ifdef ICEDTEA_ZERO_BUILD + CPPFLAGS += -DX_ARCH=X_ZERO + else ++ ifeq ($(ARCH), alpha) ++ CPPFLAGS += -DX_ARCH=X_ALPHA ++ endif # ARCH alpha ++ ++ ifeq ($(ARCH), amd64) ++ CPPFLAGS += -DX_ARCH=X_AMD64 ++ endif # ARCH amd64 ++ ++ ifeq ($(ARCH), arm) ++ CPPFLAGS += -DX_ARCH=X_ARM ++ endif # ARCH arm ++ + ifeq ($(ARCH), i586) + CPPFLAGS += -DX_ARCH=X_I586 + endif # ARCH i586 ++ ++ ifeq ($(ARCH), ia64) ++ CPPFLAGS += -DX_ARCH=X_IA64 ++ endif # ARCH ia64 ++ ++ ifeq ($(ARCH), mips) ++ CPPFLAGS += -DX_ARCH=X_MIPS ++ endif # ARCH mips ++ ++ ifeq ($(ARCH), ppc) ++ CPPFLAGS += -DX_ARCH=X_PPC ++ endif # ARCH ppc ++ ++ ifeq ($(ARCH), ppc64) ++ CPPFLAGS += -DX_ARCH=X_PPC64 ++ endif # ARCH ppc64 ++ ++ ifeq ($(ARCH), s390) ++ CPPFLAGS += -DX_ARCH=X_S390 ++ endif # ARCH s390 ++ ++ ifeq ($(ARCH), s390x) ++ CPPFLAGS += -DX_ARCH=X_S390X ++ endif # ARCH s390x + + ifeq ($(ARCH), sparc) + CPPFLAGS += -DX_ARCH=X_SPARC +@@ -69,10 +105,6 @@ else + ifeq ($(ARCH), sparcv9) + CPPFLAGS += -DX_ARCH=X_SPARCV9 + endif # ARCH sparcv9 +- +- ifeq ($(ARCH), amd64) +- CPPFLAGS += -DX_ARCH=X_AMD64 +- endif # ARCH amd64 + endif + + +diff -r 63b67d07d5e9 openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h +--- ../openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Mar 25 16:27:33 2008 +0000 ++++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Mar 26 08:38:14 2008 +0000 +@@ -33,12 +33,19 @@ + #define X_LINUX 3 + + // types for X_ARCH +-#define X_I586 1 +-#define X_SPARC 2 +-#define X_SPARCV9 3 +-#define X_IA64 4 +-#define X_AMD64 5 +-#define X_ZERO 6 ++#define X_ALPHA 1 ++#define X_AMD64 2 ++#define X_ARM 3 ++#define X_I586 4 ++#define X_IA64 5 ++#define X_MIPS 6 ++#define X_PPC 7 ++#define X_PPC64 8 ++#define X_S390 9 ++#define X_S390X 10 ++#define X_SPARC 11 ++#define X_SPARCV9 12 ++#define X_ZERO 13 + + // ********************************** + // Make sure you set X_PLATFORM and X_ARCH defines correctly. +--- openjdk/corba/make/common/shared/Platform.gmk~ 2008-04-21 09:54:27.000000000 +0200 ++++ openjdk/corba/make/common/shared/Platform.gmk 2008-04-21 16:14:54.000000000 +0200 +@@ -224,9 +224,34 @@ + else + # i586 is 32-bit, amd64 is 64-bit + ifndef ARCH_DATA_MODEL ++ ifeq ($(ARCH), alpha) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), amd64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), arm) ++ ARCH_DATA_MODEL=32 ++ endif + ifeq ($(ARCH), i586) + ARCH_DATA_MODEL=32 +- else ++ endif ++ ifeq ($(ARCH), ia64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), mips) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), ppc) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), ppc64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), s390) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), s390x) + ARCH_DATA_MODEL=64 + endif + endif +--- openjdk/jdk/make/common/shared/Platform.gmk~ 2008-04-21 09:54:27.000000000 +0200 ++++ openjdk/jdk/make/common/shared/Platform.gmk 2008-04-21 16:15:00.000000000 +0200 +@@ -235,9 +235,34 @@ + else + # i586 is 32-bit, amd64 is 64-bit + ifndef ARCH_DATA_MODEL ++ ifeq ($(ARCH), alpha) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), amd64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), arm) ++ ARCH_DATA_MODEL=32 ++ endif + ifeq ($(ARCH), i586) + ARCH_DATA_MODEL=32 +- else ++ endif ++ ifeq ($(ARCH), ia64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), mips) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), ppc) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), ppc64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), s390) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), s390x) + ARCH_DATA_MODEL=64 + endif + endif +diff -r f07251088084 make/common/Defs-linux.gmk +--- a/corba/make/common/Defs-linux.gmk Mon Aug 04 13:44:45 2008 -0700 ++++ openjdk/corba/make/common/Defs-linux.gmk Wed Aug 06 18:58:18 2008 -0400 +@@ -92,9 +92,18 @@ + # We need this frame pointer to make it easy to walk the stacks. + # This should be the default on X86, but ia64 and amd64 may not have this + # as the default. ++CFLAGS_REQUIRED_alpha += -mieee -D_LITTLE_ENDIAN + CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_arm += -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_hppa += + CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN + CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_m68k += ++CFLAGS_REQUIRED_mips += ++CFLAGS_REQUIRED_ppc += -m32 ++CFLAGS_REQUIRED_ppc64 += -m64 ++CFLAGS_REQUIRED_s390 += ++CFLAGS_REQUIRED_s390x += -m64 + CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9 + LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 + CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 +diff -r 12a0d0a1bb65 make/common/Defs-linux.gmk +--- a/jdk/make/common/Defs-linux.gmk Mon Aug 04 13:45:00 2008 -0700 ++++ openjdk/jdk/make/common/Defs-linux.gmk Wed Aug 06 18:58:22 2008 -0400 +@@ -102,9 +102,18 @@ + # We need this frame pointer to make it easy to walk the stacks. + # This should be the default on X86, but ia64 and amd64 may not have this + # as the default. ++CFLAGS_REQUIRED_alpha += -mieee -D_LITTLE_ENDIAN + CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_arm += -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_hppa += + CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN + CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_m68k += ++CFLAGS_REQUIRED_mips += ++CFLAGS_REQUIRED_ppc += -m32 ++CFLAGS_REQUIRED_ppc64 += -m64 ++CFLAGS_REQUIRED_s390 += ++CFLAGS_REQUIRED_s390x += -m64 + CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9 + LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 + CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 diff -r 59665e494100 -r caf1f4959def patches/icedtea-cacao.patch --- a/patches/icedtea-cacao.patch Tue Aug 05 17:05:24 2008 +0200 +++ b/patches/icedtea-cacao.patch Wed Aug 06 19:13:38 2008 -0400 @@ -10,237 +10,6 @@ } } -diff -r 63b67d07d5e9 openjdk/jdk/make/common/shared/Compiler-gcc.gmk ---- ../openjdk/jdk/make/common/shared/Compiler-gcc.gmk Tue Mar 25 16:27:33 2008 +0000 -+++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk Wed Mar 26 08:24:35 2008 +0000 -@@ -75,28 +75,51 @@ ifeq ($(PLATFORM), linux) - REQUIRED_CC_VER = 3.2 - REQUIRED_GCC_VER = 3.2.* - else -- ifneq ("$(findstring sparc,$(ARCH))", "") -- # sparc or sparcv9 -- REQUIRED_CC_VER = 4.0 -- REQUIRED_GCC_VER = 4.0.* -- else -- ifeq ($(ARCH_DATA_MODEL), 32) -+ ifeq ($(ARCH), alpha) -+ # alpha -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifeq ($(ARCH), amd64) -+ # amd64 -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifeq ($(ARCH), arm) -+ # arm -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifeq ($(ARCH), i586) - # i586 - REQUIRED_CC_VER = 3.2 - REQUIRED_GCC_VER = 3.2.1* - REQUIRED_GCC_VER_INT = 3.2.1-7a -- else -- ifeq ($(ARCH), amd64) -- # amd64 -- REQUIRED_CC_VER = 3.2 -- REQUIRED_GCC_VER = 3.2.* - endif - ifeq ($(ARCH), ia64) - # ia64 - REQUIRED_CC_VER = 3.2 - REQUIRED_GCC_VER = 2.9[56789].* - endif -+ ifeq ($(ARCH), mips) -+ # mips -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* - endif -+ ifneq ("$(findstring ppc,$(ARCH))", "") -+ # ppc or ppc64 -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifneq ("$(findstring s390,$(ARCH))", "") -+ # s390 or s390x -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifneq ("$(findstring sparc,$(ARCH))", "") -+ # sparc or sparcv9 -+ REQUIRED_CC_VER = 4.0 -+ REQUIRED_GCC_VER = 4.0.* - endif - endif - # Option used to create a shared library -diff -r 63b67d07d5e9 openjdk/jdk/make/javax/sound/SoundDefs.gmk ---- ../openjdk/jdk/make/javax/sound/SoundDefs.gmk Tue Mar 25 16:27:33 2008 +0000 -+++ openjdk/jdk/make/javax/sound/SoundDefs.gmk Wed Mar 26 08:29:28 2008 +0000 -@@ -58,9 +58,45 @@ ifdef ICEDTEA_ZERO_BUILD - ifdef ICEDTEA_ZERO_BUILD - CPPFLAGS += -DX_ARCH=X_ZERO - else -+ ifeq ($(ARCH), alpha) -+ CPPFLAGS += -DX_ARCH=X_ALPHA -+ endif # ARCH alpha -+ -+ ifeq ($(ARCH), amd64) -+ CPPFLAGS += -DX_ARCH=X_AMD64 -+ endif # ARCH amd64 -+ -+ ifeq ($(ARCH), arm) -+ CPPFLAGS += -DX_ARCH=X_ARM -+ endif # ARCH arm -+ - ifeq ($(ARCH), i586) - CPPFLAGS += -DX_ARCH=X_I586 - endif # ARCH i586 -+ -+ ifeq ($(ARCH), ia64) -+ CPPFLAGS += -DX_ARCH=X_IA64 -+ endif # ARCH ia64 -+ -+ ifeq ($(ARCH), mips) -+ CPPFLAGS += -DX_ARCH=X_MIPS -+ endif # ARCH mips -+ -+ ifeq ($(ARCH), ppc) -+ CPPFLAGS += -DX_ARCH=X_PPC -+ endif # ARCH ppc -+ -+ ifeq ($(ARCH), ppc64) -+ CPPFLAGS += -DX_ARCH=X_PPC64 -+ endif # ARCH ppc64 -+ -+ ifeq ($(ARCH), s390) -+ CPPFLAGS += -DX_ARCH=X_S390 -+ endif # ARCH s390 -+ -+ ifeq ($(ARCH), s390x) -+ CPPFLAGS += -DX_ARCH=X_S390X -+ endif # ARCH s390x - - ifeq ($(ARCH), sparc) - CPPFLAGS += -DX_ARCH=X_SPARC -@@ -69,10 +105,6 @@ else - ifeq ($(ARCH), sparcv9) - CPPFLAGS += -DX_ARCH=X_SPARCV9 - endif # ARCH sparcv9 -- -- ifeq ($(ARCH), amd64) -- CPPFLAGS += -DX_ARCH=X_AMD64 -- endif # ARCH amd64 - endif - - -diff -r 63b67d07d5e9 openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h ---- ../openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Mar 25 16:27:33 2008 +0000 -+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Mar 26 08:38:14 2008 +0000 -@@ -33,12 +33,19 @@ - #define X_LINUX 3 - - // types for X_ARCH --#define X_I586 1 --#define X_SPARC 2 --#define X_SPARCV9 3 --#define X_IA64 4 --#define X_AMD64 5 --#define X_ZERO 6 -+#define X_ALPHA 1 -+#define X_AMD64 2 -+#define X_ARM 3 -+#define X_I586 4 -+#define X_IA64 5 -+#define X_MIPS 6 -+#define X_PPC 7 -+#define X_PPC64 8 -+#define X_S390 9 -+#define X_S390X 10 -+#define X_SPARC 11 -+#define X_SPARCV9 12 -+#define X_ZERO 13 - - // ********************************** - // Make sure you set X_PLATFORM and X_ARCH defines correctly. From bugzilla-daemon at icedtea.classpath.org Wed Aug 6 12:49:53 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Aug 2008 19:49:53 +0000 Subject: [Bug 181] New: enum issue with icedtea Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=181 Summary: enum issue with icedtea Product: IcedTea Version: unspecified Platform: PC URL: http://www.opennms.org/~brozow/enum-spring-test.tar.gz OS/Version: Mac OS Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: ranger at opennms.org OpenNMS has some code that works in the Sun JDK but fails in icedtea (Fedora Core 9, java-1.6.0-openjdk-1.6.0.0-0.17.b09.fc9.i386). We've managed to break it down into a small test case, available at the URL in this bug. Just unpack and run "mvn test -e", you should get an error like this: [ranger at i386-fc9 enum-spring-test]$ mvn test -e /usr/lib/jvm/java + Error stacktraces are turned on. [INFO] Scanning for projects... [INFO] ---------------------------------------------------------------------------- [INFO] Building enum-spring-test [INFO] task-segment: [test] [INFO] ---------------------------------------------------------------------------- [INFO] Ignoring available plugin update: 2.4.3 as it requires Maven version 2.0.6 [INFO] [resources:resources] [INFO] Using default encoding to copy filtered resources. [INFO] [compiler:compile] [INFO] Nothing to compile - all classes are up to date [INFO] [resources:testResources] [INFO] Using default encoding to copy filtered resources. [INFO] [compiler:testCompile] [INFO] Nothing to compile - all classes are up to date [INFO] [surefire:test] [INFO] Surefire report directory: /tmp/enum-spring-test/target/surefire-reports ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.openjdk.test.BeanWrapperTest Aug 6, 2008 2:49:23 PM org.springframework.beans.TypeConverterDelegate findDefaultEditor WARNING: PropertyEditor [sun.beans.editors.EnumEditor] found through deprecated global PropertyEditorManager fallback - consider using a more isolated form of registration, e.g. on the BeanWrapper/BeanFactory! Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.188 sec <<< FAILURE! Results : Tests in error: testBeanWrapper(org.openjdk.test.BeanWrapperTest) Tests run: 1, Failures: 0, Errors: 1, Skipped: 0 [INFO] ------------------------------------------------------------------------ [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] There are test failures. Please refer to /tmp/enum-spring-test/target/surefire-reports for the individual test results. [INFO] ------------------------------------------------------------------------ [INFO] Trace org.apache.maven.BuildFailureException: There are test failures. Please refer to /tmp/enum-spring-test/target/surefire-reports for the individual test results. at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:555) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:475) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:454) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115) at org.apache.maven.cli.MavenCli.main(MavenCli.java:256) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.plugin.MojoFailureException: There are test failures. Please refer to /tmp/enum-spring-test/target/surefire-reports for the individual test results. at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:530) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:412) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534) ... 16 more [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 seconds [INFO] Finished at: Wed Aug 06 14:49:23 GMT-05:00 2008 [INFO] Final Memory: 5M/9M [INFO] ------------------------------------------------------------------------ -- 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 Aug 6 12:50:19 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Aug 2008 19:50:19 +0000 Subject: [Bug 181] enum issue with icedtea Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=181 ranger at opennms.org changed: What |Removed |Added ---------------------------------------------------------------------------- OS/Version|Mac OS |Linux -- 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 Aug 6 12:50:53 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Aug 2008 19:50:53 +0000 Subject: [Bug 181] enum issue with icedtea Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=181 ------- Comment #1 from ranger at opennms.org 2008-08-06 19:50 ------- Created an attachment (id=88) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=88&action=view) test case Even better, attach it to the 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 Aug 6 12:52:49 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Aug 2008 19:52:49 +0000 Subject: [Bug 181] enum issue with icedtea Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=181 ------- Comment #2 from ranger at opennms.org 2008-08-06 19:52 ------- Ergh, that didn't work as expected, would have thought "AttachURL" would attach the contents of the URL to the bug. Sorry about that. :P -- 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 Aug 6 12:58:28 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 06 Aug 2008 19:58:28 +0000 Subject: [Bug 181] enum issue with icedtea Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=181 ------- Comment #3 from ranger at opennms.org 2008-08-06 19:58 ------- ...and the test failure: ------------------------------------------------------------------------------- Test set: org.openjdk.test.BeanWrapperTest ------------------------------------------------------------------------------- Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.189 sec <<< FAILURE! testBeanWrapper(org.openjdk.test.BeanWrapperTest) Time elapsed: 0.13 sec <<< ERROR! org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessException details (1) are: PropertyAccessException 1: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [org.openjdk.test.RelativeTime] for property 'time'; nested exception is java.lang.IllegalArgumentException: Unsupported value: YESTERDAY at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:855) at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:651) at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78) at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59) at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:55) at org.openjdk.test.BeanWrapperTest.testBeanWrapper(BeanWrapperTest.java:30) Caused by: java.lang.IllegalArgumentException: Unsupported value: YESTERDAY at sun.beans.editors.EnumEditor.setValue(EnumEditor.java:71) at sun.beans.editors.EnumEditor.setAsText(EnumEditor.java:101) at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:374) at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:350) at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:173) at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138) at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:832) ... 31 more -- 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 Aug 7 09:05:22 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 07 Aug 2008 16:05:22 +0000 Subject: [Bug 182] New: crashes when updating a project directory in eclipse Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=182 Summary: crashes when updating a project directory in eclipse Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P1 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: rolando.umana at gmail.com platform: fedora 9 x86_64 java version "1.6.0" OpenJDK Runtime Environment (build 1.6.0-b09) OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode) -- 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 Aug 7 09:07:42 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 07 Aug 2008 16:07:42 +0000 Subject: [Bug 182] crashes when updating a project directory in eclipse Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=182 ------- Comment #1 from rolando.umana at gmail.com 2008-08-07 16:07 ------- Created an attachment (id=89) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=89&action=view) error log An unexpected error has been detected by Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x0000000000808afa, pid=2891, tid=23865680 # # Java VM: OpenJDK 64-Bit Server VM (1.6.0-b09 mixed mode linux-amd64) # Problematic frame: # V [libjvm.so+0x1ffafa] # -- 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 Aug 7 12:29:12 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 07 Aug 2008 19:29:12 +0000 Subject: [Bug 182] crashes when updating a project directory in eclipse Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=182 ------- Comment #2 from jsumali at redhat.com 2008-08-07 19:29 ------- This may be a duplicate of http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=180 Is the problem reproducible with b11? -- 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 keiths at redhat.com Thu Aug 7 13:32:33 2008 From: keiths at redhat.com (Keith Seitz) Date: Thu, 07 Aug 2008 13:32:33 -0700 Subject: [Fwd: Re: [OpenJDK 2D-Dev] Code review request to integrated IcedTea lcms fixes into OpenJDK 6] Message-ID: <489B5BE1.8020700@redhat.com> FYI, it looks like icedtea-lcms-leak.patch and icedtea-LCMS-setTagData.patch will soon be unnecessary. Keith -------- Original Message -------- Subject: Re: [OpenJDK 2D-Dev] Code review request to integrated IcedTea lcms fixes into OpenJDK 6 Date: Thu, 07 Aug 2008 10:01:00 -0700 From: Joseph D. Darcy To: Alexey Ushakov CC: 2d-dev, Dalibor Topic I've put the change back into OpenJDK 6 build 12. Thanks, -Joe Alexey Ushakov wrote: > Looks good for me. > > Best Regards, > Alexey > > Joseph D. Darcy wrote: >> Hello. >> >> I'm working on getting the baseline OpenJDK 6 code base to pass JCK >> 6b. Toward that end I'm requesting a code review of my application >> of little cms patches previously sent in by Keith: >> http://mail.openjdk.java.net/pipermail/2d-dev/2008-April/000228.html >> and Tom: >> >> http://mail.openjdk.java.net/pipermail/awt-dev/2007-November/000107.html, >> >> These are also the IcedTea patches >> icedtea-LCMS-setTagData.patch: Add support for setTagData to LCMS >> peer. >> icedtea-lcms-leak.patch: Fix LCMS memory leak. >> respectively. >> >> I've applied the patches to OpenJDK 6 build 11; existing cmm >> regression tests pass as do more JCK tests (see bug 6657581). >> >> Webrev uploaded to: >> http://dcstaff.invokedynamic.info/images/7/7e/darcy-6733501.tgz >> >> It would be helpful to have a review by August 8 to ease getting this >> change into OpenJDK 6 build 12. >> >> Thanks, >> >> -Joe > From omajid at redhat.com Fri Aug 8 08:19:50 2008 From: omajid at redhat.com (Omair Majid) Date: Fri, 08 Aug 2008 15:19:50 +0000 Subject: changeset in /hg/pulseaudio: more refactoring; started work on c... Message-ID: changeset 0caab9aa95b1 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=0caab9aa95b1 description: more refactoring; started work on controls diffstat: 15 files changed, 198 insertions(+), 805 deletions(-) makefile | 18 src/jni-common.h | 5 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 35 + src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java | 113 ----- src/org/classpath/icedtea/pulseaudio/StreamVolume.java | 114 +++++ src/org_classpath_icedtea_pulseaudio_EventLoop.c | 15 src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c | 25 - src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c | 38 - src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeMuteControl.c | 8 src/org_classpath_icedtea_pulseaudio_PulseStreamAudioVolumeControl.c | 8 unittests/org/openjdk/sound/OtherSoundProvidersAvailableTest.java | 105 ---- unittests/org/openjdk/sound/PulseAudioMixerProviderTest.java | 93 ---- unittests/org/openjdk/sound/PulseAudioMixerRawTest.java | 71 --- unittests/org/openjdk/sound/PulseAudioMixerTest.java | 222 ---------- unittests/org/openjdk/sound/PulseSourceDataLineTest.java | 133 ----- diffs (truncated from 1269 to 500 lines): diff -r 8dada78f3620 -r 0caab9aa95b1 makefile --- a/makefile Tue Aug 05 15:47:11 2008 -0400 +++ b/makefile Tue Aug 05 17:30:50 2008 -0400 @@ -9,8 +9,8 @@ CC=gcc PLATFORM_FLAGS=-DWITH_32BIT_PLATFORM -CFLAGS=-g -LDFLAGS=-g +CFLAGS=-g -Wall -Werror +LDFLAGS=-g -Wall -Werror # Standard targets @@ -18,7 +18,7 @@ all: lib/libpulse-java.so clean: - -rm src/org_*.h src/org/openjdk/sound/*.class + -rm src/org_*.h src/org/classpath/icedtea/pulseaudio/*.class -rm -r bin -rm -r lib mkdir -p lib @@ -43,22 +43,22 @@ lib/libpulse-java.so: \ # Object files bin/org_classpath_icedtea_pulseaudio_EventLoop.o: src/org_classpath_icedtea_pulseaudio_EventLoop.c src/org_classpath_icedtea_pulseaudio_EventLoop.h bin - gcc -g $(PLATFORM_FLAGS) -c -o $@ $< + gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.o: src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.h bin - gcc -g $(PLATFORM_FLAGS) -c -o $@ $< + gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.o: src/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.c src/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.h bin - gcc -g $(PLATFORM_FLAGS) -c -o $@ $< + gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.o: src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.c src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.h - gcc -g $(PLATFORM_FLAGS) -c -o $@ $< + gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o: src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h - gcc -g $(PLATFORM_FLAGS) -c -o $@ $< + gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/jni-common.o: src/jni-common.c src/jni-common.h - gcc -g $(PLATFORM_FLAGS) -c -o $@ $< + gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< # Java headers diff -r 8dada78f3620 -r 0caab9aa95b1 src/jni-common.h --- a/src/jni-common.h Tue Aug 05 15:47:11 2008 -0400 +++ b/src/jni-common.h Tue Aug 05 17:30:50 2008 -0400 @@ -53,6 +53,11 @@ exception statement from your version. # error Unsupported Platform #endif +typedef struct java_context_t { + JNIEnv* env; + jobject obj; +} java_context_t; + jint getJavaIntField(JNIEnv* env, jobject obj, char* fieldName); void setJavaIntField(JNIEnv* env, jobject obj, char* fieldName, jint value); diff -r 8dada78f3620 -r 0caab9aa95b1 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine$1.class Binary file src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine$1.class has changed diff -r 8dada78f3620 -r 0caab9aa95b1 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.class Binary file src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.class has changed diff -r 8dada78f3620 -r 0caab9aa95b1 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 05 15:47:11 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 05 17:30:50 2008 -0400 @@ -33,7 +33,7 @@ this exception to your version of the li this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. -*/ + */ package org.classpath.icedtea.pulseaudio; @@ -43,7 +43,9 @@ import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore; import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.BooleanControl; import javax.sound.sampled.Control; +import javax.sound.sampled.FloatControl; import javax.sound.sampled.Line; import javax.sound.sampled.LineEvent; import javax.sound.sampled.LineListener; @@ -63,6 +65,10 @@ public class PulseAudioSourceDataLine im private boolean isPaused = false; private AudioFormat format = null; + + private Control[] controls; + private Mute muteControl; + private StreamVolume volumeControl; private List listeners; @@ -112,6 +118,10 @@ public class PulseAudioSourceDataLine im public PulseAudioSourceDataLine(EventLoop eventLoop) { this.eventLoop = eventLoop; this.listeners = new ArrayList(); + + volumeControl = new StreamVolume(this); + muteControl = new Mute(); + controls = new Control[] { volumeControl, muteControl }; } public void open(AudioFormat format, int bufferSize) @@ -305,12 +315,16 @@ public class PulseAudioSourceDataLine im } public Control getControl(Type control) { - return null; + for (int i = 0; i < controls.length; i++) { + if (controls[i].getType() == control){ + return controls[i]; + } + } + throw new IllegalArgumentException("Unsupported control type"); } public Control[] getControls() { - // TODO Auto-generated method stub - return null; + return controls; } public javax.sound.sampled.Line.Info getLineInfo() { @@ -386,4 +400,17 @@ public class PulseAudioSourceDataLine im } } + private class Mute extends BooleanControl { + + protected Mute() { + super(BooleanControl.Type.MUTE, false, "TRUE", "FALSE"); + + } + + } + + public long getStreamPointer() { + return streamPointer; + } + } diff -r 8dada78f3620 -r 0caab9aa95b1 src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java Tue Aug 05 15:47:11 2008 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* PulseAudioStreamVolumeControl.java - Copyright (C) 2008 Red Hat, Inc. - -This file is part of IcedTea. - -IcedTea is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License as published by -the Free Software Foundation, version 2. - -IcedTea 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 for more details. - -You should have received a copy of the GNU General Public License -along with IcedTea; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. -*/ - - -package org.classpath.icedtea.pulseaudio; - -import java.io.IOException; - -import javax.sound.sampled.FloatControl; - -public class PulseAudioStreamVolumeControl extends FloatControl { - - private FloatControl.Type type; - - static { - try { - String library = new java.io.File(".").getCanonicalPath() - + java.io.File.separatorChar + "lib" - + java.io.File.separatorChar - + System.mapLibraryName("pulse-java"); - System.out.println(library); - System.load(library); - } catch (IOException e) { - assert ("Loading failed".endsWith("library")); - } - } - - @SuppressWarnings("unused") - private long streamPointer; - @SuppressWarnings("unused") - private long mainLoopPointer; - - protected PulseAudioStreamVolumeControl(Type type, float minimum, - float maximum, float precision, int updatePeriod, - float initialValue, String units, long streamPointer, - long mainLoopPointer) { - super(type, minimum, maximum, precision, updatePeriod, initialValue, - units); - assert (type.equals(Type.VOLUME)); - this.streamPointer = streamPointer; - this.mainLoopPointer = mainLoopPointer; - - } - - @Override - public float getMaximum() { - // TODO Auto-generated method stub - return super.getMaximum(); - } - - @Override - public float getMinimum() { - // TODO Auto-generated method stub - return super.getMinimum(); - } - - @Override - public Type getType() { - // TODO Auto-generated method stub - return type; - } - - @Override - public String getUnits() { - // TODO Auto-generated method stub - return super.getUnits(); - } - - public native float getValue(); - - public native void setValue(float newValue); - - @Override - public void shift(float from, float to, int microseconds) { - // TODO Auto-generated method stub - super.shift(from, to, microseconds); - } - -} diff -r 8dada78f3620 -r 0caab9aa95b1 src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.class Binary file src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.class has changed diff -r 8dada78f3620 -r 0caab9aa95b1 src/org/classpath/icedtea/pulseaudio/StreamVolume.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/classpath/icedtea/pulseaudio/StreamVolume.java Tue Aug 05 17:30:50 2008 -0400 @@ -0,0 +1,114 @@ +/* PulseAudioStreamVolumeControl.java + Copyright (C) 2008 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea 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 for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ + +package org.classpath.icedtea.pulseaudio; + +import java.io.IOException; + +import javax.sound.sampled.FloatControl; + +public class StreamVolume extends FloatControl { + + private FloatControl.Type type; + private PulseAudioSourceDataLine stream; + + private static final int MIN_PULSE_VOLUME = 0x0; + private static final int MAX_PULSE_VOLUME = 0x10000; + + static { + try { + String library = new java.io.File(".").getCanonicalPath() + + java.io.File.separatorChar + "lib" + + java.io.File.separatorChar + + System.mapLibraryName("pulse-java"); + System.out.println(library); + System.load(library); + } catch (IOException e) { + assert ("Loading failed".endsWith("library")); + } + } + + private native void native_set_volume(int volume, long streamPointer, long contextPointer); + + protected StreamVolume(PulseAudioSourceDataLine stream) { + super(FloatControl.Type.VOLUME, 0f, 100f, 0.1f, 1, 100f, "percent", + "mute", "medium", "max"); + this.type = FloatControl.Type.VOLUME; + this.stream = stream; + } + + @Override + public float getMaximum() { + return super.getMaximum(); + } + + @Override + public float getMinimum() { + return super.getMinimum(); + } + + @Override + public Type getType() { + return type; + } + + @Override + public String getUnits() { + return super.getUnits(); + } + + public float getValue() { + return super.getValue(); + } + + public void setValue(float newValue) { + /* + * Set value of pulseaudio + * + */ + int value = (int) (newValue/100f * MAX_PULSE_VOLUME); +// native_set_volume(value, stream.getStreamPointer()); + + super.setValue(newValue); + } + + @Override + public void shift(float from, float to, int microseconds) { + super.shift(from, to, microseconds); + } + +} diff -r 8dada78f3620 -r 0caab9aa95b1 src/org_classpath_icedtea_pulseaudio_EventLoop.c --- a/src/org_classpath_icedtea_pulseaudio_EventLoop.c Tue Aug 05 15:47:11 2008 -0400 +++ b/src/org_classpath_icedtea_pulseaudio_EventLoop.c Tue Aug 05 17:30:50 2008 -0400 @@ -44,11 +44,6 @@ const int PA_ITERATE_BLOCK = 1; const int PA_ITERATE_BLOCK = 1; const int PA_ITERATE_NOBLOCK = 0; -typedef struct java_context_t { - JNIEnv* env; - jobject obj; -} java_context_t; - static java_context_t* java_context = NULL; JNIEnv* pulse_thread_env = NULL; @@ -92,9 +87,6 @@ JNIEXPORT void JNICALL Java_org_classpat assert(appName != NULL); - jfieldID fid; /* the field id */ - jclass cls = (*env)->GetObjectClass(env,obj); - printf("native_setup() called\n"); pa_mainloop *mainloop = pa_mainloop_new(); assert(mainloop != NULL); @@ -103,7 +95,7 @@ JNIEXPORT void JNICALL Java_org_classpat pa_context *context = NULL; - const jbyte* string_appName; + const char* string_appName; string_appName = (*env)->GetStringUTFChars(env, appName, NULL); if (string_appName == NULL) { return; /* a OutOfMemoryError thrown by vm */ @@ -124,7 +116,7 @@ JNIEXPORT void JNICALL Java_org_classpat if (server != NULL) { /* obtain the server from the caller */ - const jbyte* string_server = NULL; + const char* string_server = NULL; string_server = (*env)->GetStringUTFChars(env, server, NULL); if (string_server == NULL) { /* error, so clean up */ @@ -192,9 +184,6 @@ JNIEXPORT void JNICALL Java_org_classpat printf("native_shutdown() starting\n"); - jfieldID fid; /* the field id */ - jclass cls = (*env)->GetObjectClass(env,obj); - pa_mainloop* mainloop = (pa_mainloop*) getJavaPointer(env, obj, "mainloopPointer"); assert(mainloop != NULL); diff -r 8dada78f3620 -r 0caab9aa95b1 src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c --- a/src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Tue Aug 05 15:47:11 2008 -0400 +++ b/src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Tue Aug 05 17:30:50 2008 -0400 @@ -36,6 +36,7 @@ */ #include +#include #include #include #include @@ -43,13 +44,6 @@ #include "org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.h" #include "jni-common.h" - -typedef struct java_context_t { - JNIEnv* env; - jobject obj; -} java_context_t; - -static java_context_t* java_context; /* defined in EventLoop.c */ extern JNIEnv* pulse_thread_env; @@ -156,7 +150,7 @@ JNIEXPORT void JNICALL Java_org_classpat sample_spec.channels = channels; /* obtain the server from the caller */ - const jbyte* stream_name = NULL; + const char* stream_name = NULL; stream_name = (*env)->GetStringUTFChars(env, name, NULL); if (stream_name == NULL) { return; /* OutOfMemoryError */ @@ -199,7 +193,7 @@ JNIEXPORT jint JNICALL Java_org_classpat pa_stream *stream = (pa_stream*) getJavaPointer(env, obj, "streamPointer"); int available = pa_stream_writable_size(stream); - + return available; } /* @@ -282,5 +276,14 @@ JNIEXPORT void JNICALL Java_org_classpat JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1close (JNIEnv* env, jobject obj) { -} - + pa_stream *stream = (pa_stream*) getJavaPointer(env, obj, "streamPointer"); + pa_operation *o = pa_stream_drain(stream, stream_drain_complete_callback, NULL); + if (o == NULL) { + pa_stream_disconnect(stream); + } else { + pa_operation_unref(o); + } + From omajid at redhat.com Fri Aug 8 08:19:50 2008 From: omajid at redhat.com (Omair Majid) Date: Fri, 08 Aug 2008 15:19:50 +0000 Subject: changeset in /hg/pulseaudio: turned eventloop into a singleton. ... Message-ID: changeset 4a01f1203d48 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=4a01f1203d48 description: turned eventloop into a singleton. which revealed a bunch of threading issues; fixed most of the blockers diffstat: 16 files changed, 727 insertions(+), 284 deletions(-) makefile | 8 src/org/classpath/icedtea/pulseaudio/EventLoop.java | 43 + src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 59 +- src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 1 src/org/classpath/icedtea/pulseaudio/StreamVolume.java | 11 src/org_classpath_icedtea_pulseaudio_EventLoop.c | 5 src/org_classpath_icedtea_pulseaudio_EventLoop.h | 45 - src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.h | 95 ---- src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h | 29 - src/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.h | 69 -- src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.h | 13 unittests/org/classpath/icedtea/pulseaudio/OtherSoundProvidersAvailableTest.java | 105 ++++ unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerProviderTest.java | 93 ++++ unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerRawTest.java | 70 +++ unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java | 232 ++++++++++ unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java | 133 +++++ diffs (truncated from 1289 to 500 lines): diff -r 0caab9aa95b1 -r 4a01f1203d48 makefile --- a/makefile Tue Aug 05 17:30:50 2008 -0400 +++ b/makefile Wed Aug 06 14:08:52 2008 -0400 @@ -35,8 +35,9 @@ lib/libpulse-java.so: \ bin/org_classpath_icedtea_pulseaudio_EventLoop.o \ bin/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.o \ bin/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.o \ - bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o \ + bin/org_classpath_icedtea_pulseaudio_StreamVolume.o \ bin/jni-common.o +# bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o \ # bin/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.o \ gcc -g -shared -o $@ $^ /usr/lib/libpulse.so @@ -55,6 +56,9 @@ bin/org_classpath_icedtea_pulseaudio_Pul gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o: src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h + gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< + +bin/org_classpath_icedtea_pulseaudio_StreamVolume.o: src/org_classpath_icedtea_pulseaudio_StreamVolume.c src/org_classpath_icedtea_pulseaudio_StreamVolume.h gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/jni-common.o: src/jni-common.c src/jni-common.h @@ -77,6 +81,8 @@ src/org_classpath_icedtea_pulseaudio_Pul src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h: src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.class javah -d src -classpath src org.classpath.icedtea.pulseaudio.PulseAudioStreamVolumeControl +src/org_classpath_icedtea_pulseaudio_StreamVolume.h: src/org/classpath/icedtea/pulseaudio/StreamVolume.class + javah -d src -classpath src org.classpath.icedtea.pulseaudio.StreamVolume # Compile Java # Actually, this is not the best thing to do; javac might do some crazy things diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/ContextEvent$Type.class Binary file src/org/classpath/icedtea/pulseaudio/ContextEvent$Type.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/ContextEvent.class Binary file src/org/classpath/icedtea/pulseaudio/ContextEvent.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/ContextListener.class Binary file src/org/classpath/icedtea/pulseaudio/ContextListener.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/EventLoop$1.class Binary file src/org/classpath/icedtea/pulseaudio/EventLoop$1.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/EventLoop.class Binary file src/org/classpath/icedtea/pulseaudio/EventLoop.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/EventLoop.java --- a/src/org/classpath/icedtea/pulseaudio/EventLoop.java Tue Aug 05 17:30:50 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/EventLoop.java Wed Aug 06 14:08:52 2008 -0400 @@ -33,7 +33,7 @@ this exception to your version of the li this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. -*/ + */ package org.classpath.icedtea.pulseaudio; @@ -60,12 +60,15 @@ public class EventLoop implements Runnab */ public Object threadLock = new Object(); + private static EventLoop instance = null; + private List contextListeners; // private List lines; private String name; private String serverString; private int status; + // private boolean eventLoopIsRunning = false; public Semaphore finished = new Semaphore(0); @@ -88,11 +91,6 @@ public class EventLoop implements Runnab /* * These fields hold pointers * - * When going from 32 bit to 64 bit, these will have to be changed to longs, - * but not otherwise - * - * Pointer sizes change from 32 bit to 64 bit, but java data types's sizes - * dont * */ @SuppressWarnings("unused") @@ -117,8 +115,16 @@ public class EventLoop implements Runnab } } - public EventLoop() { + private EventLoop() { contextListeners = new ArrayList(); + + } + + synchronized public static EventLoop getEventLoop() { + if (instance == null) { + instance = new EventLoop(); + } + return instance; } public void setAppName(String name) { @@ -149,7 +155,6 @@ public class EventLoop implements Runnab native_shutdown(); System.out.println(this.getClass().getName() + ": shutting down"); - finished.release(); return; } @@ -158,9 +163,15 @@ public class EventLoop implements Runnab } - public void addContextListener(ContextListener l) { - synchronized (threadLock) { - contextListeners.add(l); + public void addContextListener(ContextListener contextListener) { + synchronized (contextListeners) { + contextListeners.add(contextListener); + } + } + + public void removeContextListener(ContextListener contextListener) { + synchronized (contextListeners) { + contextListeners.remove(contextListener); } } @@ -185,6 +196,7 @@ public class EventLoop implements Runnab case 3: break; case 4: + System.out.println(this.getClass().getName() + " is ready!"); fireEvent(new ContextEvent(Type.READY)); break; case 5: @@ -200,14 +212,19 @@ public class EventLoop implements Runnab } private void fireEvent(final ContextEvent e) { - + System.out.println(this.getClass().getName() + "firing event: " + + e.getType().toString()); Thread th = new Thread(new Runnable() { @Override public void run() { + System.out.println("notifying listeners"); + synchronized (contextListeners) { + System.out.println(contextListeners.size()); for (ContextListener listener : contextListeners) { listener.update(e); + System.out.println("updating listeners"); } } } @@ -215,7 +232,7 @@ public class EventLoop implements Runnab }); th.start(); - + } public void setVolume(long streamPointer, int volume) { diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Tue Aug 05 17:30:50 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Wed Aug 06 14:08:52 2008 -0400 @@ -33,7 +33,7 @@ this exception to your version of the li this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. -*/ + */ package org.classpath.icedtea.pulseaudio; @@ -218,13 +218,13 @@ public class PulseAudioMixer implements eventLoopThread.interrupt(); try { - eventLoop.finished.acquire(); + eventLoopThread.join(); } catch (InterruptedException e) { System.out.println(this.getClass().getName() + ": interrupted while waiting for eventloop to finish"); } - System.out.println(this.getClass().getName() + ": closing"); + System.out.println(this.getClass().getName() + ": closed"); this.isOpen = false; fireEvent(new LineEvent(this, LineEvent.Type.CLOSE, @@ -304,25 +304,29 @@ public class PulseAudioMixer implements host = host + ":" + String.valueOf(port); } - eventLoop = new EventLoop(); + eventLoop = EventLoop.getEventLoop(); eventLoop.setAppName(appName); eventLoop.setServer(host); final Semaphore ready = new Semaphore(0); - eventLoop.addContextListener(new ContextListener() { + ContextListener initListener = new ContextListener() { @Override public void update(ContextEvent e) { - System.out.println("Event detected " + e.getType().toString()); + System.out.println(this.getClass().getName() + + ": Event detected " + e.getType().toString()); if (e.getType() == ContextEvent.Type.READY || e.getType() == ContextEvent.Type.FAILED || e.getType() == ContextEvent.Type.TERMINATED) { ready.release(); + System.out.println("realeasing semaphore ready"); } } - }); + }; + + eventLoop.addContextListener(initListener); eventLoopThread = new Thread(eventLoop, "PulseAudio Eventloop Thread"); @@ -333,17 +337,46 @@ public class PulseAudioMixer implements System.out.println("waiting..."); ready.acquire(); if (eventLoop.getStatus() != 4) { + /* + * when exiting, wait for the thread to end otherwise we get one + * thread that inits the singletone with new data and the old + * thread then cleans up the singleton asserts fail all over the + * place + */ + eventLoop.removeContextListener(initListener); + eventLoopThread.interrupt(); + eventLoopThread.join(); throw new LineUnavailableException(); } - + eventLoop.removeContextListener(initListener); System.out.println("got signal"); } catch (InterruptedException e) { - System.out.println("got interrupted"); - } - + System.out.println("PROBLEM: got interrupted"); + } + + System.out.println(this.getClass().getName() + ": ready"); + this.isOpen = true; - fireEvent(new LineEvent(this, LineEvent.Type.OPEN, - AudioSystem.NOT_SPECIFIED)); + +// ContextListener eventListener = new ContextListener() { +// +// @Override +// public void update(ContextEvent e) { +// if (e.getType() == ContextEvent.Type.READY) { +// +// fireEvent(new LineEvent(PulseAudioMixer.this, +// LineEvent.Type.OPEN, AudioSystem.NOT_SPECIFIED)); +// } else if (e.getType() == ContextEvent.Type.FAILED +// || e.getType() == ContextEvent.Type.TERMINATED) { +// fireEvent(new LineEvent(PulseAudioMixer.this, +// LineEvent.Type.CLOSE, AudioSystem.NOT_SPECIFIED)); +// } +// +// } +// +// }; + +// eventLoop.addContextListener(eventListener); } diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine$1.class Binary file src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine$1.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.class Binary file src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 05 17:30:50 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Wed Aug 06 14:08:52 2008 -0400 @@ -45,7 +45,6 @@ import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.BooleanControl; import javax.sound.sampled.Control; -import javax.sound.sampled.FloatControl; import javax.sound.sampled.Line; import javax.sound.sampled.LineEvent; import javax.sound.sampled.LineListener; diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.class Binary file src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.class Binary file src/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.class Binary file src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/StreamEvent$Type.class Binary file src/org/classpath/icedtea/pulseaudio/StreamEvent$Type.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/StreamEvent.class Binary file src/org/classpath/icedtea/pulseaudio/StreamEvent.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/StreamListener.class Binary file src/org/classpath/icedtea/pulseaudio/StreamListener.class has changed diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org/classpath/icedtea/pulseaudio/StreamVolume.java --- a/src/org/classpath/icedtea/pulseaudio/StreamVolume.java Tue Aug 05 17:30:50 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/StreamVolume.java Wed Aug 06 14:08:52 2008 -0400 @@ -45,7 +45,7 @@ public class StreamVolume extends FloatC private FloatControl.Type type; private PulseAudioSourceDataLine stream; - + private static final int MIN_PULSE_VOLUME = 0x0; private static final int MAX_PULSE_VOLUME = 0x10000; @@ -62,8 +62,8 @@ public class StreamVolume extends FloatC } } - private native void native_set_volume(int volume, long streamPointer, long contextPointer); - + private native void native_set_volume(int volume, long streamPointer); + protected StreamVolume(PulseAudioSourceDataLine stream) { super(FloatControl.Type.VOLUME, 0f, 100f, 0.1f, 1, 100f, "percent", "mute", "medium", "max"); @@ -101,8 +101,9 @@ public class StreamVolume extends FloatC * */ int value = (int) (newValue/100f * MAX_PULSE_VOLUME); -// native_set_volume(value, stream.getStreamPointer()); - +// synchronized (eventLoop.threadLock) { + native_set_volume(value, stream.getStreamPointer()); +// } super.setValue(newValue); } diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org_classpath_icedtea_pulseaudio_EventLoop.c --- a/src/org_classpath_icedtea_pulseaudio_EventLoop.c Tue Aug 05 17:30:50 2008 -0400 +++ b/src/org_classpath_icedtea_pulseaudio_EventLoop.c Wed Aug 06 14:08:52 2008 -0400 @@ -52,6 +52,8 @@ static void context_change_callback(pa_c assert(context); assert(userdata == NULL); + printf("context state changed\n"); + //java_context_t* java_context = (java_context_t*)userdata; JNIEnv* env = java_context->env; jobject obj = java_context->obj; @@ -203,6 +205,9 @@ JNIEXPORT void JNICALL Java_org_classpat free(java_context); printf("native_shutdown() returning\n"); + + setJavaPointer(env, obj, "mainloopPointer", NULL); + setJavaPointer(env, obj, "contextPointer", NULL); } diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org_classpath_icedtea_pulseaudio_EventLoop.h --- a/src/org_classpath_icedtea_pulseaudio_EventLoop.h Tue Aug 05 17:30:50 2008 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class org_classpath_icedtea_pulseaudio_EventLoop */ - -#ifndef _Included_org_classpath_icedtea_pulseaudio_EventLoop -#define _Included_org_classpath_icedtea_pulseaudio_EventLoop -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: org_classpath_icedtea_pulseaudio_EventLoop - * Method: native_setup - * Signature: (Ljava/lang/String;Ljava/lang/String;)V - */ -JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_EventLoop_native_1setup - (JNIEnv *, jobject, jstring, jstring); - -/* - * Class: org_classpath_icedtea_pulseaudio_EventLoop - * Method: native_iterate - * Signature: (I)I - */ -JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_EventLoop_native_1iterate - (JNIEnv *, jobject, jint); - -/* - * Class: org_classpath_icedtea_pulseaudio_EventLoop - * Method: native_shutdown - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_EventLoop_native_1shutdown - (JNIEnv *, jobject); - -/* - * Class: org_classpath_icedtea_pulseaudio_EventLoop - * Method: native_set_sink_volume - * Signature: (JI)V - */ -JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_EventLoop_native_1set_1sink_1volume - (JNIEnv *, jobject, jlong, jint); - -#ifdef __cplusplus -} -#endif -#endif diff -r 0caab9aa95b1 -r 4a01f1203d48 src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.h --- a/src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.h Tue Aug 05 17:30:50 2008 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine */ - -#ifndef _Included_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine -#define _Included_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine -#ifdef __cplusplus -extern "C" { -#endif -#undef org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_DEFAULT_BUFFER_SIZE -#define org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_DEFAULT_BUFFER_SIZE 1000L -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_open - * Signature: (JLjava/lang/String;Ljava/lang/String;FIIZI)V - */ -JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1open - (JNIEnv *, jobject, jlong, jstring, jstring, jfloat, jint, jint, jboolean, jint); - -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_write - * Signature: ([BII)V - */ -JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1write - (JNIEnv *, jobject, jbyteArray, jint, jint); - -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_get_writable_size - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1get_1writable_1size - (JNIEnv *, jobject); - -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_getOperationState - * Signature: (I)I - */ -JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1getOperationState - (JNIEnv *, jobject, jint); - -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_flush - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1flush - (JNIEnv *, jobject); - -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_start - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1start - (JNIEnv *, jobject); - -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_pause - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1pause - (JNIEnv *, jobject); - -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_resume - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1resume - (JNIEnv *, jobject); - -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_drain - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1drain - (JNIEnv *, jobject); From omajid at redhat.com Fri Aug 8 08:19:51 2008 From: omajid at redhat.com (Omair Majid) Date: Fri, 08 Aug 2008 15:19:51 +0000 Subject: changeset in /hg/pulseaudio: fixed the deadlock which occurred w... Message-ID: changeset c3802b8ed541 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=c3802b8ed541 description: fixed the deadlock which occurred when adding multiple listeners during the open() call of the PulseAudioMixer diffstat: 3 files changed, 76 insertions(+), 62 deletions(-) .hgignore | 8 + src/org/classpath/icedtea/pulseaudio/EventLoop.java | 35 +--- src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 95 +++++++------ diffs (198 lines): diff -r 4a01f1203d48 -r c3802b8ed541 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Wed Aug 06 14:55:15 2008 -0400 @@ -0,0 +1,8 @@ +# use glob syntax. +syntax: glob + +*.class +*.o +*~ +org_classpath_icedtea_*.h +*.log diff -r 4a01f1203d48 -r c3802b8ed541 src/org/classpath/icedtea/pulseaudio/EventLoop.java --- a/src/org/classpath/icedtea/pulseaudio/EventLoop.java Wed Aug 06 14:08:52 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/EventLoop.java Wed Aug 06 14:55:15 2008 -0400 @@ -45,8 +45,8 @@ import org.classpath.icedtea.pulseaudio. import org.classpath.icedtea.pulseaudio.ContextEvent.Type; /* - * any methods that can obstruct the behaviour of pa_mainloop - * should run synchronized + * any methods that can obstruct the behaviour of pa_mainloop should run + * synchronized * * */ @@ -68,7 +68,7 @@ public class EventLoop implements Runnab private String serverString; private int status; - // private boolean eventLoopIsRunning = false; + // private boolean eventLoopIsRunning = false; public Semaphore finished = new Semaphore(0); @@ -214,25 +214,16 @@ public class EventLoop implements Runnab private void fireEvent(final ContextEvent e) { System.out.println(this.getClass().getName() + "firing event: " + e.getType().toString()); - Thread th = new Thread(new Runnable() { - - @Override - public void run() { - System.out.println("notifying listeners"); - - synchronized (contextListeners) { - System.out.println(contextListeners.size()); - for (ContextListener listener : contextListeners) { - listener.update(e); - System.out.println("updating listeners"); - } - } - } - - }); - - th.start(); - + System.out.println("notifying listeners"); + + synchronized (contextListeners) { + System.out.println(contextListeners.size()); + for (ContextListener listener : contextListeners) { + listener.update(e); + System.out.println("updating listeners"); + } + } + } public void setVolume(long streamPointer, int volume) { diff -r 4a01f1203d48 -r c3802b8ed541 src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Wed Aug 06 14:08:52 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Wed Aug 06 14:55:15 2008 -0400 @@ -308,12 +308,38 @@ public class PulseAudioMixer implements eventLoop.setAppName(appName); eventLoop.setServer(host); - final Semaphore ready = new Semaphore(0); - - ContextListener initListener = new ContextListener() { + + ContextListener eventListener = new ContextListener() { @Override public void update(ContextEvent e) { + System.out.println("General listener was notified"); + System.out.println(" eventType: " + e.getType()); + if (e.getType() == ContextEvent.Type.READY) { + System.out.println("firing event ready.."); + fireEvent(new LineEvent(PulseAudioMixer.this, + LineEvent.Type.OPEN, AudioSystem.NOT_SPECIFIED)); + System.out.println("done"); + } else if (e.getType() == ContextEvent.Type.FAILED + || e.getType() == ContextEvent.Type.TERMINATED) { + fireEvent(new LineEvent(PulseAudioMixer.this, + LineEvent.Type.CLOSE, AudioSystem.NOT_SPECIFIED)); + } + System.out.println("general listener returning"); + } + + }; + + eventLoop.addContextListener(eventListener); + + + final Semaphore ready = new Semaphore(0); + + ContextListener initListener = new ContextListener() { + + @Override + public void update(ContextEvent e) { + System.out.println("specific listener notifed"); System.out.println(this.getClass().getName() + ": Event detected " + e.getType().toString()); if (e.getType() == ContextEvent.Type.READY @@ -322,6 +348,7 @@ public class PulseAudioMixer implements ready.release(); System.out.println("realeasing semaphore ready"); } + System.out.println("specific listener returning"); } }; @@ -355,48 +382,36 @@ public class PulseAudioMixer implements } System.out.println(this.getClass().getName() + ": ready"); - + this.isOpen = true; -// ContextListener eventListener = new ContextListener() { -// -// @Override -// public void update(ContextEvent e) { -// if (e.getType() == ContextEvent.Type.READY) { -// -// fireEvent(new LineEvent(PulseAudioMixer.this, -// LineEvent.Type.OPEN, AudioSystem.NOT_SPECIFIED)); -// } else if (e.getType() == ContextEvent.Type.FAILED -// || e.getType() == ContextEvent.Type.TERMINATED) { -// fireEvent(new LineEvent(PulseAudioMixer.this, -// LineEvent.Type.CLOSE, AudioSystem.NOT_SPECIFIED)); -// } -// -// } -// -// }; - -// eventLoop.addContextListener(eventListener); - - } - - @Override - synchronized public void removeLineListener(LineListener listener) { + + + } + + @Override + public void removeLineListener(LineListener listener) { lineListeners.remove(listener); } - synchronized private void fireEvent(final LineEvent e) { - Thread th = new Thread(new Runnable() { - @Override - public void run() { - synchronized (lineListeners) { - for (LineListener lineListener : lineListeners) { - lineListener.update(e); - } - } - } - }); - th.start(); + /* + * Should this method be synchronized? I had a few reasons, but i forgot them + * Pros: + * - Thread safety? + * + * Cons: + * - eventListeners are run from other threads, if those then call fireEvent + * while a method is waiting on a listener, this synchronized block wont + * be entered: deadlock! + * + */ + private void fireEvent(final LineEvent e) { + System.out.println(this.getClass().getName() + "fireEvent(): firing event"); + synchronized (lineListeners) { + for (LineListener lineListener : lineListeners) { + lineListener.update(e); + } + } } public static void main(String[] args) throws Exception { From omajid at redhat.com Fri Aug 8 08:19:51 2008 From: omajid at redhat.com (Omair Majid) Date: Fri, 08 Aug 2008 15:19:51 +0000 Subject: changeset in /hg/pulseaudio: fixed the problem with listeners re... Message-ID: changeset 2331da2e5f6a in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=2331da2e5f6a description: fixed the problem with listeners remaining attached to a eventloop even after shutting down the eventloop; removed extra printing diffstat: 9 files changed, 158 insertions(+), 155 deletions(-) .hgignore | 2 src/jni-common.c | 99 ++++++---- src/org/classpath/icedtea/pulseaudio/EventLoop.java | 29 +- src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 53 +---- src/org/classpath/icedtea/pulseaudio/PulseAudioMixerInfo.java | 2 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 7 src/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java | 4 src/org_classpath_icedtea_pulseaudio_EventLoop.c | 91 ++++----- src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c | 26 +- diffs (truncated from 653 to 500 lines): diff -r c3802b8ed541 -r 2331da2e5f6a .hgignore --- a/.hgignore Wed Aug 06 14:55:15 2008 -0400 +++ b/.hgignore Wed Aug 06 16:30:43 2008 -0400 @@ -6,3 +6,5 @@ syntax: glob *~ org_classpath_icedtea_*.h *.log +bin/* +lib/* diff -r c3802b8ed541 -r 2331da2e5f6a src/jni-common.c --- a/src/jni-common.c Wed Aug 06 14:55:15 2008 -0400 +++ b/src/jni-common.c Wed Aug 06 16:30:43 2008 -0400 @@ -1,40 +1,39 @@ /* jni-common.c - Copyright (C) 2008 Red Hat, Inc. + Copyright (C) 2008 Red Hat, Inc. -This file is part of IcedTea. + This file is part of IcedTea. -IcedTea is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License as published by -the Free Software Foundation, version 2. + IcedTea is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. -IcedTea 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 for more details. + IcedTea 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 for more details. -You should have received a copy of the GNU General Public License -along with IcedTea; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. + You should have received a copy of the GNU General Public License + along with IcedTea; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. + Linking this library statically or dynamically with other modules is + making a combined work based on this library. Thus, the terms and + conditions of the GNU General Public License cover the whole + combination. -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. -*/ - + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under + terms of your choice, provided that you also meet, for each linked + independent module, the terms and conditions of the license of that + module. An independent module is a module which is not derived from + or based on this library. If you modify this library, you may extend + this exception to your version of the library, but you are not + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. + */ #include "jni-common.h" @@ -89,17 +88,53 @@ void* getJavaPointer(JNIEnv* env, jobjec void* getJavaPointer(JNIEnv* env, jobject obj, char* name) { /* + * on a 64 bit machine, the value of the long is 64 bits, which should be the pointer + * size and everything should be ok + * + * So the problem is 32 bit architectures: + * * A reference snippet * int a_int = 0x1020; long a_long = 0x102030; long long a_long_long = 0x1020304150607080; - printf("size of int: %d\nsize of long: %d\nsize of long long: %d\n", sizeof(int), sizeof(long), sizeof(long long)); + printf("size of int: %d\nsize of long: %d\nsize of long long: %d\n", + sizeof(int), sizeof(long), sizeof(long long)); printf("int to long long: %X -> %llX\n", a_int, (long long) a_int); printf("long long to int: %llX -> %X\n", a_long_long, (int)a_long_long); * this shows that long long -> int does a bitwise mask to get the lower order bits only - * FIXME what about endianness? will it get the opposite bits? + * this is a guess at how it works: + * + * raw data in register is 0x 10203040 50607080 + * 32 bits 32 bits + * + * we are interested in the 50607080 part of data + * + * Big endian: + * 10 <-- Pointer < 32bit pointer (for an int) + * 20 < + * 30 < + * 40 < + * 50 + * 60 + * 70 + * 80 + * (for big endian, will need to do masking and shifting) + * + * + * Little Endian + * 80 <-- Pointer < 32bit pointer (for an int) + * 70 < + * 60 < + * 50 < + * 40 + * 30 + * 20 + * 10 + * (so little endian works by default!) + * + * */ /* diff -r c3802b8ed541 -r 2331da2e5f6a src/org/classpath/icedtea/pulseaudio/EventLoop.java --- a/src/org/classpath/icedtea/pulseaudio/EventLoop.java Wed Aug 06 14:55:15 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/EventLoop.java Wed Aug 06 16:30:43 2008 -0400 @@ -153,8 +153,14 @@ public class EventLoop implements Runnab if (Thread.interrupted()) { native_shutdown(); - System.out.println(this.getClass().getName() - + ": shutting down"); + // System.out.println(this.getClass().getName() + // + ": shutting down"); + + // clean up the listeners + synchronized (contextListeners) { + contextListeners.clear(); + } + return; } @@ -181,8 +187,8 @@ public class EventLoop implements Runnab public void update(int status) { synchronized (threadLock) { - System.out.println(this.getClass().getName() - + ".update() called! status = " + status); + // System.out.println(this.getClass().getName() + // + ".update() called! status = " + status); this.status = status; switch (status) { case 0: @@ -196,7 +202,6 @@ public class EventLoop implements Runnab case 3: break; case 4: - System.out.println(this.getClass().getName() + " is ready!"); fireEvent(new ContextEvent(Type.READY)); break; case 5: @@ -212,26 +217,22 @@ public class EventLoop implements Runnab } private void fireEvent(final ContextEvent e) { - System.out.println(this.getClass().getName() + "firing event: " - + e.getType().toString()); - System.out.println("notifying listeners"); - - synchronized (contextListeners) { - System.out.println(contextListeners.size()); +// System.out.println(this.getClass().getName() + "firing event: " +// + e.getType().toString()); + + synchronized (contextListeners) { +// System.out.println(contextListeners.size()); for (ContextListener listener : contextListeners) { listener.update(e); - System.out.println("updating listeners"); } } } public void setVolume(long streamPointer, int volume) { - synchronized (threadLock) { native_set_sink_volume(streamPointer, volume); } - } public long getContextPointer() { diff -r c3802b8ed541 -r 2331da2e5f6a src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Wed Aug 06 14:55:15 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Wed Aug 06 16:30:43 2008 -0400 @@ -224,7 +224,7 @@ public class PulseAudioMixer implements + ": interrupted while waiting for eventloop to finish"); } - System.out.println(this.getClass().getName() + ": closed"); + // System.out.println(this.getClass().getName() + ": closed"); this.isOpen = false; fireEvent(new LineEvent(this, LineEvent.Type.CLOSE, @@ -249,7 +249,7 @@ public class PulseAudioMixer implements @Override public javax.sound.sampled.Line.Info getLineInfo() { - System.out.println("DEBUG: PulseAudioMixer.getLineInfo() called"); + // System.out.println("DEBUG: PulseAudioMixer.getLineInfo() called"); return new Line.Info(PulseAudioMixer.class); } @@ -308,47 +308,33 @@ public class PulseAudioMixer implements eventLoop.setAppName(appName); eventLoop.setServer(host); - - ContextListener eventListener = new ContextListener() { - + ContextListener generalEventListener = new ContextListener() { @Override public void update(ContextEvent e) { - System.out.println("General listener was notified"); - System.out.println(" eventType: " + e.getType()); if (e.getType() == ContextEvent.Type.READY) { - System.out.println("firing event ready.."); fireEvent(new LineEvent(PulseAudioMixer.this, LineEvent.Type.OPEN, AudioSystem.NOT_SPECIFIED)); - System.out.println("done"); } else if (e.getType() == ContextEvent.Type.FAILED || e.getType() == ContextEvent.Type.TERMINATED) { fireEvent(new LineEvent(PulseAudioMixer.this, LineEvent.Type.CLOSE, AudioSystem.NOT_SPECIFIED)); } - System.out.println("general listener returning"); - } - + } }; - eventLoop.addContextListener(eventListener); - - + eventLoop.addContextListener(generalEventListener); + final Semaphore ready = new Semaphore(0); ContextListener initListener = new ContextListener() { @Override public void update(ContextEvent e) { - System.out.println("specific listener notifed"); - System.out.println(this.getClass().getName() - + ": Event detected " + e.getType().toString()); if (e.getType() == ContextEvent.Type.READY || e.getType() == ContextEvent.Type.FAILED || e.getType() == ContextEvent.Type.TERMINATED) { ready.release(); - System.out.println("realeasing semaphore ready"); } - System.out.println("specific listener returning"); } }; @@ -361,7 +347,7 @@ public class PulseAudioMixer implements eventLoopThread.start(); try { - System.out.println("waiting..."); +// System.out.println("waiting..."); ready.acquire(); if (eventLoop.getStatus() != 4) { /* @@ -376,16 +362,14 @@ public class PulseAudioMixer implements throw new LineUnavailableException(); } eventLoop.removeContextListener(initListener); - System.out.println("got signal"); +// System.out.println("got signal"); } catch (InterruptedException e) { - System.out.println("PROBLEM: got interrupted"); - } - - System.out.println(this.getClass().getName() + ": ready"); + System.out.println("PulseAudioMixer: got interrupted while waiting for the EventLoop to initialize"); + } + +// System.out.println(this.getClass().getName() + ": ready"); this.isOpen = true; - - } @@ -395,18 +379,15 @@ public class PulseAudioMixer implements } /* - * Should this method be synchronized? I had a few reasons, but i forgot them - * Pros: - * - Thread safety? + * Should this method be synchronized? I had a few reasons, but i forgot + * them Pros: - Thread safety? * - * Cons: - * - eventListeners are run from other threads, if those then call fireEvent - * while a method is waiting on a listener, this synchronized block wont - * be entered: deadlock! + * Cons: - eventListeners are run from other threads, if those then call + * fireEvent while a method is waiting on a listener, this synchronized + * block wont be entered: deadlock! * */ private void fireEvent(final LineEvent e) { - System.out.println(this.getClass().getName() + "fireEvent(): firing event"); synchronized (lineListeners) { for (LineListener lineListener : lineListeners) { lineListener.update(e); diff -r c3802b8ed541 -r 2331da2e5f6a src/org/classpath/icedtea/pulseaudio/PulseAudioMixerInfo.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioMixerInfo.java Wed Aug 06 14:55:15 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioMixerInfo.java Wed Aug 06 16:30:43 2008 -0400 @@ -53,7 +53,7 @@ public class PulseAudioMixerInfo extends // the "getInstance()" method synchronized public static PulseAudioMixerInfo getInfo() { if (_instance == null) { - _instance = new PulseAudioMixerInfo("PulseAudio Mixer", "openjdk", + _instance = new PulseAudioMixerInfo("PulseAudio Mixer", "icedtea", "the ear-candy mixer", "0.01"); } diff -r c3802b8ed541 -r 2331da2e5f6a src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Wed Aug 06 14:55:15 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Wed Aug 06 16:30:43 2008 -0400 @@ -205,15 +205,12 @@ public class PulseAudioSourceDataLine im this.addStreamListener(new StreamListener() { @Override public void update(StreamEvent e) { - System.out.println(this.getClass().getName() - + " waiting to stream to become ready"); if (e.getType() == StreamEvent.Type.READY) { semaphore.release(); } } }); - System.out.println("about to open stream"); native_start(); } @@ -223,7 +220,7 @@ public class PulseAudioSourceDataLine im // throw new LineUnavailableException("unable to prepare // stream"); } - System.out.println(this.getClass().getName() + "stream is ready"); + } /* @@ -369,8 +366,6 @@ public class PulseAudioSourceDataLine im public void update(int status) { synchronized (eventLoop.threadLock) { - System.out.println(this.getClass().getCanonicalName() - + ".update() called! status = " + status); switch (status) { case 0: fireEvent(new StreamEvent(StreamEvent.Type.UNCONNECTED)); diff -r c3802b8ed541 -r 2331da2e5f6a src/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java Wed Aug 06 14:55:15 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java Wed Aug 06 16:30:43 2008 -0400 @@ -90,10 +90,6 @@ public class PulseAudioTargetDataLine im private native void openStream(String encoding, float rate, int size, int channels, boolean bigEndian, int bufferSize); - static { - System.loadLibrary("PulseAudioSourceDataLine"); - } - @Override public int read(byte[] b, int off, int len) { readFromStream(b, off, len); diff -r c3802b8ed541 -r 2331da2e5f6a src/org_classpath_icedtea_pulseaudio_EventLoop.c --- a/src/org_classpath_icedtea_pulseaudio_EventLoop.c Wed Aug 06 14:55:15 2008 -0400 +++ b/src/org_classpath_icedtea_pulseaudio_EventLoop.c Wed Aug 06 16:30:43 2008 -0400 @@ -1,40 +1,39 @@ /* org_classpath_icedtea_pulseaudio_EventLoop.c - Copyright (C) 2008 Red Hat, Inc. - -This file is part of IcedTea. - -IcedTea is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License as published by -the Free Software Foundation, version 2. - -IcedTea 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 for more details. - -You should have received a copy of the GNU General Public License -along with IcedTea; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. -*/ - + Copyright (C) 2008 Red Hat, Inc. + + This file is part of IcedTea. + + IcedTea is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + IcedTea 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 for more details. + + You should have received a copy of the GNU General Public License + along with IcedTea; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. + + Linking this library statically or dynamically with other modules is + making a combined work based on this library. Thus, the terms and + conditions of the GNU General Public License cover the whole + combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under + terms of your choice, provided that you also meet, for each linked + independent module, the terms and conditions of the license of that + module. An independent module is a module which is not derived from + or based on this library. If you modify this library, you may extend + this exception to your version of the library, but you are not + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. + */ #include @@ -52,13 +51,11 @@ static void context_change_callback(pa_c assert(context); assert(userdata == NULL); - printf("context state changed\n"); - //java_context_t* java_context = (java_context_t*)userdata; JNIEnv* env = java_context->env; jobject obj = java_context->obj; - printf("context state changed to %d\n", pa_context_get_state(context)); + // printf("context state changed to %d\n", pa_context_get_state(context)); /* Call the 'update' method in java * to handle all java-side events @@ -89,7 +86,7 @@ JNIEXPORT void JNICALL Java_org_classpat assert(appName != NULL); - printf("native_setup() called\n"); + // printf("native_setup() called\n"); From omajid at redhat.com Fri Aug 8 08:19:52 2008 From: omajid at redhat.com (Omair Majid) Date: Fri, 08 Aug 2008 15:19:52 +0000 Subject: changeset in /hg/pulseaudio: Added support for querying the audi... Message-ID: changeset 2785b9eba70d in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=2785b9eba70d description: Added support for querying the audio formats available to pulseaudio and obtaining a line based on those formats also added test cases diffstat: 5 files changed, 323 insertions(+), 106 deletions(-) src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 39 - src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 270 ++++++++-- src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c | 45 + unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java | 3 unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java | 72 +- diffs (truncated from 719 to 500 lines): diff -r 2331da2e5f6a -r 2785b9eba70d src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Wed Aug 06 16:30:43 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Fri Aug 08 11:11:03 2008 -0400 @@ -48,6 +48,7 @@ import javax.sound.sampled.AudioInputStr import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Control; +import javax.sound.sampled.DataLine; import javax.sound.sampled.Line; import javax.sound.sampled.LineEvent; import javax.sound.sampled.LineListener; @@ -71,8 +72,6 @@ public class PulseAudioMixer implements private List sourceLines = new ArrayList(); // private List targetLines = null; - private Line.Info sourceDataLineInfo = new Line.Info( - PulseAudioSourceDataLine.class); // private Line.Info targetDataLineInfo = new // Line.Info(PulseAudioTargetDataLine.class); @@ -99,11 +98,14 @@ public class PulseAudioMixer implements throw new LineUnavailableException(); } - if (info.matches(sourceDataLineInfo)) { - PulseAudioSourceDataLine sourceLine = null; - sourceLine = new PulseAudioSourceDataLine(eventLoop); - sourceLines.add(sourceLine); - return sourceLine; + PulseAudioSourceDataLine sourceLine = null; + sourceLine = new PulseAudioSourceDataLine(eventLoop); + Line.Info sourceDataLineInfo = sourceLine.getLineInfo(); + if (info instanceof DataLine.Info) { + if (info.matches(sourceDataLineInfo)) { + sourceLines.add(sourceLine); + return sourceLine; + } } // if (info.matches(_targetDataLineInfo)) { @@ -127,8 +129,14 @@ public class PulseAudioMixer implements @Override public javax.sound.sampled.Line.Info[] getSourceLineInfo() { - Line.Info[] info = { new Line.Info(PulseAudioSourceDataLine.class), }; - return info; + if (isOpen) { + SourceDataLine sourceLine = new PulseAudioSourceDataLine(eventLoop); + Line.Info[] info = new Line.Info[] { sourceLine.getLineInfo() }; + return info; + } + + // if not open, then return empty array + return new Line.Info[] {}; } @Override @@ -347,7 +355,7 @@ public class PulseAudioMixer implements eventLoopThread.start(); try { -// System.out.println("waiting..."); + // System.out.println("waiting..."); ready.acquire(); if (eventLoop.getStatus() != 4) { /* @@ -362,12 +370,13 @@ public class PulseAudioMixer implements throw new LineUnavailableException(); } eventLoop.removeContextListener(initListener); -// System.out.println("got signal"); + // System.out.println("got signal"); } catch (InterruptedException e) { - System.out.println("PulseAudioMixer: got interrupted while waiting for the EventLoop to initialize"); - } - -// System.out.println(this.getClass().getName() + ": ready"); + System.out + .println("PulseAudioMixer: got interrupted while waiting for the EventLoop to initialize"); + } + + // System.out.println(this.getClass().getName() + ": ready"); this.isOpen = true; diff -r 2331da2e5f6a -r 2785b9eba70d src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Wed Aug 06 16:30:43 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Fri Aug 08 11:11:03 2008 -0400 @@ -39,22 +39,29 @@ package org.classpath.icedtea.pulseaudio import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.concurrent.Semaphore; import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.AudioSystem; import javax.sound.sampled.BooleanControl; import javax.sound.sampled.Control; -import javax.sound.sampled.Line; +import javax.sound.sampled.DataLine; import javax.sound.sampled.LineEvent; import javax.sound.sampled.LineListener; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.SourceDataLine; +import javax.sound.sampled.AudioFormat.Encoding; import javax.sound.sampled.Control.Type; public class PulseAudioSourceDataLine implements SourceDataLine { private static final int DEFAULT_BUFFER_SIZE = 1000; + private static final String PULSEAUDIO_FORMAT_KEY = "PulseAudioFormatKey"; + private String streamName = "Java Stream"; private List streamListeners = new ArrayList(); @@ -63,7 +70,8 @@ public class PulseAudioSourceDataLine im private boolean isOpen = false; private boolean isPaused = false; - private AudioFormat format = null; + private List supportedFormats = null; + private AudioFormat currentFormat = null; private Control[] controls; private Mute muteControl; @@ -79,9 +87,8 @@ public class PulseAudioSourceDataLine im @SuppressWarnings("unused") private long streamPointer; - private native void native_open(long contextPointer, String name, - String encoding, float rate, int size, int channels, - boolean bigEndian, int bufferSize); + private native void native_open(long contextPointer, String streamName, + String encoding, int sampleRate, int channels, int bufferSize); private native void native_write(byte[] data, int offset, int length); @@ -113,6 +120,9 @@ public class PulseAudioSourceDataLine im assert ("Loading failed".endsWith("library")); } } + + + public PulseAudioSourceDataLine(EventLoop eventLoop) { this.eventLoop = eventLoop; @@ -121,6 +131,189 @@ public class PulseAudioSourceDataLine im volumeControl = new StreamVolume(this); muteControl = new Mute(); controls = new Control[] { volumeControl, muteControl }; + + /* + * FIXME puselaudio supports any sample rate (it can covert between + * sample rates without a problem). it calculates the frame size and the + * frame rate based on that. + * + * Java's AudioSystem interface accepts NOT_SPECIFIED only for sample + * rate and frame rate. eg: cant say that it supports any number of + * audio channels + * + * sample size in bytes [PA_SAMPLE_U8] = 1, [PA_SAMPLE_ULAW] = 1, + * [PA_SAMPLE_ALAW] = 1, [PA_SAMPLE_S16LE] = 2, [PA_SAMPLE_S16BE] = 2, + * [PA_SAMPLE_FLOAT32LE] = 4, [PA_SAMPLE_FLOAT32BE] = 4, + * [PA_SAMPLE_S32LE] = 4, [PA_SAMPLE_S32BE] = 4, + * + * + */ + + supportedFormats = new LinkedList(); + + Map properties; + + int[] channelSizes = new int[] { 1, 2, 5 }; + for (int channelSize : channelSizes) { + properties = new HashMap(); + properties.put(PULSEAUDIO_FORMAT_KEY, "PA_SAMPLE_U8"); + + // frameSize = sample size (in bytes, not bits) x # of channels + // ^ that's from PulseAudio sources, so it will pretty much break + // as soon as they change something + // FIXME ^ + int sampleSize = 8; // in bits + AudioFormat PA_SAMPLE_U8 = new AudioFormat( + Encoding.PCM_UNSIGNED, // encoding + AudioSystem.NOT_SPECIFIED, // sample rate + sampleSize, // sample size + channelSize, // channels + sampleSize / 8 * channelSize, // frame size in bytes + AudioSystem.NOT_SPECIFIED, // frame rate + false, // big endian? + properties); + + supportedFormats.add(PA_SAMPLE_U8); + } + + for (int channelSize : channelSizes) { + properties = new HashMap(); + properties.put(PULSEAUDIO_FORMAT_KEY, "PA_SAMPLE_ALAW"); + + // frameSize = sample size (in bytes, not bits) x # of channels + // ^ that's from PulseAudio sources, so it will pretty much break + // as soon as they change something + // FIXME ^ + + int sampleSize = 8; + final AudioFormat PA_SAMPLE_ALAW = new AudioFormat(Encoding.ALAW, // encoding + AudioSystem.NOT_SPECIFIED, // sample rate + sampleSize, // sample size + channelSize, // channels + sampleSize / 8 * channelSize, // frame size + AudioSystem.NOT_SPECIFIED, // frame rate + false, // big endian? + properties); + + supportedFormats.add(PA_SAMPLE_ALAW); + } + + for (int channelSize : channelSizes) { + properties = new HashMap(); + properties.put(PULSEAUDIO_FORMAT_KEY, "PA_SAMPLE_ULAW"); + + // frameSize = sample size (in bytes, not bits) x # of channels + // ^ that's from PulseAudio sources, so it will pretty much break + // as soon as they change something + // FIXME ^ + + int sampleSize = 8; + final AudioFormat PA_SAMPLE_ULAW = new AudioFormat(Encoding.ULAW, // encoding + AudioSystem.NOT_SPECIFIED, // sample rate + sampleSize, // sample size + channelSize, // channels + sampleSize / 8 * channelSize, // frame size + AudioSystem.NOT_SPECIFIED, // frame rate + false, // big endian? + properties); + + supportedFormats.add(PA_SAMPLE_ULAW); + } + + for (int channelSize : channelSizes) { + properties = new HashMap(); + properties.put(PULSEAUDIO_FORMAT_KEY, "PA_SAMPLE_S16BE"); + + // frameSize = sample size (in bytes, not bits) x # of channels + // ^ that's from PulseAudio sources, so it will pretty much break + // as soon as they change something + // FIXME ^ + + int sampleSize = 16; + final AudioFormat PA_SAMPLE_S16BE = new AudioFormat( + Encoding.PCM_SIGNED, // encoding + AudioSystem.NOT_SPECIFIED, // sample rate + sampleSize, // sample size + channelSize, // channels + sampleSize / 8 * channelSize, // frame size + AudioSystem.NOT_SPECIFIED, // frame rate + true, // big endian? + properties); + + supportedFormats.add(PA_SAMPLE_S16BE); + } + + for (int channelSize : channelSizes) { + properties = new HashMap(); + properties.put(PULSEAUDIO_FORMAT_KEY, "PA_SAMPLE_S16LE"); + + // frameSize = sample size (in bytes, not bits) x # of channels + // ^ that's from PulseAudio sources, so it will pretty much break + // as soon as they change something + // FIXME ^ + + int sampleSize = 16; + final AudioFormat A_SAMPLE_S16LE = new AudioFormat( + Encoding.PCM_SIGNED, // encoding + AudioSystem.NOT_SPECIFIED, // sample rate + sampleSize, // sample size + channelSize, // channels + sampleSize / 8 * channelSize, // frame size + AudioSystem.NOT_SPECIFIED, // frame rate + false, // big endian? + properties); + + supportedFormats.add(A_SAMPLE_S16LE); + } + + for (int channelSize : channelSizes) { + properties = new HashMap(); + properties.put(PULSEAUDIO_FORMAT_KEY, "PA_SAMPLE_S32BE"); + + // frameSize = sample size (in bytes, not bits) x # of channels + // ^ that's from PulseAudio sources, so it will pretty much break + // as soon as they change something + // FIXME ^ + + int sampleSize = 32; + final AudioFormat PA_SAMPLE_S32BE = new AudioFormat( + Encoding.PCM_SIGNED, // encoding + AudioSystem.NOT_SPECIFIED, // sample rate + sampleSize, // sample size + channelSize, // channels + sampleSize / 8 * channelSize, // frame size + AudioSystem.NOT_SPECIFIED, // frame rate + true, // big endian? + properties); + + supportedFormats.add(PA_SAMPLE_S32BE); + } + + for (int channelSize : channelSizes) { + properties = new HashMap(); + properties.put(PULSEAUDIO_FORMAT_KEY, "PA_SAMPLE_S32LE"); + + // frameSize = sample size (in bytes, not bits) x # of channels + // ^ that's from PulseAudio sources, so it will pretty much break + // as soon as they change something + // FIXME ^ + + int sampleSize = 32; + final AudioFormat PA_SAMPLE_S32LE = new AudioFormat( + Encoding.PCM_SIGNED, // encoding + AudioSystem.NOT_SPECIFIED, // sample rate + sampleSize, // sample size + channelSize, // channels + sampleSize / 8 * channelSize, // frame size + AudioSystem.NOT_SPECIFIED, // frame rate + false, // big endian? + properties); + + supportedFormats.add(PA_SAMPLE_S32LE); + } + + currentFormat = null; + } public void open(AudioFormat format, int bufferSize) @@ -128,19 +321,23 @@ public class PulseAudioSourceDataLine im if (isOpen) { throw new IllegalStateException("Line is already open"); } - - isOpen = true; - - int channels = format.getChannels(); - float rate = format.getSampleRate(); - int sampleSize = format.getSampleSizeInBits(); - String encoding = format.getEncoding().toString(); - boolean bigEndian = format.isBigEndian(); - - synchronized (eventLoop.threadLock) { - native_open(eventLoop.getContextPointer(), streamName, encoding, - rate, sampleSize, channels, bigEndian, bufferSize); - } + + // ignore suggested buffer size + + for (AudioFormat myFormat : supportedFormats) { + if (format.matches(myFormat)) { + native_open(eventLoop.getContextPointer(), streamName, + (String) myFormat.getProperty(PULSEAUDIO_FORMAT_KEY), + (int) format.getSampleRate(), format.getChannels(), + bufferSize); + currentFormat = format; + isOpen = true; + return; + } + } + + throw new IllegalArgumentException("invalid format"); + } public void open(AudioFormat format) throws LineUnavailableException { @@ -149,7 +346,9 @@ public class PulseAudioSourceDataLine im } public void open() throws LineUnavailableException { - format = new AudioFormat(44100, 16, 2, true, false); + // pick a random format + AudioFormat format = new AudioFormat(Encoding.PCM_UNSIGNED, 22050, 8, + 2, 2, AudioSystem.NOT_SPECIFIED, false); open(format, DEFAULT_BUFFER_SIZE); } @@ -260,6 +459,8 @@ public class PulseAudioSourceDataLine im }; public void close() { + assert (isOpen); + synchronized (eventLoop.threadLock) { native_close(); } @@ -271,35 +472,35 @@ public class PulseAudioSourceDataLine im } public int getBufferSize() { + // FIXME! + return 10000; + } + + public AudioFormat getFormat() { + return currentFormat; + } + + public int getFramePosition() { // TODO Auto-generated method stub return 0; } - public AudioFormat getFormat() { - // TODO Auto-generated method stub - return null; - } - - public int getFramePosition() { + public float getLevel() { // TODO Auto-generated method stub return 0; } - public float getLevel() { + public long getLongFramePosition() { // TODO Auto-generated method stub return 0; } - public long getLongFramePosition() { + public long getMicrosecondPosition() { // TODO Auto-generated method stub return 0; } - public long getMicrosecondPosition() { - // TODO Auto-generated method stub - return 0; - } - + public boolean isActive() { // TODO Auto-generated method stub return false; @@ -312,7 +513,7 @@ public class PulseAudioSourceDataLine im public Control getControl(Type control) { for (int i = 0; i < controls.length; i++) { - if (controls[i].getType() == control){ + if (controls[i].getType() == control) { return controls[i]; } } @@ -324,7 +525,8 @@ public class PulseAudioSourceDataLine im } public javax.sound.sampled.Line.Info getLineInfo() { - return new Line.Info(SourceDataLine.class); + return new DataLine.Info(SourceDataLine.class, + supportedFormats.toArray(new AudioFormat[0]), 0, 100000); } public boolean isControlSupported(Type control) { diff -r 2331da2e5f6a -r 2785b9eba70d src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c --- a/src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Wed Aug 06 16:30:43 2008 -0400 +++ b/src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Fri Aug 08 11:11:03 2008 -0400 @@ -98,14 +98,13 @@ static void stream_state_change_callback return; } - /* * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine * Method: native_open - * Signature: (JLjava/lang/String;Ljava/lang/String;FIIZI)V + * Signature: (JLjava/lang/String;Ljava/lang/String;III)V */ JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1open -(JNIEnv* env, jobject obj, jlong contextPointer, jstring name, jstring encodingString, jfloat rate, jint size, jint channels, jboolean bigEndian, jint bufferSize) { +(JNIEnv* env, jobject obj, jlong contextPointer, jstring name, jstring encodingString, jint sampleRate, jint channels, jint bufferSize) { //TODO: Need to deal with the buffer size. Currently ignored @@ -121,32 +120,43 @@ JNIEXPORT void JNICALL Java_org_classpat const char *encoding = (*env)->GetStringUTFChars(env, encodingString, NULL); - if( (strcmp(encoding, "PCM_UNSIGNED") == 0) && (size == 8)) { + if (strcmp(encoding, "PA_SAMPLE_U8") == 0) { sample_spec.format = PA_SAMPLE_U8; - } else if( (strcmp(encoding, "ALAW") == 0) && (size == 8)) { + } else if (strcmp(encoding, "PA_SAMPLE_ALAW") == 0) { sample_spec.format = PA_SAMPLE_ALAW; - } else if( (strcmp(encoding, "ULAW") == 0) && (size == 8)) { + } else if (strcmp(encoding, "PA_SAMPLE_ULAW;") == 0) { sample_spec.format = PA_SAMPLE_ULAW; - } else if ( (strcmp(encoding, "PCM_SIGNED") == 0) && (size == 16) && (bigEndian == 1)) { From gbenson at redhat.com Fri Aug 8 09:09:33 2008 From: gbenson at redhat.com (Gary Benson) Date: Fri, 08 Aug 2008 16:09:33 +0000 Subject: changeset in /hg/icedtea6: 2008-08-08 Gary Benson changeset fa9a766ac398 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=fa9a766ac398 description: 2008-08-08 Gary Benson * configure.ac (LLVM_CFLAGS): Fix for PRODUCT builds. diffstat: 2 files changed, 7 insertions(+), 2 deletions(-) ChangeLog | 4 ++++ configure.ac | 5 +++-- diffs (27 lines): diff -r caf1f4959def -r fa9a766ac398 ChangeLog --- a/ChangeLog Wed Aug 06 19:13:38 2008 -0400 +++ b/ChangeLog Fri Aug 08 12:09:27 2008 -0400 @@ -1,3 +1,7 @@ 2008-08-06 Christian Thalinger + + * configure.ac (LLVM_CFLAGS): Fix for PRODUCT builds. + 2008-08-06 Christian Thalinger * patches/icedtea-cacao.patch: Moved architecture stuff into... diff -r caf1f4959def -r fa9a766ac398 configure.ac --- a/configure.ac Wed Aug 06 19:13:38 2008 -0400 +++ b/configure.ac Fri Aug 08 12:09:27 2008 -0400 @@ -413,9 +413,10 @@ AC_SUBST(LIBFFI_LIBS) if test "x${SHARK_BUILD_TRUE}" = x; then FIND_TOOL([LLVM_CONFIG], [llvm-config]) - llvm_components="engine bitwriter" + llvm_components=engine LLVM_CFLAGS=`$LLVM_CONFIG --cflags $llvm_components | \ - sed -e 's/-O.//g' | sed -e 's/-fomit-frame-pointer//g'` + sed -e 's/-O.//g' | sed -e 's/-fomit-frame-pointer//g' | \ + sed -e 's/-D_DEBUG//g'` LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags $llvm_components` LLVM_LIBS=`$LLVM_CONFIG --libs $llvm_components` fi From gbenson at redhat.com Fri Aug 8 09:13:50 2008 From: gbenson at redhat.com (Gary Benson) Date: Fri, 08 Aug 2008 16:13:50 +0000 Subject: changeset in /hg/icedtea6: 2008-08-08 Gary Benson changeset d7f54e3a7a80 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d7f54e3a7a80 description: 2008-08-08 Gary Benson * patches/icedtea-signed-types.patch: Signedness fix. diffstat: 2 files changed, 16 insertions(+) ChangeLog | 4 ++++ patches/icedtea-signed-types.patch | 12 ++++++++++++ diffs (30 lines): diff -r fa9a766ac398 -r d7f54e3a7a80 ChangeLog --- a/ChangeLog Fri Aug 08 12:09:27 2008 -0400 +++ b/ChangeLog Fri Aug 08 12:11:15 2008 -0400 @@ -1,3 +1,7 @@ 2008-08-08 Gary Benson + + * patches/icedtea-signed-types.patch: Signedness fix. + 2008-08-08 Gary Benson * configure.ac (LLVM_CFLAGS): Fix for PRODUCT builds. diff -r fa9a766ac398 -r d7f54e3a7a80 patches/icedtea-signed-types.patch --- a/patches/icedtea-signed-types.patch Fri Aug 08 12:09:27 2008 -0400 +++ b/patches/icedtea-signed-types.patch Fri Aug 08 12:11:15 2008 -0400 @@ -22,3 +22,15 @@ diff -r 9523b5ae0184 openjdk/hotspot/src #ifdef _WINDOWS struct hostent* host = hpi::get_host_by_name((char*)ip); #else +diff -r ca98ea212429 openjdk/hotspot/src/share/vm/ci/ciTypeFlow.cpp +--- openjdk/hotspot/src/share/vm/ci/ciTypeFlow.cpp Fri Aug 08 16:06:52 2008 +0100 ++++ openjdk/hotspot/src/share/vm/ci/ciTypeFlow.cpp Fri Aug 08 16:15:45 2008 +0100 +@@ -388,7 +388,7 @@ const ciTypeFlow::StateVector* ciTypeFlo + // Set the rest of the locals to bottom. + Cell cell = state->next_cell(state->tos()); + state->set_stack_size(0); +- int limit = state->limit_cell(); ++ Cell limit = state->limit_cell(); + for (; cell < limit; cell = state->next_cell(cell)) { + state->set_type_at(cell, state->bottom_type()); + } From gbenson at redhat.com Fri Aug 8 09:13:52 2008 From: gbenson at redhat.com (Gary Benson) Date: Fri, 08 Aug 2008 16:13:52 +0000 Subject: changeset in /hg/icedtea6: 2008-08-08 Gary Benson changeset a348ff2a45d1 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a348ff2a45d1 description: 2008-08-08 Gary Benson * patches/icedtea-zero.patch: Include the calling thread's stack in crash dumps. diffstat: 2 files changed, 20 insertions(+) ChangeLog | 5 +++++ patches/icedtea-zero.patch | 15 +++++++++++++++ diffs (34 lines): diff -r d7f54e3a7a80 -r a348ff2a45d1 ChangeLog --- a/ChangeLog Fri Aug 08 12:11:15 2008 -0400 +++ b/ChangeLog Fri Aug 08 12:13:41 2008 -0400 @@ -1,3 +1,8 @@ 2008-08-08 Gary Benson + + * patches/icedtea-zero.patch: Include the calling thread's + stack in crash dumps. + 2008-08-08 Gary Benson * patches/icedtea-signed-types.patch: Signedness fix. diff -r d7f54e3a7a80 -r a348ff2a45d1 patches/icedtea-zero.patch --- a/patches/icedtea-zero.patch Fri Aug 08 12:11:15 2008 -0400 +++ b/patches/icedtea-zero.patch Fri Aug 08 12:13:41 2008 -0400 @@ -196,3 +196,18 @@ } STEP(140, "(printing VM operation)" ) +@@ -472,6 +484,14 @@ void VMError::report(outputStream* st) { + op->print_on_error(st); + st->cr(); + st->cr(); ++#ifdef ZERO ++ if (op->calling_thread()->is_Java_thread()) { ++ st->print_cr("Calling thread's Java stack:"); ++ ZeroStackPrinter(st, buf, sizeof(buf)).print( ++ (JavaThread *) op->calling_thread()); ++ st->cr(); ++ } ++#endif // ZERO + } + } + From gbenson at redhat.com Fri Aug 8 09:17:09 2008 From: gbenson at redhat.com (Gary Benson) Date: Fri, 08 Aug 2008 16:17:09 +0000 Subject: changeset in /hg/icedtea6: 2008-08-08 Gary Benson changeset df71bbb2f1ad in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=df71bbb2f1ad description: 2008-08-08 Gary Benson * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp (current_frame): Remove some rubbish. * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp (set_last_Java_frame): Likewise. diffstat: 3 files changed, 8 insertions(+), 3 deletions(-) ChangeLog | 7 +++++++ ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 3 +-- ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp | 1 - diffs (38 lines): diff -r a348ff2a45d1 -r df71bbb2f1ad ChangeLog --- a/ChangeLog Fri Aug 08 12:13:41 2008 -0400 +++ b/ChangeLog Fri Aug 08 12:17:05 2008 -0400 @@ -1,3 +1,10 @@ 2008-08-08 Gary Benson + + * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp + (current_frame): Remove some rubbish. + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (set_last_Java_frame): Likewise. + 2008-08-08 Gary Benson * patches/icedtea-zero.patch: Include the calling thread's diff -r a348ff2a45d1 -r df71bbb2f1ad ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Fri Aug 08 12:13:41 2008 -0400 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Fri Aug 08 12:17:05 2008 -0400 @@ -39,8 +39,7 @@ frame os::get_sender_for_C_frame(frame* frame os::current_frame() { - frame myframe((intptr_t*) os::current_stack_pointer()); - return os::get_sender_for_C_frame(&myframe); + Unimplemented(); } char* os::non_memory_address_word() diff -r a348ff2a45d1 -r df71bbb2f1ad ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Fri Aug 08 12:13:41 2008 -0400 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Fri Aug 08 12:17:05 2008 -0400 @@ -79,7 +79,6 @@ void set_last_Java_frame() { JavaFrameAnchor *jfa = frame_anchor(); - jfa->set_last_Java_pc(NULL); jfa->set_last_Java_sp((intptr_t *) top_zero_frame()); } void reset_last_Java_frame() From jsumali at redhat.com Fri Aug 8 09:26:31 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Fri, 08 Aug 2008 16:26:31 +0000 Subject: changeset in /hg/icedtea6: 2008-08-08 Joshua Sumali changeset a86e963e785f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a86e963e785f description: 2008-08-08 Joshua Sumali * Makefile.am: Add ALT_JAR_CMD to ICEDTEA_ENV if --with-alt-jar is used. Added patches/icedtea-alt-jar.patch. * acinclude.m4: Define --with-alt-jar. * configure.ac: Add --with-alt-jar. * patches/icedtea-alt-jar.patch: New file. * HACKING: Updated. diffstat: 6 files changed, 49 insertions(+) ChangeLog | 9 +++++++++ HACKING | 1 + Makefile.am | 6 ++++++ acinclude.m4 | 17 +++++++++++++++++ configure.ac | 1 + patches/icedtea-alt-jar.patch | 15 +++++++++++++++ diffs (107 lines): diff -r df71bbb2f1ad -r a86e963e785f ChangeLog --- a/ChangeLog Fri Aug 08 12:17:05 2008 -0400 +++ b/ChangeLog Fri Aug 08 12:26:14 2008 -0400 @@ -1,3 +1,12 @@ 2008-08-08 Gary Benson + + * Makefile.am: Add ALT_JAR_CMD to ICEDTEA_ENV if --with-alt-jar is used. + Added patches/icedtea-alt-jar.patch. + * acinclude.m4: Define --with-alt-jar. + * configure.ac: Add --with-alt-jar. + * patches/icedtea-alt-jar.patch: New file. + * HACKING: Updated. + 2008-08-08 Gary Benson * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp diff -r df71bbb2f1ad -r a86e963e785f HACKING --- a/HACKING Fri Aug 08 12:17:05 2008 -0400 +++ b/HACKING Fri Aug 08 12:26:14 2008 -0400 @@ -64,6 +64,7 @@ The following patches are currently appl * icedtea-hotspot-citypeflow.patch: Fix hotspot miscompilation with GCC 4.3 on x86. * icedtea-alpha-fixes.patch: Fix build issues on alpha-linux. * icedtea-arch.patch: Add support for additional architectures. +* icedtea-alt-jar.patch: Add support for using an alternate jar tool in JDK building. The following patches are only applied to OpenJDK6 in IcedTea6: diff -r df71bbb2f1ad -r a86e963e785f Makefile.am --- a/Makefile.am Fri Aug 08 12:17:05 2008 -0400 +++ b/Makefile.am Fri Aug 08 12:26:14 2008 -0400 @@ -168,6 +168,11 @@ if !ENABLE_DOCS if !ENABLE_DOCS ICEDTEA_ENV += \ "NO_DOCS=true" +endif + +if USE_ALT_JAR +ICEDTEA_ENV += \ + "ALT_JAR_CMD=$(ALT_JAR_CMD)" endif env: @@ -494,6 +499,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-hotspot-gcc-pr36917.patch \ patches/icedtea-hotspot-citypeflow.patch \ patches/icedtea-alpha-fixes.patch \ + patches/icedtea-alt-jar.patch \ $(SHARK_PATCH) \ $(GCC_PATCH) \ patches/icedtea-arch.patch diff -r df71bbb2f1ad -r a86e963e785f acinclude.m4 --- a/acinclude.m4 Fri Aug 08 12:17:05 2008 -0400 +++ b/acinclude.m4 Fri Aug 08 12:26:14 2008 -0400 @@ -488,6 +488,23 @@ AC_DEFUN([WITH_NETBEANS_PROFILER_SRC_ZIP AC_SUBST(ALT_NETBEANS_PROFILER_SRC_ZIP) ]) +AC_DEFUN([WITH_ALT_JAR_BINARY], +[ + AC_MSG_CHECKING(alternate jar command) + AC_ARG_WITH([alt-jar], + [AS_HELP_STRING(--with-alt-jar, specify the location of an alternate jar binary to use for building)], + [ + ALT_JAR_CMD=${withval} + AM_CONDITIONAL(USE_ALT_JAR, test x = x) + ], + [ + ALT_JAR_CMD="not specified" + AM_CONDITIONAL(USE_ALT_JAR, test x != x) + ]) + AC_MSG_RESULT(${ALT_JAR_CMD}) + AC_SUBST(ALT_JAR_CMD) +]) + AC_DEFUN([FIND_XALAN2_JAR], [ AC_ARG_WITH([xalan2-jar], diff -r df71bbb2f1ad -r a86e963e785f configure.ac --- a/configure.ac Fri Aug 08 12:17:05 2008 -0400 +++ b/configure.ac Fri Aug 08 12:26:14 2008 -0400 @@ -220,6 +220,7 @@ WITH_VISUALVM_SRC_ZIP WITH_VISUALVM_SRC_ZIP WITH_NETBEANS_PLATFORM_SRC_ZIP WITH_NETBEANS_PROFILER_SRC_ZIP +WITH_ALT_JAR_BINARY AC_CHECK_WITH_CACAO AC_CHECK_WITH_CACAO_HOME AC_CHECK_WITH_CACAO_SRC_ZIP diff -r df71bbb2f1ad -r a86e963e785f patches/icedtea-alt-jar.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-alt-jar.patch Fri Aug 08 12:26:14 2008 -0400 @@ -0,0 +1,15 @@ +--- openjdk.orig/jdk/make/common/shared/Defs-java.gmk 2008-05-30 03:50:36.000000000 -0400 ++++ openjdk/jdk/make/common/shared/Defs-java.gmk 2008-08-06 11:18:26.000000000 -0400 +@@ -187,7 +181,11 @@ + + BOOT_JAVA_CMD = $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS) + BOOT_JAVAC_CMD = $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS) +-BOOT_JAR_CMD = $(BOOTDIR)/bin/jar ++ifdef ALT_JAR_CMD ++ BOOT_JAR_CMD = $(ALT_JAR_CMD) ++else ++ BOOT_JAR_CMD = $(BOOTDIR)/bin/jar ++endif + BOOT_JARSIGNER_CMD = $(BOOTDIR)/bin/jarsigner + + # Various tools we need to run (FIXUP: Are these the right ones?) From jsumali at redhat.com Fri Aug 8 09:35:08 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Fri, 08 Aug 2008 12:35:08 -0400 Subject: --with-alt-jar support Message-ID: <489C75BC.6040009@redhat.com> Hi, When building the JDK, a bit of time is spent building rt.jar, and I think this may be really evident on the non x86/x86_64 archs. So ... I've recently added a new option to ./configure: --with-alt-jar=. This uses the specified jar command instead of using the bootstrap jar via the jvm. I've tested this out with fastjar (a modified, more openjdk-compatible fastjar -- I still have to post the patch...) and here are the results: x86_64 regular build: 15m 53s x86_64 --with-alt-jar=/usr/loca/bin/fastjar: 12m 51s x86 regular build: 47m 58s x86 --with-alt-jar=/usr/loca/bin/fastjar: 41m 21s I'm kinda curious to see how much faster builds go on the other platforms :) Cheers, Josh From iivan at town.yyz.redhat.com Fri Aug 8 11:39:58 2008 From: iivan at town.yyz.redhat.com (iivan at town.yyz.redhat.com) Date: Fri, 08 Aug 2008 18:39:58 +0000 Subject: changeset in /hg/pulseaudio: addeed mute and volume control for ... Message-ID: changeset f27fbf96d5aa in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=f27fbf96d5aa description: addeed mute and volume control for SourceDataLine diffstat: 11 files changed, 243 insertions(+), 351 deletions(-) makefile | 13 src/org/classpath/icedtea/pulseaudio/EventLoop.java | 11 src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 22 + src/org/classpath/icedtea/pulseaudio/PulseAudioMuteControl.java | 50 +++ src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 144 +++++----- src/org/classpath/icedtea/pulseaudio/PulseAudioStreamMuteControl.java | 68 ++++ src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java | 11 src/org/classpath/icedtea/pulseaudio/StreamVolume.java | 115 ------- src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c | 66 ---- src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.c | 39 -- src/org_classpath_icedtea_pulseaudio_PulseStreamAudioVolumeControl.c | 55 --- diffs (truncated from 793 to 500 lines): diff -r 2785b9eba70d -r f27fbf96d5aa makefile --- a/makefile Fri Aug 08 11:11:03 2008 -0400 +++ b/makefile Fri Aug 08 14:40:11 2008 -0400 @@ -14,7 +14,7 @@ LDFLAGS=-g -Wall -Werror # Standard targets -all: lib/libpulse-java.so +all: lib lib/libpulse-java.so clean: @@ -34,9 +34,8 @@ lib/libpulse-java.so: \ lib/libpulse-java.so: \ bin/org_classpath_icedtea_pulseaudio_EventLoop.o \ bin/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.o \ - bin/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.o \ - bin/org_classpath_icedtea_pulseaudio_StreamVolume.o \ - bin/jni-common.o + bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o \ + bin/jni-common.o # bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o \ # bin/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.o \ gcc -g -shared -o $@ $^ /usr/lib/libpulse.so @@ -50,9 +49,6 @@ bin/org_classpath_icedtea_pulseaudio_Pul gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.o: src/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.c src/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.h bin - gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< - -bin/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.o: src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.c src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.h gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o: src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h @@ -75,9 +71,6 @@ src/org_classpath_icedtea_pulseaudio_Pul src/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.h: src/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.class javah -d src -classpath src org.classpath.icedtea.pulseaudio.PulseAudioTargetDataLine -src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeControl.h: src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.class - javah -d src -classpath src org.classpath.icedtea.pulseaudio.PulseAudioVolumeControl - src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h: src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.class javah -d src -classpath src org.classpath.icedtea.pulseaudio.PulseAudioStreamVolumeControl diff -r 2785b9eba70d -r f27fbf96d5aa src/org/classpath/icedtea/pulseaudio/EventLoop.java --- a/src/org/classpath/icedtea/pulseaudio/EventLoop.java Fri Aug 08 11:11:03 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/EventLoop.java Fri Aug 08 14:40:11 2008 -0400 @@ -103,16 +103,17 @@ public class EventLoop implements Runnab */ static { - try { - String library = new java.io.File(".").getCanonicalPath() + //try { + /*String library = new java.io.File(".").getCanonicalPath() + java.io.File.separatorChar + "lib" + java.io.File.separatorChar - + System.mapLibraryName("pulse-java"); + + System.mapLibraryName("pulse-java");*/ + String library = "/home/yyz/iivan/workspace/pulseaudio/lib/libpulse-java.so"; System.out.println(library); System.load(library); - } catch (IOException e) { + /*} catch (IOException e) { assert ("Loading failed".endsWith("library")); - } + }*/ } private EventLoop() { diff -r 2785b9eba70d -r f27fbf96d5aa src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Fri Aug 08 11:11:03 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Fri Aug 08 14:40:11 2008 -0400 @@ -47,7 +47,9 @@ import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.BooleanControl; import javax.sound.sampled.Control; +import javax.sound.sampled.FloatControl; import javax.sound.sampled.DataLine; import javax.sound.sampled.Line; import javax.sound.sampled.LineEvent; @@ -101,12 +103,14 @@ public class PulseAudioMixer implements PulseAudioSourceDataLine sourceLine = null; sourceLine = new PulseAudioSourceDataLine(eventLoop); Line.Info sourceDataLineInfo = sourceLine.getLineInfo(); - if (info instanceof DataLine.Info) { + /*if (info instanceof DataLine.Info) { if (info.matches(sourceDataLineInfo)) { sourceLines.add(sourceLine); return sourceLine; } - } + }*/ + + return sourceLine; // if (info.matches(_targetDataLineInfo)) { // PulseAudioTargetDataLine targetLine = new PulseAudioTargetDataLine(); @@ -114,7 +118,7 @@ public class PulseAudioMixer implements // return targetLine; // } - throw new IllegalArgumentException(); + //throw new IllegalArgumentException(); } @Override @@ -426,13 +430,21 @@ public class PulseAudioMixer implements System.out.println("got a line"); - File soundFile = new File("new.wav"); + //File soundFile = new File(new java.io.File(".").getCanonicalPath() + "/testsounds/logout.wav"); + File soundFile = new File( "/home/iivan/workspace/pulseaudio/testsounds/logout.wav"); AudioInputStream audioInputStream = AudioSystem .getAudioInputStream(soundFile); AudioFormat audioFormat = audioInputStream.getFormat(); line.open(audioFormat); line.start(); - + PulseAudioStreamVolumeControl control = (PulseAudioStreamVolumeControl) line.getControl(FloatControl.Type.VOLUME); + PulseAudioStreamMuteControl mute = (PulseAudioStreamMuteControl) line.getControl(BooleanControl.Type.MUTE); + mute.setValue(true); + control.setValue(40000); + mute.setValue(false); + System.out.println("Volume set to " + control.getValue()); + + byte[] abData = new byte[1000]; int bytesRead = 0; diff -r 2785b9eba70d -r f27fbf96d5aa src/org/classpath/icedtea/pulseaudio/PulseAudioMuteControl.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioMuteControl.java Fri Aug 08 14:40:11 2008 -0400 @@ -0,0 +1,50 @@ +/* PulseAudioMuteControl.java + Copyright (C) 2008 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea 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 for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.classpath.icedtea.pulseaudio; + +import javax.sound.sampled.BooleanControl; + +abstract class PulseAudioMuteControl extends BooleanControl { + + protected PulseAudioMuteControl() { + super(BooleanControl.Type.MUTE, false, "Volume muted", "Volume on"); + } + + +} + diff -r 2785b9eba70d -r f27fbf96d5aa src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Fri Aug 08 11:11:03 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Fri Aug 08 14:40:11 2008 -0400 @@ -73,11 +73,13 @@ public class PulseAudioSourceDataLine im private List supportedFormats = null; private AudioFormat currentFormat = null; - private Control[] controls; - private Mute muteControl; - private StreamVolume volumeControl; - private List listeners; + + private Control[] controls = new Control[2]; + private PulseAudioStreamMuteControl muteControl; + private PulseAudioStreamVolumeControl volumeControl; + private boolean muted; + private float volume; /* * When moving from 32bit platform to 64 bit platform, these variables @@ -119,18 +121,21 @@ public class PulseAudioSourceDataLine im } catch (IOException e) { assert ("Loading failed".endsWith("library")); } - } - - - + + } + + + + + + public PulseAudioSourceDataLine(EventLoop eventLoop) { this.eventLoop = eventLoop; this.listeners = new ArrayList(); - - volumeControl = new StreamVolume(this); - muteControl = new Mute(); - controls = new Control[] { volumeControl, muteControl }; + this.volume = 65536; + + /* * FIXME puselaudio supports any sample rate (it can covert between @@ -314,8 +319,26 @@ public class PulseAudioSourceDataLine im currentFormat = null; - } - + + } + + protected boolean isMuted() { + return muted; + } + + protected void setMuted(boolean value) { + muted = value; + } + + protected float getVolume() { + return this.volume; + } + + protected void setVolume(float value) { + this.volume = value; + + } + public void open(AudioFormat format, int bufferSize) throws LineUnavailableException { if (isOpen) { @@ -332,11 +355,42 @@ public class PulseAudioSourceDataLine im bufferSize); currentFormat = format; isOpen = true; - return; - } - } - - throw new IllegalArgumentException("invalid format"); + } + } + + //throw new IllegalArgumentException("invalid format"); + + final Semaphore semaphore = new Semaphore(0); + + synchronized (eventLoop.threadLock) { + + this.addStreamListener(new StreamListener() { + @Override + public void update(StreamEvent e) { + System.out.println(this.getClass().getName() + + " waiting to stream to become ready"); + if (e.getType() == StreamEvent.Type.READY) { + semaphore.release(); + } + } + }); + + System.out.println("about to open stream"); + native_start(); + } + + try { + semaphore.acquire(); + } catch (InterruptedException e) { + // throw new LineUnavailableException("unable to prepare + // stream"); + } + System.out.println(this.getClass().getName() + "stream is ready"); + + volumeControl = new PulseAudioStreamVolumeControl(this); + controls[0] = volumeControl; + muteControl = new PulseAudioStreamMuteControl(this); + controls[1] = muteControl; } @@ -392,40 +446,16 @@ public class PulseAudioSourceDataLine im } public void start() { - if (isPaused) { - native_resume(); - isPaused = false; - return; - } else { - final Semaphore semaphore = new Semaphore(0); - - synchronized (eventLoop.threadLock) { - - this.addStreamListener(new StreamListener() { - @Override - public void update(StreamEvent e) { - if (e.getType() == StreamEvent.Type.READY) { - semaphore.release(); - } - } - }); - - native_start(); - } - - try { - semaphore.acquire(); - } catch (InterruptedException e) { - // throw new LineUnavailableException("unable to prepare - // stream"); - } - - } + if (isPaused) { + native_resume(); + isPaused = false; + } /* * for(LineListener l :listeners) { l.update(new LineEvent(this, * LineEvent.Type.START, 0)); } */ + } public void stop() { @@ -513,7 +543,8 @@ public class PulseAudioSourceDataLine im public Control getControl(Type control) { for (int i = 0; i < controls.length; i++) { - if (controls[i].getType() == control) { + if (controls[i].getType() == control){ + return controls[i]; } } @@ -595,15 +626,12 @@ public class PulseAudioSourceDataLine im streamListener.update(e); } } - - private class Mute extends BooleanControl { - - protected Mute() { - super(BooleanControl.Type.MUTE, false, "TRUE", "FALSE"); - - } - - } + + protected EventLoop getEventLoop() { + return this.eventLoop; + } + + public long getStreamPointer() { return streamPointer; diff -r 2785b9eba70d -r f27fbf96d5aa src/org/classpath/icedtea/pulseaudio/PulseAudioStreamMuteControl.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioStreamMuteControl.java Fri Aug 08 14:40:11 2008 -0400 @@ -0,0 +1,68 @@ +/* PulseAudioStreamMuteControl.java + Copyright (C) 2008 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea 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 for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.classpath.icedtea.pulseaudio; + +import javax.sound.sampled.FloatControl; + +public class PulseAudioStreamMuteControl extends PulseAudioMuteControl { + + private PulseAudioStreamVolumeControl volumeControl; + private PulseAudioSourceDataLine line; + + + public PulseAudioStreamMuteControl(PulseAudioSourceDataLine line) { + this.volumeControl = (PulseAudioStreamVolumeControl) line.getControl(FloatControl.Type.VOLUME); + this.line = line; + } + + public synchronized void setValue(boolean value){ + if (value == true) { + line.setMuted(true); + volumeControl.setStreamVolume(0); + } else { + line.setMuted(false); + float newValue = volumeControl.getValue(); + volumeControl.setStreamVolume(newValue); + } + } + + public synchronized boolean getValue() { + return line.isMuted(); + } + +} diff -r 2785b9eba70d -r f27fbf96d5aa src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java Fri Aug 08 11:11:03 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java Fri Aug 08 14:40:11 2008 -0400 @@ -37,15 +37,14 @@ exception statement from your version. package org.classpath.icedtea.pulseaudio; + import javax.sound.sampled.FloatControl; -public class PulseAudioVolumeControl extends FloatControl { +abstract class PulseAudioVolumeControl extends FloatControl { - protected PulseAudioVolumeControl(Type type, float minimum, float maximum, - float precision, int updatePeriod, float initialValue, String units) { - super(type, minimum, maximum, precision, updatePeriod, initialValue, - units); - + protected PulseAudioVolumeControl(PulseAudioSourceDataLine line) { + super(FloatControl.Type.VOLUME, 0, 65536, 1, -1, line.getVolume(), "pulseaudio units", "Volume Off", "Default Volume", "Full Volume"); } + } diff -r 2785b9eba70d -r f27fbf96d5aa src/org/classpath/icedtea/pulseaudio/StreamVolume.java --- a/src/org/classpath/icedtea/pulseaudio/StreamVolume.java Fri Aug 08 11:11:03 2008 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* PulseAudioStreamVolumeControl.java - Copyright (C) 2008 Red Hat, Inc. - -This file is part of IcedTea. - -IcedTea is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License as published by From iivan at town.yyz.redhat.com Fri Aug 8 11:54:02 2008 From: iivan at town.yyz.redhat.com (iivan at town.yyz.redhat.com) Date: Fri, 08 Aug 2008 18:54:02 +0000 Subject: changeset in /hg/pulseaudio: added PulseAudioStreamVolumeControl... Message-ID: changeset bdc766c0c2ae in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=bdc766c0c2ae description: added PulseAudioStreamVolumeControl.java diffstat: 2 files changed, 66 insertions(+), 57 deletions(-) src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java | 66 ++++++++++ src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeMuteControl.c | 57 -------- diffs (131 lines): diff -r f27fbf96d5aa -r bdc766c0c2ae src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java Fri Aug 08 14:54:18 2008 -0400 @@ -0,0 +1,66 @@ +package org.classpath.icedtea.pulseaudio; + +import java.io.IOException; + +import org.classpath.icedtea.pulseaudio.EventLoop; +import org.classpath.icedtea.pulseaudio.PulseAudioVolumeControl; + +public class PulseAudioStreamVolumeControl extends PulseAudioVolumeControl { + private long streamPointer; + private EventLoop eventLoop; + private PulseAudioSourceDataLine line; + + + static { + try { + String library = new java.io.File(".").getCanonicalPath() + + java.io.File.separatorChar + "lib" + + java.io.File.separatorChar + + System.mapLibraryName("pulse-java"); + System.out.println(library); + System.load(library); + } catch (IOException e) { + assert ("Loading failed".endsWith("library")); + } + } + + protected PulseAudioStreamVolumeControl(PulseAudioSourceDataLine line) { + super(line); + this.streamPointer = line.getStreamPointer(); + this.eventLoop = line.getEventLoop(); + this.line = line; + } + + public synchronized void setValue(float newValue) { + if(!line.isMuted()) { + setStreamVolume(newValue); + } + + line.setVolume(newValue); + } + + protected synchronized void setStreamVolume(float newValue) { + int operationPointer; + int operationState; + synchronized(eventLoop.threadLock) { + operationPointer = native_setValue(newValue); + operationState = native_getOperationState(operationPointer); + } + while(operationState != 1) { + synchronized (eventLoop.threadLock) { + operationState = native_getOperationState(operationPointer); + } + } + + } + + public synchronized float getValue() { + return line.getVolume(); + } + + + private native int native_getOperationState(int operationState); + public native int native_setValue(float newValue); +} + + diff -r f27fbf96d5aa -r bdc766c0c2ae src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeMuteControl.c --- a/src/org_classpath_icedtea_pulseaudio_PulseAudioVolumeMuteControl.c Fri Aug 08 14:40:11 2008 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* PulseAudioStreamVolumeControl.java - Copyright (C) 2008 Red Hat, Inc. - -This file is part of IcedTea. - -IcedTea is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License as published by -the Free Software Foundation, version 2. - -IcedTea 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 for more details. - -You should have received a copy of the GNU General Public License -along with IcedTea; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. -*/ - - -#include "jni-common.h" - -static void sink_input_change_volume(pa_context* context, - const pa_sink_input_info* input_info, int eol, void* userdata) { - assert(context); - if (eol) { - return; - } - assert(i); - userdata = i->volume; -} - -JNIEXPORT jint JNICALL Java_org_openjdk_sound_PulseAudioStreamVolumeControl_getValue(JNIEnv env*, jobject obj) { - pa_stream *stream = getJavaLongField(env, obj, "streamPointer"); - int stream_id pa_stream_get_index(stream); - pa_cvolume *volume; - pa_context_get_sink_input_info((pa_context*) contextPointer ,stream_id,sink_input_change_volume, volume); - printf("%d\n", volume->values[0]); -} From omajid at redhat.com Fri Aug 8 13:24:44 2008 From: omajid at redhat.com (Omair Majid) Date: Fri, 08 Aug 2008 20:24:44 +0000 Subject: changeset in /hg/pulseaudio: fixed problem in acquiring a Source... Message-ID: changeset 61cf6f811619 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=61cf6f811619 description: fixed problem in acquiring a SourceDataLine given only a Line.Info (instead of a DataLine.Info) some minor cleanup diffstat: 4 files changed, 164 insertions(+), 106 deletions(-) src/org/classpath/icedtea/pulseaudio/EventLoop.java | 33 +-- src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 107 +++++----- src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 64 ++--- unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java | 66 +++++- diffs (truncated from 577 to 500 lines): diff -r bdc766c0c2ae -r 61cf6f811619 src/org/classpath/icedtea/pulseaudio/EventLoop.java --- a/src/org/classpath/icedtea/pulseaudio/EventLoop.java Fri Aug 08 14:54:18 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/EventLoop.java Fri Aug 08 16:24:38 2008 -0400 @@ -63,12 +63,11 @@ public class EventLoop implements Runnab private static EventLoop instance = null; private List contextListeners; - // private List lines; + private String name; private String serverString; private int status; - // private boolean eventLoopIsRunning = false; public Semaphore finished = new Semaphore(0); @@ -76,7 +75,7 @@ public class EventLoop implements Runnab * JNI stuff * * Do not synchronize the individual functions, synchronize - * block/method/lines around the call + * block/method/lines around the call using threadLock * */ @@ -90,7 +89,6 @@ public class EventLoop implements Runnab /* * These fields hold pointers - * * */ @SuppressWarnings("unused") @@ -103,17 +101,16 @@ public class EventLoop implements Runnab */ static { - //try { - /*String library = new java.io.File(".").getCanonicalPath() + try { + String library = new java.io.File(".").getCanonicalPath() + java.io.File.separatorChar + "lib" + java.io.File.separatorChar - + System.mapLibraryName("pulse-java");*/ - String library = "/home/yyz/iivan/workspace/pulseaudio/lib/libpulse-java.so"; - System.out.println(library); + + System.mapLibraryName("pulse-java"); + // System.out.println(library); System.load(library); - /*} catch (IOException e) { + } catch (IOException e) { assert ("Loading failed".endsWith("library")); - }*/ + } } private EventLoop() { @@ -156,12 +153,12 @@ public class EventLoop implements Runnab native_shutdown(); // System.out.println(this.getClass().getName() // + ": shutting down"); - + // clean up the listeners synchronized (contextListeners) { contextListeners.clear(); } - + return; } @@ -218,11 +215,11 @@ public class EventLoop implements Runnab } private void fireEvent(final ContextEvent e) { -// System.out.println(this.getClass().getName() + "firing event: " -// + e.getType().toString()); - - synchronized (contextListeners) { -// System.out.println(contextListeners.size()); + // System.out.println(this.getClass().getName() + "firing event: " + // + e.getType().toString()); + + synchronized (contextListeners) { + // System.out.println(contextListeners.size()); for (ContextListener listener : contextListeners) { listener.update(e); } diff -r bdc766c0c2ae -r 61cf6f811619 src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Fri Aug 08 14:54:18 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Fri Aug 08 16:24:38 2008 -0400 @@ -50,7 +50,6 @@ import javax.sound.sampled.BooleanContro import javax.sound.sampled.BooleanControl; import javax.sound.sampled.Control; import javax.sound.sampled.FloatControl; -import javax.sound.sampled.DataLine; import javax.sound.sampled.Line; import javax.sound.sampled.LineEvent; import javax.sound.sampled.LineListener; @@ -74,9 +73,6 @@ public class PulseAudioMixer implements private List sourceLines = new ArrayList(); // private List targetLines = null; - // private Line.Info targetDataLineInfo = new - // Line.Info(PulseAudioTargetDataLine.class); - List lineListeners = null; private PulseAudioMixer() { @@ -103,22 +99,24 @@ public class PulseAudioMixer implements PulseAudioSourceDataLine sourceLine = null; sourceLine = new PulseAudioSourceDataLine(eventLoop); Line.Info sourceDataLineInfo = sourceLine.getLineInfo(); - /*if (info instanceof DataLine.Info) { - if (info.matches(sourceDataLineInfo)) { - sourceLines.add(sourceLine); - return sourceLine; - } - }*/ - - return sourceLine; - - // if (info.matches(_targetDataLineInfo)) { - // PulseAudioTargetDataLine targetLine = new PulseAudioTargetDataLine(); - // _targetLines.add(targetLine); + + // TODO need to add special case code for + // DataLine.Info case + if (info.matches(sourceDataLineInfo)) { + sourceLines.add(sourceLine); + return sourceLine; + } + + // PulseAudioTargetDataLine targetLine = new + // PulseAudioTargetDataLine(eventLoop); + // Line.Info targetDataLineInfo = targetLine.getLineInfo(); + + // if (info.matches(targetDataLineInfo)) { + // targetLines.add(targetLine); // return targetLine; // } - //throw new IllegalArgumentException(); + throw new IllegalArgumentException(); } @Override @@ -146,28 +144,31 @@ public class PulseAudioMixer implements @Override public javax.sound.sampled.Line.Info[] getSourceLineInfo( javax.sound.sampled.Line.Info info) { - Line.Info sourceInfo = new Line.Info(PulseAudioSourceDataLine.class); + SourceDataLine sourceLine = new PulseAudioSourceDataLine(eventLoop); + Line.Info sourceInfo = sourceLine.getLineInfo(); + if (info.matches(sourceInfo)) { Line.Info[] sourceInfos = { sourceInfo, }; return sourceInfos; - } else { - Line.Info[] sourceInfos = {}; - return sourceInfos; - - } + } + + return new Line.Info[] {}; + } @Override public Line[] getSourceLines() { - // return (Line[]) _sourceLines.toArray(); - return null; - + return (Line[]) sourceLines.toArray(); } @Override public javax.sound.sampled.Line.Info[] getTargetLineInfo() { - Line.Info[] info = { new Line.Info(PulseAudioTargetDataLine.class), }; - return info; + if (isOpen) { + PulseAudioTargetDataLine targetDataLine = new PulseAudioTargetDataLine(); + return new Line.Info[] { targetDataLine.getLineInfo() }; + } + // if not open, return an empty array + return new Line.Info[] {}; } @Override @@ -177,10 +178,10 @@ public class PulseAudioMixer implements if (info.matches(sourceInfo)) { Line.Info[] sourceInfos = { sourceInfo, }; return sourceInfos; - } else { - Line.Info[] sourceInfos = {}; - return sourceInfos; - } + } + + return new Line.Info[] {}; + } @Override @@ -191,9 +192,15 @@ public class PulseAudioMixer implements @Override public boolean isLineSupported(javax.sound.sampled.Line.Info info) { - // if ( _sourceDataLineInfo.matches(info)) { - // return true; - // } + if (isOpen) { + PulseAudioSourceDataLine sourceLine = new PulseAudioSourceDataLine( + eventLoop); + Line.Info sourceLineInfo = sourceLine.getLineInfo(); + + if (info.matches(sourceLineInfo)) { + return true; + } + } return false; } @@ -242,10 +249,9 @@ public class PulseAudioMixer implements fireEvent(new LineEvent(this, LineEvent.Type.CLOSE, AudioSystem.NOT_SPECIFIED)); - /* - * FIXME need to clean up the listeners on close without a race - * condition - */ + synchronized (lineListeners) { + lineListeners.clear(); + } } @@ -294,7 +300,8 @@ public class PulseAudioMixer implements try { openRemote(appName, null); } catch (UnknownHostException e) { - // not possible + assert ("opening a local connection cant result in unknownhost" + .length() == 0); } } @@ -393,7 +400,9 @@ public class PulseAudioMixer implements /* * Should this method be synchronized? I had a few reasons, but i forgot - * them Pros: - Thread safety? + * them :( + * + * Pros: - Thread safety? * * Cons: - eventListeners are run from other threads, if those then call * fireEvent while a method is waiting on a listener, this synchronized @@ -430,21 +439,25 @@ public class PulseAudioMixer implements System.out.println("got a line"); - //File soundFile = new File(new java.io.File(".").getCanonicalPath() + "/testsounds/logout.wav"); - File soundFile = new File( "/home/iivan/workspace/pulseaudio/testsounds/logout.wav"); + // File soundFile = new File(new java.io.File(".").getCanonicalPath() + // + "/testsounds/logout.wav"); + File soundFile = new File( + "/home/iivan/workspace/pulseaudio/testsounds/logout.wav"); AudioInputStream audioInputStream = AudioSystem .getAudioInputStream(soundFile); AudioFormat audioFormat = audioInputStream.getFormat(); + System.out.println(); line.open(audioFormat); line.start(); - PulseAudioStreamVolumeControl control = (PulseAudioStreamVolumeControl) line.getControl(FloatControl.Type.VOLUME); - PulseAudioStreamMuteControl mute = (PulseAudioStreamMuteControl) line.getControl(BooleanControl.Type.MUTE); + PulseAudioStreamVolumeControl control = (PulseAudioStreamVolumeControl) line + .getControl(FloatControl.Type.VOLUME); + PulseAudioStreamMuteControl mute = (PulseAudioStreamMuteControl) line + .getControl(BooleanControl.Type.MUTE); mute.setValue(true); control.setValue(40000); mute.setValue(false); System.out.println("Volume set to " + control.getValue()); - - + byte[] abData = new byte[1000]; int bytesRead = 0; diff -r bdc766c0c2ae -r 61cf6f811619 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Fri Aug 08 14:54:18 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Fri Aug 08 16:24:38 2008 -0400 @@ -47,7 +47,6 @@ import java.util.concurrent.Semaphore; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioSystem; -import javax.sound.sampled.BooleanControl; import javax.sound.sampled.Control; import javax.sound.sampled.DataLine; import javax.sound.sampled.LineEvent; @@ -74,7 +73,7 @@ public class PulseAudioSourceDataLine im private AudioFormat currentFormat = null; private List listeners; - + private Control[] controls = new Control[2]; private PulseAudioStreamMuteControl muteControl; private PulseAudioStreamVolumeControl volumeControl; @@ -124,18 +123,10 @@ public class PulseAudioSourceDataLine im } - - - - - - public PulseAudioSourceDataLine(EventLoop eventLoop) { this.eventLoop = eventLoop; this.listeners = new ArrayList(); this.volume = 65536; - - /* * FIXME puselaudio supports any sample rate (it can covert between @@ -153,9 +144,9 @@ public class PulseAudioSourceDataLine im * * */ - + supportedFormats = new LinkedList(); - + Map properties; int[] channelSizes = new int[] { 1, 2, 5 }; @@ -168,8 +159,7 @@ public class PulseAudioSourceDataLine im // as soon as they change something // FIXME ^ int sampleSize = 8; // in bits - AudioFormat PA_SAMPLE_U8 = new AudioFormat( - Encoding.PCM_UNSIGNED, // encoding + AudioFormat PA_SAMPLE_U8 = new AudioFormat(Encoding.PCM_UNSIGNED, // encoding AudioSystem.NOT_SPECIFIED, // sample rate sampleSize, // sample size channelSize, // channels @@ -319,32 +309,31 @@ public class PulseAudioSourceDataLine im currentFormat = null; - } protected boolean isMuted() { return muted; } - + protected void setMuted(boolean value) { muted = value; } - + protected float getVolume() { return this.volume; } - + protected void setVolume(float value) { this.volume = value; - - } - + + } + public void open(AudioFormat format, int bufferSize) throws LineUnavailableException { if (isOpen) { throw new IllegalStateException("Line is already open"); } - + // ignore suggested buffer size for (AudioFormat myFormat : supportedFormats) { @@ -358,7 +347,9 @@ public class PulseAudioSourceDataLine im } } - //throw new IllegalArgumentException("invalid format"); + if (!isOpen) { + throw new IllegalArgumentException("Unsupported format"); + } final Semaphore semaphore = new Semaphore(0); @@ -382,11 +373,9 @@ public class PulseAudioSourceDataLine im try { semaphore.acquire(); } catch (InterruptedException e) { - // throw new LineUnavailableException("unable to prepare - // stream"); - } - System.out.println(this.getClass().getName() + "stream is ready"); - + throw new LineUnavailableException("unable to prepare stream"); + } + volumeControl = new PulseAudioStreamVolumeControl(this); controls[0] = volumeControl; muteControl = new PulseAudioStreamMuteControl(this); @@ -446,16 +435,16 @@ public class PulseAudioSourceDataLine im } public void start() { - if (isPaused) { - native_resume(); - isPaused = false; - } + if (isPaused) { + native_resume(); + isPaused = false; + } /* * for(LineListener l :listeners) { l.update(new LineEvent(this, * LineEvent.Type.START, 0)); } */ - + } public void stop() { @@ -530,7 +519,6 @@ public class PulseAudioSourceDataLine im return 0; } - public boolean isActive() { // TODO Auto-generated method stub return false; @@ -543,7 +531,7 @@ public class PulseAudioSourceDataLine im public Control getControl(Type control) { for (int i = 0; i < controls.length; i++) { - if (controls[i].getType() == control){ + if (controls[i].getType() == control) { return controls[i]; } @@ -556,7 +544,7 @@ public class PulseAudioSourceDataLine im } public javax.sound.sampled.Line.Info getLineInfo() { - return new DataLine.Info(SourceDataLine.class, + return new DataLine.Info(PulseAudioSourceDataLine.class, supportedFormats.toArray(new AudioFormat[0]), 0, 100000); } @@ -626,12 +614,10 @@ public class PulseAudioSourceDataLine im streamListener.update(e); } } - + protected EventLoop getEventLoop() { return this.eventLoop; } - - public long getStreamPointer() { return streamPointer; diff -r bdc766c0c2ae -r 61cf6f811619 unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java --- a/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Fri Aug 08 14:54:18 2008 -0400 +++ b/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Fri Aug 08 16:24:38 2008 -0400 @@ -43,7 +43,10 @@ import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.BooleanControl; import javax.sound.sampled.DataLine; +import javax.sound.sampled.FloatControl; +import javax.sound.sampled.Line; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.Mixer; import javax.sound.sampled.SourceDataLine; @@ -77,12 +80,11 @@ public class PulseSourceDataLineTest { AudioInputStream audioInputStream = AudioSystem .getAudioInputStream(soundFile); AudioFormat audioFormat = audioInputStream.getFormat(); From omajid at redhat.com Fri Aug 8 14:28:35 2008 From: omajid at redhat.com (Omair Majid) Date: Fri, 08 Aug 2008 21:28:35 +0000 Subject: changeset in /hg/pulseaudio: Added a Operation object to wrap pa... Message-ID: changeset 5c09d21c2d70 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=5c09d21c2d70 description: Added a Operation object to wrap pa_operation_*. Using it to free memory whenever async Operations are performed. Also added a new method to convert a pointer to a java long diffstat: 8 files changed, 160 insertions(+), 53 deletions(-) makefile | 8 - src/jni-common.c | 17 ++- src/jni-common.h | 4 src/org/classpath/icedtea/pulseaudio/Operation.java | 56 ++++++++++ src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 44 ++++--- src/org_classpath_icedtea_pulseaudio_EventLoop.c | 2 src/org_classpath_icedtea_pulseaudio_Operation.c | 43 +++++++ src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c | 39 ++---- diffs (351 lines): diff -r 61cf6f811619 -r 5c09d21c2d70 makefile --- a/makefile Fri Aug 08 16:24:38 2008 -0400 +++ b/makefile Fri Aug 08 17:28:30 2008 -0400 @@ -35,8 +35,8 @@ lib/libpulse-java.so: \ bin/org_classpath_icedtea_pulseaudio_EventLoop.o \ bin/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.o \ bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o \ + bin/org_classpath_icedtea_pulseaudio_Operation.o \ bin/jni-common.o -# bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o \ # bin/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.o \ gcc -g -shared -o $@ $^ /usr/lib/libpulse.so @@ -54,7 +54,7 @@ bin/org_classpath_icedtea_pulseaudio_Pul bin/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.o: src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< -bin/org_classpath_icedtea_pulseaudio_StreamVolume.o: src/org_classpath_icedtea_pulseaudio_StreamVolume.c src/org_classpath_icedtea_pulseaudio_StreamVolume.h +bin/org_classpath_icedtea_pulseaudio_Operation.o: src/org_classpath_icedtea_pulseaudio_Operation.c src/org_classpath_icedtea_pulseaudio_Operation.h gcc $(CFLAGS) $(PLATFORM_FLAGS) -c -o $@ $< bin/jni-common.o: src/jni-common.c src/jni-common.h @@ -74,8 +74,8 @@ src/org_classpath_icedtea_pulseaudio_Pul src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h: src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.class javah -d src -classpath src org.classpath.icedtea.pulseaudio.PulseAudioStreamVolumeControl -src/org_classpath_icedtea_pulseaudio_StreamVolume.h: src/org/classpath/icedtea/pulseaudio/StreamVolume.class - javah -d src -classpath src org.classpath.icedtea.pulseaudio.StreamVolume +src/org_classpath_icedtea_pulseaudio_Operation.h: src/org/classpath/icedtea/pulseaudio/Operation.class + javah -d src -classpath src org.classpath.icedtea.pulseaudio.Operation # Compile Java # Actually, this is not the best thing to do; javac might do some crazy things diff -r 61cf6f811619 -r 5c09d21c2d70 src/jni-common.c --- a/src/jni-common.c Fri Aug 08 16:24:38 2008 -0400 +++ b/src/jni-common.c Fri Aug 08 17:28:30 2008 -0400 @@ -85,6 +85,16 @@ void setJavaLongField(JNIEnv* env, jobje (*env)->SetLongField(env, obj, fid, value); } + +/* + * + * + * The functions below are going to cause headaches when porting + * + * + */ + + void* getJavaPointer(JNIEnv* env, jobject obj, char* name) { /* @@ -155,10 +165,15 @@ void setJavaPointer(JNIEnv* env, jobject } -void* convertFromJavaPointer(jlong pointer) { +void* convertJavaLongToPointer(jlong pointer) { /* this truncates the jlong */ jPointer p = pointer; return (void*) p; } + +jlong convertPointerToJavaLong(void* pointer) { + return (long) pointer; + +} diff -r 61cf6f811619 -r 5c09d21c2d70 src/jni-common.h --- a/src/jni-common.h Fri Aug 08 16:24:38 2008 -0400 +++ b/src/jni-common.h Fri Aug 08 17:28:30 2008 -0400 @@ -72,8 +72,8 @@ void* getJavaPointer(JNIEnv* env, jobjec void* getJavaPointer(JNIEnv* env, jobject obj, char* name); void setJavaPointer(JNIEnv* env, jobject obj, char*name, void* pointer_value); -void* convertFromJavaPointer(jlong pointer); - +void* convertJavaLongToPointer(jlong pointer); +jlong convertPointerToJavaLong(void* pointer); #endif diff -r 61cf6f811619 -r 5c09d21c2d70 src/org/classpath/icedtea/pulseaudio/Operation.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/classpath/icedtea/pulseaudio/Operation.java Fri Aug 08 17:28:30 2008 -0400 @@ -0,0 +1,56 @@ +package org.classpath.icedtea.pulseaudio; + +/* + * Encapsulates a pa_operation object + * + * + * This is really needed only so that we can deallocate the reference counted object + * + * + */ + +public class Operation { + + long operationPointer; + + public enum State { + Running, Done, Cancelled, + } + + private native void native_ref(); + + private native void native_unref(); + + private native int native_get_state(); + + public Operation(long operationPointer) { + this.operationPointer = operationPointer; + } + + public void addReference() { + assert(operationPointer != 0); + native_ref(); + } + + public void releaseReference() { + assert(operationPointer!= 0); + native_unref(); + } + + public State getState() { + assert(operationPointer!= 0); + int state = native_get_state(); + switch (state) { + case 0: + return State.Running; + case 1: + return State.Done; + case 2: + return State.Cancelled; + default: + throw new IllegalStateException("Invalid operation State"); + } + + } + +} diff -r 61cf6f811619 -r 5c09d21c2d70 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Fri Aug 08 16:24:38 2008 -0400 +++ b/src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Fri Aug 08 17:28:30 2008 -0400 @@ -95,9 +95,7 @@ public class PulseAudioSourceDataLine im private native int native_get_writable_size(); - private native int native_getOperationState(int operationState); - - private native int native_flush(); + private native long native_flush(); private native void native_start(); @@ -105,7 +103,7 @@ public class PulseAudioSourceDataLine im private native void native_resume(); - private native int native_drain(); + private native long native_drain(); private native void native_close(); @@ -555,33 +553,39 @@ public class PulseAudioSourceDataLine im @Override public void drain() { - int operationPointer; - int operationState; - synchronized (eventLoop.threadLock) { - operationPointer = native_drain(); - operationState = native_getOperationState(operationPointer); - } - while (operationState != 1) { + Operation operation; + Operation.State operationState; + synchronized (eventLoop.threadLock) { + operation = new Operation(native_drain()); + operationState = operation.getState(); + } + + // FIXME need to find a way to do a wait than a busy loop + while (operationState != Operation.State.Done) { synchronized (eventLoop.threadLock) { - operationState = native_getOperationState(operationPointer); + operationState = operation.getState(); } } + operation.releaseReference(); } @Override public void flush() { - int operationPointer; - int operationState; - synchronized (eventLoop.threadLock) { - operationPointer = native_flush(); - operationState = native_getOperationState(operationPointer); - } - while (operationState != 1) { + Operation operation; + Operation.State operationState; + synchronized (eventLoop.threadLock) { + operation = new Operation(native_flush()); + operationState = operation.getState(); + } + // FIXME need to find a way to do a wait than a busy loop + while (operationState != Operation.State.Done) { synchronized (eventLoop.threadLock) { - operationState = native_getOperationState(operationPointer); + operationState = operation.getState(); } } + + operation.releaseReference(); } diff -r 61cf6f811619 -r 5c09d21c2d70 src/org_classpath_icedtea_pulseaudio_EventLoop.c --- a/src/org_classpath_icedtea_pulseaudio_EventLoop.c Fri Aug 08 16:24:38 2008 -0400 +++ b/src/org_classpath_icedtea_pulseaudio_EventLoop.c Fri Aug 08 17:28:30 2008 -0400 @@ -262,7 +262,7 @@ JNIEXPORT void JNICALL Java_org_classpat (JNIEnv* env, jobject obj, jlong streamPointer, jint volume) { int* new_volume = malloc(sizeof(int)); *new_volume = volume; - int stream_id = pa_stream_get_index((pa_stream*) convertFromJavaPointer(streamPointer)); + int stream_id = pa_stream_get_index((pa_stream*) convertJavaLongToPointer(streamPointer)); pa_context_get_sink_input_info((pa_context*) getJavaPointer(env, obj,"contextPointer") ,stream_id,sink_input_change_volume, new_volume); return; } diff -r 61cf6f811619 -r 5c09d21c2d70 src/org_classpath_icedtea_pulseaudio_Operation.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org_classpath_icedtea_pulseaudio_Operation.c Fri Aug 08 17:28:30 2008 -0400 @@ -0,0 +1,43 @@ +#include "org_classpath_icedtea_pulseaudio_Operation.h" + +#include "jni-common.h" +#include + +/* + * Class: org_classpath_icedtea_pulseaudio_Operation + * Method: native_ref + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_Operation_native_1ref +(JNIEnv* env, jobject obj) { + + pa_operation* operation = (pa_operation*) getJavaPointer(env, obj, "operationPointer"); + pa_operation_ref(operation); + +} + +/* + * Class: org_classpath_icedtea_pulseaudio_Operation + * Method: native_unref + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_classpath_icedtea_pulseaudio_Operation_native_1unref +(JNIEnv* env, jobject obj) { + + pa_operation* operation = (pa_operation*) getJavaPointer(env, obj, "operationPointer"); + pa_operation_unref(operation); + +} + +/* + * Class: org_classpath_icedtea_pulseaudio_Operation + * Method: native_get_state + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_Operation_native_1get_1state +(JNIEnv* env, jobject obj) { + + pa_operation* operation = (pa_operation*) getJavaPointer(env, obj, "operationPointer"); + int state = pa_operation_get_state(operation); + return state; +} diff -r 61cf6f811619 -r 5c09d21c2d70 src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c --- a/src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Fri Aug 08 16:24:38 2008 -0400 +++ b/src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Fri Aug 08 17:28:30 2008 -0400 @@ -113,7 +113,7 @@ JNIEXPORT void JNICALL Java_org_classpat java_context->env = env; java_context->obj = (*env)->NewGlobalRef(env, obj); - pa_context* context = (pa_context*) convertFromJavaPointer(contextPointer); + pa_context* context = (pa_context*) convertJavaLongToPointer(contextPointer); assert(context != NULL); pa_sample_spec sample_spec; @@ -210,28 +210,17 @@ JNIEXPORT jint JNICALL Java_org_classpat /* * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine * Method: native_flush - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1flush -(JNIEnv* env, jobject obj) { - + * Signature: ()J + */ +JNIEXPORT jlong JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1flush +(JNIEnv* env, jobject obj) +{ pa_stream *stream = (pa_stream*) getJavaPointer(env, obj, "streamPointer"); pa_operation *o = pa_stream_flush(stream, NULL, NULL); - return (int) o; - -} - -/* - * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine - * Method: native_getOperationState - * Signature: (I)I - */ -JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1getOperationState -(JNIEnv *env, jobject obj, jint operation) { - - return pa_operation_get_state((pa_operation *) operation); - -} + return convertPointerToJavaLong(o); + +} + /* * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine @@ -269,14 +258,14 @@ JNIEXPORT void JNICALL Java_org_classpat /* * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine * Method: native_drain - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1drain + * Signature: ()J + */ +JNIEXPORT jlong JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine_native_1drain (JNIEnv* env, jobject obj) { pa_stream *stream = (pa_stream*) getJavaPointer(env, obj, "streamPointer"); assert(stream); pa_operation *o = pa_stream_drain(stream, NULL, NULL); - return (int) o; + return convertPointerToJavaLong(o); } /* From robermann at gmail.com Fri Aug 8 14:41:05 2008 From: robermann at gmail.com (Roberto Mannai) Date: Fri, 8 Aug 2008 23:41:05 +0200 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> <1217853319.3061.11.camel@dijkstra.wildebeest.org> <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> Message-ID: <414e44f70808081441n296e54a5xce8cadad42d32691@mail.gmail.com> Hi Where (or how) can I find the default Xmx size? If I try a -Xmx400m I get the same error, so I'm thinking the default max size could be greater than my free RAM + SWAP. In this moment: linux:~ # free -m total used free shared buffers cached Mem: 503 495 7 0 63 183 -/+ buffers/cache: 248 254 Swap: 127 0 127 linux:~ # 254 + 127= 381 mega Now I can create a java virtual machine with at max -Xmx390m. So I'd much helped on knowing what is the default xmx value - googling it does not help: I found only: http://www.nabble.com/changeset-in--hg-icedtea:-*-patches-icedtea-cacao-Compiler-gcc-g...-td14884869.html Please if you're aware of a more suitable mailing list, tell me it. Best regards Roberto On Mon, Aug 4, 2008 at 9:47 PM, Roberto Mannai wrote: > In order to get some feedback, I wrote to the > opensuse-java at opensuse.org mailing list. At least one user was > successful running the command, it seems, on a 64bit processor. > > In order to get more feedback, I open the following bug: > https://bugzilla.novell.com/show_bug.cgi?id=414462 > > Coping below for your convenience: > > When running the java process, I get the following error: > > linux:~/.eclipse # java -version > Error occurred during initialization of VM > Could not reserve enough space for object heap > *** glibc detected *** java: free(): invalid pointer: 0xb7737254 *** > ======= Backtrace: ========= > /lib/libc.so.6[0xb7f86fc4] > /lib/libc.so.6(cfree+0x9c)[0xb7f8895c] > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a94fb1] > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a580a2] > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a59860] > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a5dc85] > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so(JNI_CreateJavaVM+0x5c)[0xb78faccc] > java(JavaMain+0x9e)[0x804a4de] > /lib/libpthread.so.0[0xb806e175] > /lib/libc.so.6(clone+0x5e)[0xb7fe8dce] > ======= Memory map: ======== > 08048000-08050000 r-xp 00000000 08:01 1379425 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java > 08050000-08051000 r--p 00008000 08:01 1379425 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java > 08051000-08052000 rw-p 00009000 08:01 1379425 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java > 08052000-08073000 rw-p 08052000 00:00 0 [heap] > b5400000-b5421000 rw-p b5400000 00:00 0 > b5421000-b5500000 ---p b5421000 00:00 0 > b55ca000-b55cb000 rwxp b55ca000 00:00 0 > b55cb000-b564a000 rwxp b55cb000 00:00 0 > b564a000-b5672000 rwxp b564a000 00:00 0 > b5672000-b764a000 rwxp b5672000 00:00 0 > b764a000-b766e000 r-xp 00000000 08:01 3915 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so > b766e000-b766f000 r--p 00023000 08:01 3915 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so > b766f000-b7671000 rw-p 00024000 08:01 3915 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so > b7671000-b76a6000 r--s 00000000 08:01 4401 /var/run/nscd/passwd > b76a6000-b76b9000 r-xp 00000000 08:01 1100751 /lib/libnsl-2.8.so > b76b9000-b76ba000 r--p 00012000 08:01 1100751 /lib/libnsl-2.8.so > b76ba000-b76bb000 rw-p 00013000 08:01 1100751 /lib/libnsl-2.8.so > b76bb000-b76bd000 rw-p b76bb000 00:00 0 > b76c7000-b76d3000 r-xp 00000000 08:01 24423 /lib/libgcc_s.so.1 > b76d3000-b76d4000 r--p 0000b000 08:01 24423 /lib/libgcc_s.so.1 > b76d4000-b76d5000 rw-p 0000c000 08:01 24423 /lib/libgcc_s.so.1 > b76d5000-b76dc000 r-xp 00000000 08:01 3938 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so > b76dc000-b76dd000 r--p 00006000 08:01 3938 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so > b76dd000-b76de000 rw-p 00007000 08:01 3938 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so > b76de000-b76e5000 r-xp 00000000 08:01 1218520 /lib/librt-2.8.so > b76e5000-b76e6000 r--p 00006000 08:01 1218520 /lib/librt-2.8.so > b76e6000-b76e7000 rw-p 00007000 08:01 1218520 /lib/librt-2.8.so > b76e7000-b76ea000 ---p b76e7000 00:00 0 > b76ea000-b7738000 rw-p b76ea000 00:00 0 > b7738000-b775c000 r-xp 00000000 08:01 1034658 /lib/libm-2.8.so > b775c000-b775d000 r--p 00023000 08:01 1034658 /lib/libm-2.8.so > b775d000-b775e000 rw-p 00024000 08:01 1034658 /lib/libm-2.8.so > b775e000-b7adc000 r-xp 00000000 08:01 3898 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so > b7adc000-b7aef000 r--p 0037e000 08:01 3898 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so > b7aef000-b7afb000 rw-p 00391000 08:01 3898 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so > b7afb000-b7f1b000 rw-p b7afb000 00:00 0 > b7f1b000-b8058000 r-xp 00000000 08:01 145156 /lib/libc-2.8.so > b8058000-b805a000 r--p 0013d000 08:01 145156 /lib/libc-2.8.so > b805a000-b805b000 rw-p 0013f000 08:01 145156 /lib/libc-2.8.so > b805b000-b805e000 rw-p b805b000 00:00 0 > b805e000-b8060000 r-xp 00000000 08:01 996292 /lib/libdl-2.8.so > b8060000-b8061000 r--p 00001000 08:01 996292 /lib/libdl-2.8.so > b8061000-b8062000 rw-p 00002000 08:01 996292 /lib/libdl-2.8.so > b8062000-b8066000 r-xp 00000000 08:01 3903 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so > b8066000-b8067000 r--p 00003000 08:01 3903 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so > b8067000-b8068000 rw-p 00004000 08:01 3903 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so > b8068000-b807c000 r-xp 00000000 08:01 1100778 /lib/libpthread-2.8.so > b807c000-b807d000 r--p 00013000 08:01 1100778 /lib/libpthread-2.8.so > b807d000-b807e000 rw-p 00014000 08:01 1100778 /lib/libpthread-2.8.so > b807e000-b8080000 rw-p b807e000 00:00 0 > b8080000-b8092000 r-xp 00000000 08:01 146523 /lib/libz.so.1.2.3 > b8092000-b8093000 r--p 00011000 08:01 146523 /lib/libz.so.1.2.3 > b8093000-b8094000 rw-p 00012000 08:01 146523 /lib/libz.so.1.2.3 > b8094000-b80a0000 r-xp 00000000 08:01 3937 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so > b80a0000-b80a1000 r--p 0000c000 08:01 3937 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so > b80a1000-b80a2000 rw-p 0000d000 08:01 3937 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so > b80a2000-b80aa000 rw-s 00000000 08:01 4291 /tmp/hsperfdata_root/5298 > (deleted) > b80aa000-b80b1000 r-xp 00000000 08:01 3940 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so > b80b1000-b80b2000 r--p 00006000 08:01 3940 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so > b80b2000-b80b3000 rw-p 00007000 08:01 3940 > /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so > b80b3000-b80b4000 rw-p b80b3000 00:00 0 > b80b4000-b80b5000 r--p b80b4000 00:00 0 > b80b5000-b80b6000 rw-p b80b5000 00:00 0 > b80b6000-b80d1000 r-xp 00000000 08:01 115121 /lib/ld-2.8.so > b80d1000-b80d2000 r--p 0001a000 08:01 115121 /lib/ld-2.8.so > b80d2000-b80d3000 rw-p 0001b000 08:01 115121 /lib/ld-2.8.so > bfebe000-bfed3000 rw-p bffeb000 00:00 0 [stack] > ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso] > Aborted > > > In order to work, I must set the Xmx option, for example: > linux:~/.eclipse # java -Xmx1m -version > java version "1.6.0" > IcedTea Runtime Environment (build 1.6.0-b09) > OpenJDK Client VM (build 1.6.0-b09, mixed mode) > > RPM version: > linux:~/.eclipse # rpm -q java-1_6_0-openjdk > java-1_6_0-openjdk-1.2_b09-9.1 > > Opensuse version: 11.0 > Kernel version: > linux:~/.eclipse # uname -r > 2.6.25.11-0.1-pae > > > Ciao > Roberto > > > On Mon, Aug 4, 2008 at 2:35 PM, Mark Wielaard wrote: >> Hi Roberto, >> >> On Mon, 2008-08-04 at 14:23 +0200, Roberto Mannai wrote: >>> On 8/4/08, Andrew Haley wrote: >>> > Roberto Mannai wrote: >>> > >>> > > For a test I've just installed: >>> > > java-1_7_0-icedtea >>> > > on my opensuse11 box. >>> > > >>> > > "java -version" command crashes with an error. In order to work, I >>> > > must use the -Xmx option, also with 1m: >>> > > >>> > > java -Xmx1m -version >>> > > >>> > > Any reason for it? Is it a bug? >>> > >>> > It must be. How much memory have you got? >>> >>> My system has 512 mb of RAM, on a 32 bit processor. >>> >>> If I try to set the Xms option, java complains it is larger than max >>> size, so in my opinion the jvm does not allocate any default xmx >>> parameter. >>> >>> The error is: >>> "Could not reserve enough space for object heap'' >>> >>> The same message occurs also with java-1_6_0-openjdk. >> >> That is strange. Can you give us some more information? >> >> How exactly did you install icedtea/openjdk? >> >> Was is it a precompiled package, if so from where? >> If not, how did you configure and compile from source? >> >> Do other opensuse users have the same issue? >> >> What is the exact command given and output? >> Both for the failing and the working -Xmx1m -version case? >> (Best to copy/paste the command line completely, any output, including >> errors, stacktraces and the output of -version is interesting.) >> >> Thanks, >> >> Mark >> >> > From robermann at gmail.com Fri Aug 8 16:33:53 2008 From: robermann at gmail.com (Roberto Mannai) Date: Sat, 9 Aug 2008 01:33:53 +0200 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <414e44f70808081441n296e54a5xce8cadad42d32691@mail.gmail.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> <1217853319.3061.11.camel@dijkstra.wildebeest.org> <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> <414e44f70808081441n296e54a5xce8cadad42d32691@mail.gmail.com> Message-ID: <414e44f70808081633m76d43ac9x211527bc35ed9271@mail.gmail.com> In the while, I downloaded from: https://api.opensuse.org/build/openSUSE:Factory/standard/i586/java-1_6_0-openjdk/java-1_6_0-openjdk-1.2_b09-18.16.src.rpm the last factory opensuse java version. If I'm not wrong, the Xmx setting is done into the file: openjdk-6-src-b09-11_apr_2008-fedora/openjdk/jdk/make/docs/Makefile Where the default size should be: MAX_VM_MEMORY = 512 That default value makes the process crash on my PC, which has 512 mb of RAM (java -Xmx512m -version crashes, too). I think the SUN default value was 384 - see: https://jdk-jrl-sources.dev.java.net/source/browse/jdk-jrl-sources/jdk6u3/trunk/j2se/make/docs/Makefile?view=markup In my PC, I can run successfully: java -Xmx384m -version If this discussion of default value was correct would mean that default openjdk / icedtea RPM versions will not work out of the box (without patches) on PCs with scarce RAM like mine. What do you think? Ciao Roberto On Fri, Aug 8, 2008 at 11:41 PM, Roberto Mannai wrote: > Hi > Where (or how) can I find the default Xmx size? > > If I try a -Xmx400m I get the same error, so I'm thinking the default > max size could be greater than my free RAM + SWAP. > > In this moment: > linux:~ # free -m > total used free shared buffers cached > Mem: 503 495 7 0 63 183 > -/+ buffers/cache: 248 254 > Swap: 127 0 127 > linux:~ # > 254 + 127= 381 mega > > Now I can create a java virtual machine with at max -Xmx390m. > > So I'd much helped on knowing what is the default xmx value - googling > it does not help: I found only: > http://www.nabble.com/changeset-in--hg-icedtea:-*-patches-icedtea-cacao-Compiler-gcc-g...-td14884869.html > > Please if you're aware of a more suitable mailing list, tell me it. > > Best regards > Roberto > > > On Mon, Aug 4, 2008 at 9:47 PM, Roberto Mannai wrote: >> In order to get some feedback, I wrote to the >> opensuse-java at opensuse.org mailing list. At least one user was >> successful running the command, it seems, on a 64bit processor. >> >> In order to get more feedback, I open the following bug: >> https://bugzilla.novell.com/show_bug.cgi?id=414462 >> >> Coping below for your convenience: >> >> When running the java process, I get the following error: >> >> linux:~/.eclipse # java -version >> Error occurred during initialization of VM >> Could not reserve enough space for object heap >> *** glibc detected *** java: free(): invalid pointer: 0xb7737254 *** >> ======= Backtrace: ========= >> /lib/libc.so.6[0xb7f86fc4] >> /lib/libc.so.6(cfree+0x9c)[0xb7f8895c] >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a94fb1] >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a580a2] >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a59860] >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so[0xb7a5dc85] >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so(JNI_CreateJavaVM+0x5c)[0xb78faccc] >> java(JavaMain+0x9e)[0x804a4de] >> /lib/libpthread.so.0[0xb806e175] >> /lib/libc.so.6(clone+0x5e)[0xb7fe8dce] >> ======= Memory map: ======== >> 08048000-08050000 r-xp 00000000 08:01 1379425 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java >> 08050000-08051000 r--p 00008000 08:01 1379425 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java >> 08051000-08052000 rw-p 00009000 08:01 1379425 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java >> 08052000-08073000 rw-p 08052000 00:00 0 [heap] >> b5400000-b5421000 rw-p b5400000 00:00 0 >> b5421000-b5500000 ---p b5421000 00:00 0 >> b55ca000-b55cb000 rwxp b55ca000 00:00 0 >> b55cb000-b564a000 rwxp b55cb000 00:00 0 >> b564a000-b5672000 rwxp b564a000 00:00 0 >> b5672000-b764a000 rwxp b5672000 00:00 0 >> b764a000-b766e000 r-xp 00000000 08:01 3915 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so >> b766e000-b766f000 r--p 00023000 08:01 3915 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so >> b766f000-b7671000 rw-p 00024000 08:01 3915 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so >> b7671000-b76a6000 r--s 00000000 08:01 4401 /var/run/nscd/passwd >> b76a6000-b76b9000 r-xp 00000000 08:01 1100751 /lib/libnsl-2.8.so >> b76b9000-b76ba000 r--p 00012000 08:01 1100751 /lib/libnsl-2.8.so >> b76ba000-b76bb000 rw-p 00013000 08:01 1100751 /lib/libnsl-2.8.so >> b76bb000-b76bd000 rw-p b76bb000 00:00 0 >> b76c7000-b76d3000 r-xp 00000000 08:01 24423 /lib/libgcc_s.so.1 >> b76d3000-b76d4000 r--p 0000b000 08:01 24423 /lib/libgcc_s.so.1 >> b76d4000-b76d5000 rw-p 0000c000 08:01 24423 /lib/libgcc_s.so.1 >> b76d5000-b76dc000 r-xp 00000000 08:01 3938 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so >> b76dc000-b76dd000 r--p 00006000 08:01 3938 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so >> b76dd000-b76de000 rw-p 00007000 08:01 3938 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so >> b76de000-b76e5000 r-xp 00000000 08:01 1218520 /lib/librt-2.8.so >> b76e5000-b76e6000 r--p 00006000 08:01 1218520 /lib/librt-2.8.so >> b76e6000-b76e7000 rw-p 00007000 08:01 1218520 /lib/librt-2.8.so >> b76e7000-b76ea000 ---p b76e7000 00:00 0 >> b76ea000-b7738000 rw-p b76ea000 00:00 0 >> b7738000-b775c000 r-xp 00000000 08:01 1034658 /lib/libm-2.8.so >> b775c000-b775d000 r--p 00023000 08:01 1034658 /lib/libm-2.8.so >> b775d000-b775e000 rw-p 00024000 08:01 1034658 /lib/libm-2.8.so >> b775e000-b7adc000 r-xp 00000000 08:01 3898 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so >> b7adc000-b7aef000 r--p 0037e000 08:01 3898 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so >> b7aef000-b7afb000 rw-p 00391000 08:01 3898 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/client/libjvm.so >> b7afb000-b7f1b000 rw-p b7afb000 00:00 0 >> b7f1b000-b8058000 r-xp 00000000 08:01 145156 /lib/libc-2.8.so >> b8058000-b805a000 r--p 0013d000 08:01 145156 /lib/libc-2.8.so >> b805a000-b805b000 rw-p 0013f000 08:01 145156 /lib/libc-2.8.so >> b805b000-b805e000 rw-p b805b000 00:00 0 >> b805e000-b8060000 r-xp 00000000 08:01 996292 /lib/libdl-2.8.so >> b8060000-b8061000 r--p 00001000 08:01 996292 /lib/libdl-2.8.so >> b8061000-b8062000 rw-p 00002000 08:01 996292 /lib/libdl-2.8.so >> b8062000-b8066000 r-xp 00000000 08:01 3903 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so >> b8066000-b8067000 r--p 00003000 08:01 3903 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so >> b8067000-b8068000 rw-p 00004000 08:01 3903 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so >> b8068000-b807c000 r-xp 00000000 08:01 1100778 /lib/libpthread-2.8.so >> b807c000-b807d000 r--p 00013000 08:01 1100778 /lib/libpthread-2.8.so >> b807d000-b807e000 rw-p 00014000 08:01 1100778 /lib/libpthread-2.8.so >> b807e000-b8080000 rw-p b807e000 00:00 0 >> b8080000-b8092000 r-xp 00000000 08:01 146523 /lib/libz.so.1.2.3 >> b8092000-b8093000 r--p 00011000 08:01 146523 /lib/libz.so.1.2.3 >> b8093000-b8094000 rw-p 00012000 08:01 146523 /lib/libz.so.1.2.3 >> b8094000-b80a0000 r-xp 00000000 08:01 3937 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so >> b80a0000-b80a1000 r--p 0000c000 08:01 3937 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so >> b80a1000-b80a2000 rw-p 0000d000 08:01 3937 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so >> b80a2000-b80aa000 rw-s 00000000 08:01 4291 /tmp/hsperfdata_root/5298 >> (deleted) >> b80aa000-b80b1000 r-xp 00000000 08:01 3940 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so >> b80b1000-b80b2000 r--p 00006000 08:01 3940 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so >> b80b2000-b80b3000 rw-p 00007000 08:01 3940 >> /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so >> b80b3000-b80b4000 rw-p b80b3000 00:00 0 >> b80b4000-b80b5000 r--p b80b4000 00:00 0 >> b80b5000-b80b6000 rw-p b80b5000 00:00 0 >> b80b6000-b80d1000 r-xp 00000000 08:01 115121 /lib/ld-2.8.so >> b80d1000-b80d2000 r--p 0001a000 08:01 115121 /lib/ld-2.8.so >> b80d2000-b80d3000 rw-p 0001b000 08:01 115121 /lib/ld-2.8.so >> bfebe000-bfed3000 rw-p bffeb000 00:00 0 [stack] >> ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso] >> Aborted >> >> >> In order to work, I must set the Xmx option, for example: >> linux:~/.eclipse # java -Xmx1m -version >> java version "1.6.0" >> IcedTea Runtime Environment (build 1.6.0-b09) >> OpenJDK Client VM (build 1.6.0-b09, mixed mode) >> >> RPM version: >> linux:~/.eclipse # rpm -q java-1_6_0-openjdk >> java-1_6_0-openjdk-1.2_b09-9.1 >> >> Opensuse version: 11.0 >> Kernel version: >> linux:~/.eclipse # uname -r >> 2.6.25.11-0.1-pae >> >> >> Ciao >> Roberto >> >> >> On Mon, Aug 4, 2008 at 2:35 PM, Mark Wielaard wrote: >>> Hi Roberto, >>> >>> On Mon, 2008-08-04 at 14:23 +0200, Roberto Mannai wrote: >>>> On 8/4/08, Andrew Haley wrote: >>>> > Roberto Mannai wrote: >>>> > >>>> > > For a test I've just installed: >>>> > > java-1_7_0-icedtea >>>> > > on my opensuse11 box. >>>> > > >>>> > > "java -version" command crashes with an error. In order to work, I >>>> > > must use the -Xmx option, also with 1m: >>>> > > >>>> > > java -Xmx1m -version >>>> > > >>>> > > Any reason for it? Is it a bug? >>>> > >>>> > It must be. How much memory have you got? >>>> >>>> My system has 512 mb of RAM, on a 32 bit processor. >>>> >>>> If I try to set the Xms option, java complains it is larger than max >>>> size, so in my opinion the jvm does not allocate any default xmx >>>> parameter. >>>> >>>> The error is: >>>> "Could not reserve enough space for object heap'' >>>> >>>> The same message occurs also with java-1_6_0-openjdk. >>> >>> That is strange. Can you give us some more information? >>> >>> How exactly did you install icedtea/openjdk? >>> >>> Was is it a precompiled package, if so from where? >>> If not, how did you configure and compile from source? >>> >>> Do other opensuse users have the same issue? >>> >>> What is the exact command given and output? >>> Both for the failing and the working -Xmx1m -version case? >>> (Best to copy/paste the command line completely, any output, including >>> errors, stacktraces and the output of -version is interesting.) >>> >>> Thanks, >>> >>> Mark >>> >>> >> > From gnu_andrew at member.fsf.org Fri Aug 8 16:56:20 2008 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Sat, 9 Aug 2008 00:56:20 +0100 Subject: changeset in /hg/icedtea: 2008-08-06 Joshua Sumali References: Message-ID: <17c6771e0808081656w6715ea00j2f5030d02a025ca1@mail.gmail.com> On 06/08/2008, Joshua Sumali wrote: > changeset 2b7233b8a439 in /hg/icedtea > details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=2b7233b8a439 > description: > 2008-08-06 Joshua Sumali > > * acinclude.m4: Don't bother with GCC_OLD here either. > > diffstat: > > 2 files changed, 4 insertions(+), 2 deletions(-) > ChangeLog | 4 ++++ > acinclude.m4 | 2 -- > > diffs (30 lines): > > diff -r e6094a45393c -r 2b7233b8a439 ChangeLog > --- a/ChangeLog Mon Aug 04 02:22:43 2008 +0100 > +++ b/ChangeLog Wed Aug 06 09:23:00 2008 -0400 > @@ -1,3 +1,7 @@ 2008-08-04 Andrew John Hughes +2008-08-06 Joshua Sumali > + > + * acinclude.m4: Don't bother with GCC_OLD here either. > + > 2008-08-04 Andrew John Hughes > > * Makefile.am: > diff -r e6094a45393c -r 2b7233b8a439 acinclude.m4 > --- a/acinclude.m4 Mon Aug 04 02:22:43 2008 +0100 > +++ b/acinclude.m4 Wed Aug 06 09:23:00 2008 -0400 > @@ -220,7 +220,6 @@ AC_DEFUN([FIND_ECJ_JAR], > > AC_DEFUN([FIND_LIBGCJ_JAR], > [ > - AM_CONDITIONAL(GCC_OLD, test x != x) > AC_ARG_WITH([libgcj-jar], > [AS_HELP_STRING(--with-libgcj-jar,specify location of the libgcj 4.3.0 jar)], > [ > @@ -243,7 +242,6 @@ AC_DEFUN([FIND_LIBGCJ_JAR], > LIBGCJ_JAR=/usr/share/java/libgcj-4.3.jar > AC_MSG_RESULT(${LIBGCJ_JAR}) > else > - AM_CONDITIONAL(GCC_OLD, test x = x) > if test -e "/usr/share/java/libgcj-4.1.2.jar"; then > LIBGCJ_JAR=/usr/share/java/libgcj-4.1.2.jar > AC_MSG_RESULT(${LIBGCJ_JAR}) > Thanks! This explains why the local version of the same fix I was about to commit was no longer necessary... -- 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 Sat Aug 9 12:22:57 2008 From: mark at klomp.org (Mark Wielaard) Date: Sat, 09 Aug 2008 21:22:57 +0200 Subject: [Fwd: Server downtime] Message-ID: <1218309778.3276.6.camel@hermans.wildebeest.org> Hi, This will impact the icedtea mercurial repos and website at icedtea.classpath.org. Cheers, Mark -------------- next part -------------- An embedded message was scrubbed... From: Jim Pick Subject: Server downtime Date: Sat, 09 Aug 2008 11:26:07 -0700 Size: 4097 Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080809/65537d3d/attachment.mht From gnu_andrew at member.fsf.org Sat Aug 9 17:01:01 2008 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Sun, 10 Aug 2008 01:01:01 +0100 Subject: Move to b32 for IcedTea -- problems Message-ID: <17c6771e0808091701n25b7bbc1uc9b62591a3355f09@mail.gmail.com> I've just tried to move the IcedTea tree to b32 released at the beginning of the week. This currently works for --with-icedtea builds but fails for bootstrap/ecj builds. As such, I've just pushed the change to my own experimental repository for now (http://fuseyism.com/hg/icedtea). I have a feeling the issue is going to take some tracking down, and I won't be around to look at this until at least Thursday. If anyone has any ideas/wishes to fix this in the meantime, please feel free :) Meanwhile, if you're eager for b32 and can live with building with icedtea, then the tree is available for your use. FYI, the current failure is in the JDK and is shown below. My guess is some classes are not being built into the ecj build, but weren't previously being used anyway. I know we apply some patches to the CORBA makefiles, perhaps someone who knows more about these and why they were applied can take a look. /bin/cp /home/andrew/builder/icedtea/openjdk/build/linux-amd64/lib/tools.jar /home/andrew/builder/icedtea/openjdk/build/linux-amd64/j2sdk-image/lib/tools.jar /bin/mkdir -p /home/andrew/builder/icedtea/openjdk/build/linux-amd64/symbols/META-INF/sym /home/andrew/builder/icedtea/bootstrap/jdk1.6.0/bin/java -Xmx896m -Xms128m -XX:PermSize=32m -XX:MaxPermSize=160m "-Xbootclasspath/p:/home/andrew/builder/icedtea/openjdk/build/linux-amd64/langtools/dist/bootstrap/lib/javac.jar" -jar /home/andrew/builder/icedtea/openjdk/build/linux-amd64/langtools/dist/bootstrap/lib/javac.jar -g -source 1.5 -target 5 -encoding ascii "-Xbootclasspath:/home/andrew/builder/icedtea/openjdk/build/linux-amd64/classes" -XDprocess.packages -proc:only \ -processor com.sun.tools.javac.sym.CreateSymbols \ -Acom.sun.tools.javac.sym.Jar=/home/andrew/builder/icedtea/openjdk/build/linux-amd64/tmp/rt-orig.jar \ -Acom.sun.tools.javac.sym.Dest=/home/andrew/builder/icedtea/openjdk/build/linux-amd64/symbols/META-INF/sym/rt.jar \ java.applet java.awt java.awt.color java.awt.datatransfer java.awt.dnd java.awt.event java.awt.font java.awt.geom java.awt.im java.awt.im.spi java.awt.image java.awt.image.renderable java.awt.print java.beans java.beans.beancontext java.io java.lang java.lang.annotation java.lang.instrument java.lang.management java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi java.nio.charset java.nio.charset.spi java.rmi java.rmi.activation java.rmi.dgc java.rmi.registry java.rmi.server java.security java.security.acl java.security.cert java.security.interfaces java.security.spec java.sql java.text java.text.spi java.util java.util.concurrent java.util.concurrent.atomic java.util.concurrent.locks java.util.jar java.util.logging java.util.prefs java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax.activity javax.annotation javax.annotation.processing javax.crypto javax.crypto.interfaces javax.crypto.spec javax.imageio javax.imageio.event javax.imageio.metadata javax.imageio.plugins.jpeg javax.imageio.plugins.bmp javax.imageio.spi javax.imageio.stream javax.jws javax.jws.soap javax.lang.model javax.lang.model.element javax.lang.model.type javax.lang.model.util javax.management javax.management.loading javax.management.monitor javax.management.relation javax.management.openmbean javax.management.timer javax.management.modelmbean javax.management.remote javax.management.remote.rmi javax.naming javax.naming.directory javax.naming.event javax.naming.ldap javax.naming.spi javax.net javax.net.ssl javax.print javax.print.attribute javax.print.attribute.standard javax.print.event javax.rmi javax.rmi.CORBA javax.rmi.ssl javax.script javax.security.auth javax.security.auth.callback javax.security.auth.kerberos javax.security.auth.login javax.security.auth.spi javax.security.auth.x500 javax.security.cert javax.security.sasl javax.sound.sampled javax.sound.sampled.spi javax.sound.midi javax.sound.midi.spi javax.sql javax.sql.rowset javax.sql.rowset.serial javax.sql.rowset.spi javax.swing javax.swing.border javax.swing.colorchooser javax.swing.filechooser javax.swing.event javax.swing.table javax.swing.text javax.swing.text.html javax.swing.text.html.parser javax.swing.text.rtf javax.swing.tree javax.swing.undo javax.swing.plaf javax.swing.plaf.basic javax.swing.plaf.metal javax.swing.plaf.multi javax.swing.plaf.synth javax.tools javax.transaction javax.transaction.xa javax.xml.parsers javax.xml.bind javax.xml.bind.annotation javax.xml.bind.annotation.adapters javax.xml.bind.attachment javax.xml.bind.helpers javax.xml.bind.util javax.xml.soap javax.xml.ws javax.xml.ws.handler javax.xml.ws.handler.soap javax.xml.ws.http javax.xml.ws.soap javax.xml.ws.spi javax.xml.transform javax.xml.transform.sax javax.xml.transform.dom javax.xml.transform.stax javax.xml.transform.stream javax.xml javax.xml.crypto javax.xml.crypto.dom javax.xml.crypto.dsig javax.xml.crypto.dsig.dom javax.xml.crypto.dsig.keyinfo javax.xml.crypto.dsig.spec javax.xml.datatype javax.xml.validation javax.xml.namespace javax.xml.xpath javax.xml.stream javax.xml.stream.events javax.xml.stream.util org.ietf.jgss org.omg.CORBA org.omg.CORBA.DynAnyPackage org.omg.CORBA.ORBPackage org.omg.CORBA.TypeCodePackage org.omg.stub.java.rmi org.omg.CORBA.portable org.omg.CORBA_2_3 org.omg.CORBA_2_3.portable org.omg.CosNaming org.omg.CosNaming.NamingContextExtPackage org.omg.CosNaming.NamingContextPackage org.omg.SendingContext org.omg.PortableServer org.omg.PortableServer.CurrentPackage org.omg.PortableServer.POAPackage org.omg.PortableServer.POAManagerPackage org.omg.PortableServer.ServantLocatorPackage org.omg.PortableServer.portable org.omg.PortableInterceptor org.omg.PortableInterceptor.ORBInitInfoPackage org.omg.Messaging org.omg.IOP org.omg.IOP.CodecFactoryPackage org.omg.IOP.CodecPackage org.omg.Dynamic org.omg.DynamicAny org.omg.DynamicAny.DynAnyPackage org.omg.DynamicAny.DynAnyFactoryPackage org.w3c.dom org.w3c.dom.events org.w3c.dom.bootstrap org.w3c.dom.ls org.xml.sax org.xml.sax.ext org.xml.sax.helpers com.sun.java.browser.dom org.w3c.dom org.w3c.dom.bootstrap org.w3c.dom.ls org.w3c.dom.ranges org.w3c.dom.traversal org.w3c.dom.html org.w3c.dom.stylesheets org.w3c.dom.css org.w3c.dom.events org.w3c.dom.views com.sun.management com.sun.security.auth com.sun.security.auth.callback com.sun.security.auth.login com.sun.security.auth.module com.sun.security.jgss com.sun.net.ssl com.sun.net.httpserver com.sun.net.httpserver.spi javax.smartcardio com.sun.tracing com.sun.tracing.dtrace com.sun.java.swing.plaf com.sun.java.swing.plaf.windows com.sun.java.swing.plaf.motif com.sun.java.swing.plaf.gtk warning: package javax.transaction does not exist warning: package org.omg.SendingContext does not exist warning: package com.sun.java.swing.plaf does not exist Using boot class path = [/home/andrew/builder/icedtea/openjdk/build/linux-amd64/tmp/rt-orig.jar, /home/andrew/builder/icedtea/openjdk/build/linux-amd64/langtools/dist/bootstrap/lib/javac.jar, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/lib/resources.jar, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/lib/sunrsasign.jar, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/lib/jsse.jar, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/lib/jce.jar, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/lib/charsets.jar, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/classes, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/lib/ext/dnsns.jar, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/lib/ext/sunpkcs11.jar, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/lib/ext/sunjce_provider.jar, /home/andrew/builder/icedtea/openjdk-ecj/build/linux-amd64/j2sdk-image/jre/lib/ext/localedata.jar] error: org.omg.SendingContext.RunTime: class file for org.omg.SendingContext.RunTime not found error: class file for org.omg.SendingContext.RunTime not found 1 error make[2]: *** [initial-image-jdk] Error 1 make[2]: Leaving directory `/home/andrew/builder/icedtea/openjdk/jdk/make' make[1]: *** [jdk-build] Error 2 make[1]: Leaving directory `/home/andrew/builder/icedtea/openjdk' make: *** [stamps/icedtea.stamp] Error 2 ChangeLog for b32: 2008-08-08 Andrew John Hughes * HACKING: Updated. * Makefile.am: Move to b32 and add new patch for MBeanIntrospector. * patches/icedtea-debuginfo.patch, * patches/icedtea-libraries.patch: Updated. * patches/icedtea-mbeanintrospector.patch: New patch (getAnnotation cast for ecj builds). * patches/icedtea-sparc-trapsfix.patch, * patches/icedtea-version.patch: Updated. 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 jim at jimpick.com Sat Aug 9 19:25:59 2008 From: jim at jimpick.com (Jim Pick) Date: Sat, 09 Aug 2008 19:25:59 -0700 Subject: Icedtea/Classpath Server Downtime In-Reply-To: <489DE1C9.2060901@jimpick.com> References: <489DE1C9.2060901@jimpick.com> Message-ID: <489E51B7.8050506@jimpick.com> Jim Pick wrote: > Hi, > > I need to take the server down to investigate a possible failed disk in > the software RAID. I am hoping that it's just a Linux or Xen bug. > Also, I'd like to upgrade Xen to a more modern version if possible. > > I'm planning to take the server down in about 3 hours (around 2pm > Pacific Time). Hopefully, it won't take me too long to investigate > and/or upgrade it. > > There is always the possibility that things won't go well with the RAID > or the upgrade. I only have the one server online, so if I encounter > any big problems, please be patient as I try to figure out the best way > to recover. Luckily, I do have recent backups. > > This will affect jimpick.com, kaffe.org, developer.classpath.org, > planet.classpath.org, and icedtea.classpath.org. > > While the server is down, my jimpick.com/kaffe.org email addresses will > not be working. I can still be reached at my backup email address at > . The server is back now. If you see anything strange, send me an email. Cheers, - Jim From mark at klomp.org Sun Aug 10 12:49:16 2008 From: mark at klomp.org (Mark Wielaard) Date: Sun, 10 Aug 2008 21:49:16 +0200 Subject: [Fwd: Server downtime] In-Reply-To: <1218309778.3276.6.camel@hermans.wildebeest.org> References: <1218309778.3276.6.camel@hermans.wildebeest.org> Message-ID: <1218397756.11715.27.camel@hermans.wildebeest.org> Hi All, On Sat, 2008-08-09 at 21:22 +0200, Mark Wielaard wrote: > This will impact the icedtea mercurial repos and website at > icedtea.classpath.org. Unfortunately not everything went well with the disks/raid. The (virtual) machines will have to be taken down for approx 10 till 20 hours. Hopefully they will be online again tomorrow (Monday). This is Jim's update from his blog: http://codeflow.bittickler.org/?p=35 > Update: > > The server is back now. One out of the three drives in the RAID wasn?t > even recognized by the BIOS, so the RAID5 is now running in a degraded > state. The failed disk was also the grub disk ? luckily, I have an > IPMI board in the machine, so I was able to get into the BIOS, and > select another disk to boot from (which fortunately had grub on it). I > came uncomfortably close to not being able to rescue the machine > remotely. I?m currently in Penticton, BC, Canada ? the server is > 2000km away in San Jose, California. > > I can run the server on two 250GB disks for a while. I?ll probably be > heading down to California in the autumn for a vacation ? when I go, > I?ll drop by, and throw in another 1TB SATA drive. Until then, I?ll > have to do some re-arranging in order to reduce my amount of disk > usage. I?ll have to convert some of my RAID5 storage into RAID1 (with > software RAID and LVM, that isn?t too hard to do). > > The good news is that I was able to upgrade Xen to the latest stable > version in Debian. Hopefully it will be stable. Attached his email to the classpath list. Cheers, Mark -------------- next part -------------- An embedded message was scrubbed... From: Jim Pick Subject: Re: Server downtime Date: Sun, 10 Aug 2008 11:16:40 -0700 Size: 5048 Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20080810/ef8a28d0/attachment.mht From aph at redhat.com Mon Aug 11 01:37:40 2008 From: aph at redhat.com (Andrew Haley) Date: Mon, 11 Aug 2008 09:37:40 +0100 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <414e44f70808081633m76d43ac9x211527bc35ed9271@mail.gmail.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> <1217853319.3061.11.camel@dijkstra.wildebeest.org> <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> <414e44f70808081441n296e54a5xce8cadad42d32691@mail.gmail.com> <414e44f70808081633m76d43ac9x211527bc35ed9271@mail.gmail.com> Message-ID: <489FFA54.70801@redhat.com> Roberto Mannai wrote: > In the while, I downloaded from: > https://api.opensuse.org/build/openSUSE:Factory/standard/i586/java-1_6_0-openjdk/java-1_6_0-openjdk-1.2_b09-18.16.src.rpm > the last factory opensuse java version. > > If I'm not wrong, the Xmx setting is done into the file: > openjdk-6-src-b09-11_apr_2008-fedora/openjdk/jdk/make/docs/Makefile > > Where the default size should be: > MAX_VM_MEMORY = 512 > > That default value makes the process crash on my PC, which has 512 mb > of RAM (java -Xmx512m -version crashes, too). > > I think the SUN default value was 384 - see: > https://jdk-jrl-sources.dev.java.net/source/browse/jdk-jrl-sources/jdk6u3/trunk/j2se/make/docs/Makefile?view=markup > > In my PC, I can run successfully: > java -Xmx384m -version > > If this discussion of default value was correct would mean that > default openjdk / icedtea RPM > versions will not work out of the box (without patches) on PCs with > scarce RAM like mine. What do you think? That's certainly possible. The size of the initial heap is set dynamically, depending on your machine's capacity. However, you are the only person who has ever reported this problem. I was wondering: what swap settings are you using? Andrew. From robermann at gmail.com Mon Aug 11 01:43:50 2008 From: robermann at gmail.com (Roberto Mannai) Date: Mon, 11 Aug 2008 10:43:50 +0200 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <489FFA54.70801@redhat.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> <1217853319.3061.11.camel@dijkstra.wildebeest.org> <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> <414e44f70808081441n296e54a5xce8cadad42d32691@mail.gmail.com> <414e44f70808081633m76d43ac9x211527bc35ed9271@mail.gmail.com> <489FFA54.70801@redhat.com> Message-ID: <414e44f70808110143k3dd3e2a8x5f10bf0037cd97b1@mail.gmail.com> linux:~ # free -m total used free shared buffers cached Mem: 503 495 7 0 63 183 -/+ buffers/cache: 248 254 Swap: 127 0 127 The SWAP is 127 mb. Now, in general should be the -Xms option the setting for the initial size. The point is that the java-1.6.0-sun works out of the box, the openjdk crashes in the same hardware. Ciao Roberto > That's certainly possible. The size of the initial heap is set dynamically, > depending on your machine's capacity. However, you are the only person > who has ever reported this problem. I was wondering: what swap settings > are you using? > > Andrew. > From aph at redhat.com Mon Aug 11 02:03:51 2008 From: aph at redhat.com (Andrew Haley) Date: Mon, 11 Aug 2008 10:03:51 +0100 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <414e44f70808110143k3dd3e2a8x5f10bf0037cd97b1@mail.gmail.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> <1217853319.3061.11.camel@dijkstra.wildebeest.org> <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> <414e44f70808081441n296e54a5xce8cadad42d32691@mail.gmail.com> <414e44f70808081633m76d43ac9x211527bc35ed9271@mail.gmail.com> <489FFA54.70801@redhat.com> <414e44f70808110143k3dd3e2a8x5f10bf0037cd97b1@mail.gmail.com> Message-ID: <48A00077.8060705@redhat.com> Roberto Mannai wrote: > linux:~ # free -m > total used free shared buffers cached > Mem: 503 495 7 0 63 183 > -/+ buffers/cache: 248 254 > Swap: 127 0 127 > > The SWAP is 127 mb. Ouch. Now I'm starting to understand perhaps why you're the person having the problems. > Now, in general should be the -Xms option the > setting for the initial size. > > The point is that the java-1.6.0-sun works out of the box, the openjdk > crashes in the same hardware. Sure, but we still don't know *why* it does. This may be a real problem with the Generic OpenJDK, or it may just be that it can never work on a setup such as yours. IMO it should work, though. 512mb, although small for a current machine, isn't so very small. It might be that your machine's capacity is being detected incorrectly. The only way to find out is to debug. Either that, or you could just fix your swap and forget about it. Andrew. From robermann at gmail.com Mon Aug 11 02:29:45 2008 From: robermann at gmail.com (Roberto Mannai) Date: Mon, 11 Aug 2008 11:29:45 +0200 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <48A00077.8060705@redhat.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> <1217853319.3061.11.camel@dijkstra.wildebeest.org> <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> <414e44f70808081441n296e54a5xce8cadad42d32691@mail.gmail.com> <414e44f70808081633m76d43ac9x211527bc35ed9271@mail.gmail.com> <489FFA54.70801@redhat.com> <414e44f70808110143k3dd3e2a8x5f10bf0037cd97b1@mail.gmail.com> <48A00077.8060705@redhat.com> Message-ID: <414e44f70808110229ve63efffqb1d62dbec48fc915@mail.gmail.com> I'd like to know why does not work, too - so by now I'm not going to resize the swap (it would be easier to reinstall the SUN jvm :) In your opinion could be related to a change in the default Xmx value? What were the reasons for such a change, if I can ask? Ciao Roberto On 8/11/08, Andrew Haley wrote: > Roberto Mannai wrote: > > linux:~ # free -m > > total used free shared buffers cached > > Mem: 503 495 7 0 63 183 > > -/+ buffers/cache: 248 254 > > Swap: 127 0 127 > > > > The SWAP is 127 mb. > > Ouch. Now I'm starting to understand perhaps why you're the person having > the problems. > > > Now, in general should be the -Xms option the > > setting for the initial size. > > > > The point is that the java-1.6.0-sun works out of the box, the openjdk > > crashes in the same hardware. > > Sure, but we still don't know *why* it does. This may be a real problem with > the Generic OpenJDK, or it may just be that it can never work on a setup such > as yours. IMO it should work, though. 512mb, although small for a current > machine, isn't so very small. It might be that your machine's capacity is > being detected incorrectly. The only way to find out is to debug. > > Either that, or you could just fix your swap and forget about it. > > Andrew. > From aph at redhat.com Mon Aug 11 03:07:19 2008 From: aph at redhat.com (Andrew Haley) Date: Mon, 11 Aug 2008 11:07:19 +0100 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <414e44f70808110229ve63efffqb1d62dbec48fc915@mail.gmail.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> <1217853319.3061.11.camel@dijkstra.wildebeest.org> <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> <414e44f70808081441n296e54a5xce8cadad42d32691@mail.gmail.com> <414e44f70808081633m76d43ac9x211527bc35ed9271@mail.gmail.com> <489FFA54.70801@redhat.com> <414e44f70808110143k3dd3e2a8x5f10bf0037cd97b1@mail.gmail.com> <48A00077.8060705@redhat.com> <414e44f70808110229ve63efffqb1d62dbec48fc915@mail.gmail.com> Message-ID: <48A00F57.201@redhat.com> Please don't top-post. It's very confusing. Roberto Mannai wrote: > I'd like to know why does not work, too - so by now I'm not going to > resize the swap (it would be easier to reinstall the SUN jvm :) Huh? Adding swap can be done in less than 30s, unless you have no disk space. > In your opinion could be related to a change in the default Xmx value? Certainly. > What were the reasons for such a change, if I can ask? You can ask, but I don't know the answer. Andrew. > On 8/11/08, Andrew Haley wrote: >> Roberto Mannai wrote: >>> linux:~ # free -m >>> total used free shared buffers cached >>> Mem: 503 495 7 0 63 183 >>> -/+ buffers/cache: 248 254 >>> Swap: 127 0 127 >>> >>> The SWAP is 127 mb. >> Ouch. Now I'm starting to understand perhaps why you're the person having >> the problems. >> >>> Now, in general should be the -Xms option the >>> setting for the initial size. >>> >>> The point is that the java-1.6.0-sun works out of the box, the openjdk >>> crashes in the same hardware. >> Sure, but we still don't know *why* it does. This may be a real problem with >> the Generic OpenJDK, or it may just be that it can never work on a setup such >> as yours. IMO it should work, though. 512mb, although small for a current >> machine, isn't so very small. It might be that your machine's capacity is >> being detected incorrectly. The only way to find out is to debug. >> >> Either that, or you could just fix your swap and forget about it. >> >> Andrew. >> From mark at klomp.org Mon Aug 11 04:05:24 2008 From: mark at klomp.org (Mark Wielaard) Date: Mon, 11 Aug 2008 13:05:24 +0200 Subject: openjdk,icedtea - Xmx option mandatory In-Reply-To: <414e44f70808081633m76d43ac9x211527bc35ed9271@mail.gmail.com> References: <414e44f70808020442n6e6bec20kb18bca726a99e035@mail.gmail.com> <4896E5B9.7020603@redhat.com> <414e44f70808040523t55812505w92f753d94ef5976a@mail.gmail.com> <1217853319.3061.11.camel@dijkstra.wildebeest.org> <414e44f70808041247v2b7da6b8x1078b69b1f90a663@mail.gmail.com> <414e44f70808081441n296e54a5xce8cadad42d32691@mail.gmail.com> <414e44f70808081633m76d43ac9x211527bc35ed9271@mail.gmail.com> Message-ID: <1218452724.2050.17.camel@dijkstra.wildebeest.org> Hi Roberto, On Sat, 2008-08-09 at 01:33 +0200, Roberto Mannai wrote: > In the while, I downloaded from: > https://api.opensuse.org/build/openSUSE:Factory/standard/i586/java-1_6_0-openjdk/java-1_6_0-openjdk-1.2_b09-18.16.src.rpm > the last factory opensuse java version. > > If I'm not wrong, the Xmx setting is done into the file: > openjdk-6-src-b09-11_apr_2008-fedora/openjdk/jdk/make/docs/Makefile > > Where the default size should be: > MAX_VM_MEMORY = 512 > > That default value makes the process crash on my PC, which has 512 mb > of RAM (java -Xmx512m -version crashes, too). That is not the place where the memory settings for the runtime java are done. Look at openjdk/hotspot/src/share/vm/runtime/arguments.cpp where there are a couple of functions trying to figure out some reasonable max memory size. In particular they try to use os::physical_memory() and os::allocatable_physical_memory to get a nice fraction of memory based on what you actually have in your machine. It seems something is failing there. In one of your traces that you posted at: https://bugzilla.novell.com/show_bug.cgi?id=414462 You see that the java launcher tries to allocate (mmap2) 603979776 bytes aka 576 MB on your machine, just before the failure, which you clearly don't have. If you could help us figure out where/what precisely is guessing something wrong for your setup that would be nice. I don't immediately have a suggestion. But start by tracing which of the os::*memory() functions in openjdk/hotspot/src/os_cpu/*/vm/os_*.cpp are called and what they return in your setup would be a good start. There seems to be a second bug during the cleanup after the abort because of too limited memory. That is the "** glibc detected *** java: free(): invalid pointer" you are seeing. Something is probably freeing something that was never allocated in this case. Cheers, Mark From bugzilla-daemon at icedtea.classpath.org Mon Aug 11 07:22:27 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Aug 2008 14:22:27 +0000 Subject: [Bug 183] New: Build error: Argument list too long Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=183 Summary: Build error: Argument list too long Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: beuc at beuc.net I get this when compiling under Debian GNU/Linux Etch (from current Hg). I saw http://thread.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/2513 but this doesn't really help: my shell and my /bin/sh are bash; besides, the path is /usr/src/icedtea6 which is quite short. So I think the build system need to be fixed to avoid uber-long command lines: (cd /home/src/icedtea6/openjdk-ecj/control/build/linux-i586/classes && \ /usr/src/icedtea6/bootstrap/jdk1.6.0/bin/jar c0mf /home/src/icedtea6/openjdk-ecj/control/build/linux-i586/tmp/manifest.tmp /home/src/icedtea6/openjdk-ecj/control/build/linux-i586/tmp/rt-orig.jar \ -J-client -J-Xmx630m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m `/bin/cat /home/src/icedtea6/openjdk-ecj/control/build/linux-i586/tmp/jarfilelists/rt_jar_list`) /bin/sh: line 1: /usr/src/icedtea6/bootstrap/jdk1.6.0/bin/jar: Argument list too long make[2]: *** [/home/src/icedtea6/openjdk-ecj/control/build/linux-i586/tmp/rt-orig.jar] Error 126 make[2]: Leaving directory `/home/src/icedtea6/openjdk-ecj/jdk/make' make[1]: *** [jdk-build] Erreur 2 make[1]: quittant le r?pertoire ? /home/src/icedtea6/openjdk-ecj/control/make ? make: *** [stamps/icedtea-ecj.stamp] Erreur 2 sylvain at jupiter:/usr/src/icedtea6$ ls -lh /bin/sh lrwxrwxrwx 1 root root 4 2008-01-02 10:26 /bin/sh -> bash -- 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 Mon Aug 11 07:23:03 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Mon, 11 Aug 2008 14:23:03 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Joshua Sumali changeset ab743c774cb2 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=ab743c774cb2 description: 2008-08-11 Joshua Sumali * ChangeLog: New file. * INSTALL: Likewise. * NEWS: Likewise. * Makefile.am: Likewise. * build.xml: Likewise. * config.guess: Likewise. * config.sub: Likewise. * configure.ac: Likewise. * depcomp: Likewise. * install-sh: Likewise. * libtool: Likewise. * ltmain.sh: Likewise. * missing: Likewise. * src/org/*: Moved to src/java. * src/META-INF: Moved to src/java. * src/native/Makefile.am: New file. * makefile: Removed. * src/*.c: Moved to src/native. * src/*.h: Likewise. diffstat: 60 files changed, 22994 insertions(+), 3494 deletions(-) ChangeLog | 22 INSTALL | 1 Makefile.am | 5 build.xml | 70 config.guess | 1526 + config.sub | 1658 ++ configure.ac | 9 depcomp | 589 install-sh | 519 libtool | 7895 ++++++++++ ltmain.sh | 6930 ++++++++ makefile | 112 missing | 367 src/META-INF/services/javax.sound.sampled.spi.MixerProvider | 3 src/java/META-INF/services/javax.sound.sampled.spi.MixerProvider | 3 src/java/org/classpath/icedtea/pulseaudio/ContextEvent.java | 56 src/java/org/classpath/icedtea/pulseaudio/ContextListener.java | 44 src/java/org/classpath/icedtea/pulseaudio/EventLoop.java | 247 src/java/org/classpath/icedtea/pulseaudio/Operation.java | 56 src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 464 src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixerInfo.java | 63 src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixerProvider.java | 63 src/java/org/classpath/icedtea/pulseaudio/PulseAudioMuteControl.java | 50 src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 644 src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamMuteControl.java | 68 src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java | 66 src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java | 221 src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java | 50 src/java/org/classpath/icedtea/pulseaudio/StreamEvent.java | 58 src/java/org/classpath/icedtea/pulseaudio/StreamListener.java | 47 src/jni-common.c | 179 src/jni-common.h | 79 src/native/Makefile.am | 17 src/native/jni-common.c | 179 src/native/jni-common.h | 79 src/native/org_classpath_icedtea_pulseaudio_EventLoop.c | 269 src/native/org_classpath_icedtea_pulseaudio_Operation.c | 43 src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c | 289 src/native/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c | 60 src/native/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.c | 267 src/org/classpath/icedtea/pulseaudio/ContextEvent.java | 56 src/org/classpath/icedtea/pulseaudio/ContextListener.java | 44 src/org/classpath/icedtea/pulseaudio/EventLoop.java | 244 src/org/classpath/icedtea/pulseaudio/Operation.java | 56 src/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 477 src/org/classpath/icedtea/pulseaudio/PulseAudioMixerInfo.java | 63 src/org/classpath/icedtea/pulseaudio/PulseAudioMixerProvider.java | 63 src/org/classpath/icedtea/pulseaudio/PulseAudioMuteControl.java | 50 src/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 630 src/org/classpath/icedtea/pulseaudio/PulseAudioStreamMuteControl.java | 68 src/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java | 66 src/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java | 221 src/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java | 50 src/org/classpath/icedtea/pulseaudio/StreamEvent.java | 58 src/org/classpath/icedtea/pulseaudio/StreamListener.java | 47 src/org_classpath_icedtea_pulseaudio_EventLoop.c | 269 src/org_classpath_icedtea_pulseaudio_Operation.c | 43 src/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c | 289 src/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c | 60 src/org_classpath_icedtea_pulseaudio_PulseAudioTargetDataLine.c | 267 diffs (truncated from 26728 to 500 lines): diff -r 5c09d21c2d70 -r ab743c774cb2 ChangeLog --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ChangeLog Mon Aug 11 10:22:45 2008 -0400 @@ -0,0 +1,22 @@ +2008-08-11 Joshua Sumali + + * ChangeLog: New file. + * INSTALL: Likewise. + * NEWS: Likewise. + * Makefile.am: Likewise. + * build.xml: Likewise. + * config.guess: Likewise. + * config.sub: Likewise. + * configure.ac: Likewise. + * depcomp: Likewise. + * install-sh: Likewise. + * libtool: Likewise. + * ltmain.sh: Likewise. + * missing: Likewise. + * src/org/*: Moved to src/java. + * src/META-INF: Moved to src/java. + * src/native/Makefile.am: New file. + * makefile: Removed. + * src/*.c: Moved to src/native. + * src/*.h: Likewise. + diff -r 5c09d21c2d70 -r ab743c774cb2 INSTALL --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/INSTALL Mon Aug 11 10:22:45 2008 -0400 @@ -0,0 +1,1 @@ +No install instructions yet! diff -r 5c09d21c2d70 -r ab743c774cb2 Makefile.am --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile.am Mon Aug 11 10:22:45 2008 -0400 @@ -0,0 +1,5 @@ +SUBDIRS = src/native + +clean-local: + ant clean + diff -r 5c09d21c2d70 -r ab743c774cb2 build.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build.xml Mon Aug 11 10:22:45 2008 -0400 @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 5c09d21c2d70 -r ab743c774cb2 config.guess --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config.guess Mon Aug 11 10:22:45 2008 -0400 @@ -0,0 +1,1526 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. + +timestamp='2008-01-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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 for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi at noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; From bugzilla-daemon at icedtea.classpath.org Mon Aug 11 07:28:41 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Aug 2008 14:28:41 +0000 Subject: [Bug 181] enum issue with icedtea Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=181 ------- Comment #4 from langel at redhat.com 2008-08-11 14:28 ------- I am able to reproduce this. Looking into it. -- 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 Mon Aug 11 07:37:18 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Mon, 11 Aug 2008 10:37:18 -0400 Subject: pulseaudio build system Message-ID: <48A04E9E.7020909@redhat.com> Hi, The latest patch I committed converts the old pulseaudio build system into using Autotools for building the .so, and Ant for generating headers and creating the pulseaudio jar. Building now is just: `./configure; ant; make`. I'd like this to be just a `make`, but I can't figure out how to do this at the moment ... @Omair and Ioana: -Fresh checkouts require you to run autoreconf to generate ./configure -When new headers need to be generated, add the class names in build.xml -When new C files/headers are added, be sure to add them in src/native/Makefile.am -The .so ends up in ./src/native/.libs/libpulse-java.so right now. We should probably figure out how to put this in the pulseaudio/ directory after it's built. Josh From jsumali at redhat.com Mon Aug 11 07:43:29 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Mon, 11 Aug 2008 14:43:29 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Joshua Sumali changeset af943a0023a2 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=af943a0023a2 description: 2008-08-11 Joshua Sumali * .hgignore: Updated. diffstat: 2 files changed, 16 insertions(+) .hgignore | 12 ++++++++++++ ChangeLog | 4 ++++ diffs (30 lines): diff -r ab743c774cb2 -r af943a0023a2 .hgignore --- a/.hgignore Mon Aug 11 10:22:45 2008 -0400 +++ b/.hgignore Mon Aug 11 10:43:20 2008 -0400 @@ -8,3 +8,15 @@ org_classpath_icedtea_*.h *.log bin/* lib/* +Makefile +Makefile.in +aclocal.m4 +config.status +configure +pulseaudio-java.jar +libtool +autom4te.cache/* +src/native/.deps +src/native/.libs +src/native/*.lo +src/native/*.la diff -r ab743c774cb2 -r af943a0023a2 ChangeLog --- a/ChangeLog Mon Aug 11 10:22:45 2008 -0400 +++ b/ChangeLog Mon Aug 11 10:43:20 2008 -0400 @@ -1,3 +1,7 @@ 2008-08-11 Joshua Sumali + + * .hgignore: Updated. + 2008-08-11 Joshua Sumali * ChangeLog: New file. From jsumali at redhat.com Mon Aug 11 10:22:34 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Mon, 11 Aug 2008 17:22:34 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Joshua Sumali changeset eb66a69d6a99 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=eb66a69d6a99 description: 2008-08-11 Joshua Sumali * .hgignore: Updated. * Makefile.am: Add libpulse-java.so to clean-local. * src/native/Makefile.am: Copy libpulse-java.so to the top dir after building. diffstat: 4 files changed, 15 insertions(+), 1 deletion(-) .hgignore | 1 + ChangeLog | 7 +++++++ Makefile.am | 3 ++- src/native/Makefile.am | 5 +++++ diffs (48 lines): diff -r af943a0023a2 -r eb66a69d6a99 .hgignore --- a/.hgignore Mon Aug 11 10:43:20 2008 -0400 +++ b/.hgignore Mon Aug 11 13:22:06 2008 -0400 @@ -14,6 +14,7 @@ config.status config.status configure pulseaudio-java.jar +libpulse-java.so libtool autom4te.cache/* src/native/.deps diff -r af943a0023a2 -r eb66a69d6a99 ChangeLog --- a/ChangeLog Mon Aug 11 10:43:20 2008 -0400 +++ b/ChangeLog Mon Aug 11 13:22:06 2008 -0400 @@ -1,3 +1,10 @@ 2008-08-11 Joshua Sumali + + * .hgignore: Updated. + * Makefile.am: Add libpulse-java.so to clean-local. + * src/native/Makefile.am: Copy libpulse-java.so to the top dir after + building. + 2008-08-11 Joshua Sumali * .hgignore: Updated. diff -r af943a0023a2 -r eb66a69d6a99 Makefile.am --- a/Makefile.am Mon Aug 11 10:43:20 2008 -0400 +++ b/Makefile.am Mon Aug 11 13:22:06 2008 -0400 @@ -1,5 +1,6 @@ SUBDIRS = src/native SUBDIRS = src/native clean-local: - ant clean + ant clean ; \ + rm -f libpulse-java.so ; diff -r af943a0023a2 -r eb66a69d6a99 src/native/Makefile.am --- a/src/native/Makefile.am Mon Aug 11 10:43:20 2008 -0400 +++ b/src/native/Makefile.am Mon Aug 11 13:22:06 2008 -0400 @@ -15,3 +15,8 @@ AM_LDFLAGS = -g -Wall -Werror PLATFORM_FLAGS = -DWITH_32BIT_PLATFORM +topdir = ../.. + +all-local: $(lib_LTLIBRARIES) + cp .libs/libpulse-java.so $(topdir) + From jim at jimpick.com Sun Aug 10 22:48:01 2008 From: jim at jimpick.com (Jim Pick) Date: Sun, 10 Aug 2008 22:48:01 -0700 Subject: Icedtea/Classpath Server Downtime In-Reply-To: <489E51B7.8050506@jimpick.com> References: <489DE1C9.2060901@jimpick.com> <489E51B7.8050506@jimpick.com> Message-ID: <489FD291.5050505@jimpick.com> Jim Pick wrote: > Jim Pick wrote: >> Hi, >> >> I need to take the server down to investigate a possible failed disk in >> the software RAID. I am hoping that it's just a Linux or Xen bug. >> Also, I'd like to upgrade Xen to a more modern version if possible. >> >> I'm planning to take the server down in about 3 hours (around 2pm >> Pacific Time). Hopefully, it won't take me too long to investigate >> and/or upgrade it. >> >> There is always the possibility that things won't go well with the RAID >> or the upgrade. I only have the one server online, so if I encounter >> any big problems, please be patient as I try to figure out the best way >> to recover. Luckily, I do have recent backups. >> >> This will affect jimpick.com, kaffe.org, developer.classpath.org, >> planet.classpath.org, and icedtea.classpath.org. >> >> While the server is down, my jimpick.com/kaffe.org email addresses will >> not be working. I can still be reached at my backup email address at >> . > > The server is back now. If you see anything strange, send me an email. I'm finally done, and things should be back online. Everything has been converted to RAID1 - there isn't much disk space left, but at least the data should be safe. Sorry about all the downtime. Cheers, - Jim From jsumali at redhat.com Mon Aug 11 10:39:54 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Mon, 11 Aug 2008 17:39:54 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Joshua Sumali changeset a1efb395982d in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=a1efb395982d description: 2008-08-11 Joshua Sumali * src/native/Makefile.am: Add flags to link against pulseaudio. diffstat: 2 files changed, 6 insertions(+), 2 deletions(-) ChangeLog | 4 ++++ src/native/Makefile.am | 4 ++-- diffs (25 lines): diff -r eb66a69d6a99 -r a1efb395982d ChangeLog --- a/ChangeLog Mon Aug 11 13:22:06 2008 -0400 +++ b/ChangeLog Mon Aug 11 13:39:44 2008 -0400 @@ -1,3 +1,7 @@ 2008-08-11 Joshua Sumali + + * src/native/Makefile.am: Add flags to link against pulseaudio. + 2008-08-11 Joshua Sumali * .hgignore: Updated. diff -r eb66a69d6a99 -r a1efb395982d src/native/Makefile.am --- a/src/native/Makefile.am Mon Aug 11 13:22:06 2008 -0400 +++ b/src/native/Makefile.am Mon Aug 11 13:39:44 2008 -0400 @@ -10,8 +10,8 @@ libpulse_java_la_SOURCES = \ org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c \ org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h -AM_CFLAGS = -g -Wall -Werror $(PLATFORM_FLAGS) -AM_LDFLAGS = -g -Wall -Werror +AM_CFLAGS = -g -Wall -Werror $(PLATFORM_FLAGS) -D_REENTRANT +AM_LDFLAGS = -g -Wall -Werror -lpulse PLATFORM_FLAGS = -DWITH_32BIT_PLATFORM From jsumali at redhat.com Mon Aug 11 11:19:23 2008 From: jsumali at redhat.com (Joshua Sumali) Date: Mon, 11 Aug 2008 18:19:23 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Joshua Sumali changeset 6191e870eef3 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=6191e870eef3 description: 2008-08-11 Joshua Sumali * configure.ac: Add check for libpulse. * src/native/Makefile.am: Use flags from PKG_CHECK_MODULES. diffstat: 3 files changed, 20 insertions(+), 3 deletions(-) ChangeLog | 5 +++++ configure.ac | 14 +++++++++++++- src/native/Makefile.am | 4 ++-- diffs (50 lines): diff -r a1efb395982d -r 6191e870eef3 ChangeLog --- a/ChangeLog Mon Aug 11 13:39:44 2008 -0400 +++ b/ChangeLog Mon Aug 11 14:19:09 2008 -0400 @@ -1,3 +1,8 @@ 2008-08-11 Joshua Sumali + + * configure.ac: Add check for libpulse. + * src/native/Makefile.am: Use flags from PKG_CHECK_MODULES. + 2008-08-11 Joshua Sumali * src/native/Makefile.am: Add flags to link against pulseaudio. diff -r a1efb395982d -r 6191e870eef3 configure.ac --- a/configure.ac Mon Aug 11 13:39:44 2008 -0400 +++ b/configure.ac Mon Aug 11 14:19:09 2008 -0400 @@ -1,7 +1,19 @@ AC_INIT([pulseaudio],[0.1],[omajid at redha -AC_INIT([pulseaudio],[0.1],[omajid at redhat.com]) +AC_INIT([pulseaudio-java],[0.1],[omajid at redhat.com]) AM_INIT_AUTOMAKE AC_PROG_CC AC_PROG_LIBTOOL + +dnl Check for pulseaudio libraries. +PKG_CHECK_MODULES(LIBPULSE,libpulse,[LIBPULSE_FOUND=yes] + ,[LIBPULSE_FOUND=no]) +if test "x${LIBPULSE_FOUND}" = xno +then + AC_MSG_ERROR([Could not find pulseaudio libraries - \ + Try installing pulseaudio-libs-devel.]) +fi +AC_SUBST(LIBPULSE_CFLAGS) +AC_SUBST(LIBPULSE_LIBS) + AC_CONFIG_FILES([ Makefile src/native/Makefile diff -r a1efb395982d -r 6191e870eef3 src/native/Makefile.am --- a/src/native/Makefile.am Mon Aug 11 13:39:44 2008 -0400 +++ b/src/native/Makefile.am Mon Aug 11 14:19:09 2008 -0400 @@ -10,8 +10,8 @@ libpulse_java_la_SOURCES = \ org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c \ org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h -AM_CFLAGS = -g -Wall -Werror $(PLATFORM_FLAGS) -D_REENTRANT -AM_LDFLAGS = -g -Wall -Werror -lpulse +AM_CFLAGS = -g -Wall -Werror $(PLATFORM_FLAGS) $(LIBPULSE_CFLAGS) +AM_LDFLAGS = -g -Wall -Werror $(LIBPULSE_LIBS) PLATFORM_FLAGS = -DWITH_32BIT_PLATFORM From omajid at redhat.com Mon Aug 11 11:40:52 2008 From: omajid at redhat.com (Omair Majid) Date: Mon, 11 Aug 2008 18:40:52 +0000 Subject: changeset in /hg/pulseaudio: merged branches Message-ID: changeset 6d8250e41a44 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=6d8250e41a44 description: merged branches diffstat: 3 files changed, 20 insertions(+), 3 deletions(-) ChangeLog | 5 +++++ configure.ac | 14 +++++++++++++- src/native/Makefile.am | 4 ++-- diffs (50 lines): diff -r 3a4ea335aefc -r 6d8250e41a44 ChangeLog --- a/ChangeLog Mon Aug 11 14:34:54 2008 -0400 +++ b/ChangeLog Mon Aug 11 14:40:43 2008 -0400 @@ -1,3 +1,8 @@ 2008-08-11 Joshua Sumali + + * configure.ac: Add check for libpulse. + * src/native/Makefile.am: Use flags from PKG_CHECK_MODULES. + 2008-08-11 Joshua Sumali * src/native/Makefile.am: Add flags to link against pulseaudio. diff -r 3a4ea335aefc -r 6d8250e41a44 configure.ac --- a/configure.ac Mon Aug 11 14:34:54 2008 -0400 +++ b/configure.ac Mon Aug 11 14:40:43 2008 -0400 @@ -1,7 +1,19 @@ AC_INIT([pulseaudio],[0.1],[omajid at redha -AC_INIT([pulseaudio],[0.1],[omajid at redhat.com]) +AC_INIT([pulseaudio-java],[0.1],[omajid at redhat.com]) AM_INIT_AUTOMAKE AC_PROG_CC AC_PROG_LIBTOOL + +dnl Check for pulseaudio libraries. +PKG_CHECK_MODULES(LIBPULSE,libpulse,[LIBPULSE_FOUND=yes] + ,[LIBPULSE_FOUND=no]) +if test "x${LIBPULSE_FOUND}" = xno +then + AC_MSG_ERROR([Could not find pulseaudio libraries - \ + Try installing pulseaudio-libs-devel.]) +fi +AC_SUBST(LIBPULSE_CFLAGS) +AC_SUBST(LIBPULSE_LIBS) + AC_CONFIG_FILES([ Makefile src/native/Makefile diff -r 3a4ea335aefc -r 6d8250e41a44 src/native/Makefile.am --- a/src/native/Makefile.am Mon Aug 11 14:34:54 2008 -0400 +++ b/src/native/Makefile.am Mon Aug 11 14:40:43 2008 -0400 @@ -12,8 +12,8 @@ libpulse_java_la_SOURCES = \ org_classpath_icedtea_pulseaudio_Operation.h \ org_classpath_icedtea_pulseaudio_Operation.c -AM_CFLAGS = -g -Wall -Werror $(PLATFORM_FLAGS) -D_REENTRANT -AM_LDFLAGS = -g -Wall -Werror -lpulse +AM_CFLAGS = -g -Wall -Werror $(PLATFORM_FLAGS) $(LIBPULSE_CFLAGS) +AM_LDFLAGS = -g -Wall -Werror $(LIBPULSE_LIBS) PLATFORM_FLAGS = -DWITH_32BIT_PLATFORM From omajid at redhat.com Mon Aug 11 11:40:52 2008 From: omajid at redhat.com (Omair Majid) Date: Mon, 11 Aug 2008 18:40:52 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Omair Majid changeset 3a4ea335aefc in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=3a4ea335aefc description: 2008-08-11 Omair Majid * .classpath: fixed eclipse project settings to use src/java as the source directory * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: fixed to point to the generated .so file * src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java: same * src/native/Makefile.am: added org_classpath_icedtea_pulseaudio_Operation.{c,h} as files to be compiled * build.xml: added Operation as a class to generate header files for diffstat: 5 files changed, 5 insertions(+), 4 deletions(-) .classpath | 2 +- build.xml | 1 + src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 1 - src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java | 1 - src/native/Makefile.am | 4 +++- diffs (60 lines): diff -r a1efb395982d -r 3a4ea335aefc .classpath --- a/.classpath Mon Aug 11 13:39:44 2008 -0400 +++ b/.classpath Mon Aug 11 14:34:54 2008 -0400 @@ -1,8 +1,8 @@ - + diff -r a1efb395982d -r 3a4ea335aefc build.xml --- a/build.xml Mon Aug 11 13:39:44 2008 -0400 +++ b/build.xml Mon Aug 11 14:34:54 2008 -0400 @@ -36,6 +36,7 @@ + diff -r a1efb395982d -r 3a4ea335aefc src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Mon Aug 11 13:39:44 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Mon Aug 11 14:34:54 2008 -0400 @@ -111,7 +111,6 @@ public class PulseAudioSourceDataLine im static { try { String library = new java.io.File(".").getCanonicalPath() - + java.io.File.separatorChar + "lib" + java.io.File.separatorChar + System.mapLibraryName("pulse-java"); System.out.println(library); diff -r a1efb395982d -r 3a4ea335aefc src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java Mon Aug 11 13:39:44 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java Mon Aug 11 14:34:54 2008 -0400 @@ -14,7 +14,6 @@ public class PulseAudioStreamVolumeContr static { try { String library = new java.io.File(".").getCanonicalPath() - + java.io.File.separatorChar + "lib" + java.io.File.separatorChar + System.mapLibraryName("pulse-java"); System.out.println(library); diff -r a1efb395982d -r 3a4ea335aefc src/native/Makefile.am --- a/src/native/Makefile.am Mon Aug 11 13:39:44 2008 -0400 +++ b/src/native/Makefile.am Mon Aug 11 14:34:54 2008 -0400 @@ -8,7 +8,9 @@ libpulse_java_la_SOURCES = \ org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c \ org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.h \ org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c \ - org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h + org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h \ + org_classpath_icedtea_pulseaudio_Operation.h \ + org_classpath_icedtea_pulseaudio_Operation.c AM_CFLAGS = -g -Wall -Werror $(PLATFORM_FLAGS) -D_REENTRANT AM_LDFLAGS = -g -Wall -Werror -lpulse From langel at redhat.com Mon Aug 11 12:12:16 2008 From: langel at redhat.com (Lillian Angel) Date: Mon, 11 Aug 2008 19:12:16 +0000 Subject: changeset in /hg/icedtea6: 2008-08-11 Lillian Angel changeset bbb08c1771b2 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=bbb08c1771b2 description: 2008-08-11 Lillian Angel Fixes Bug #181 * Makefile.am: Added new patch to the list. * patches/icedtea-enum-bug-181.patch: New patch. diffstat: 3 files changed, 18 insertions(+) ChangeLog | 6 ++++++ Makefile.am | 1 + patches/icedtea-enum-bug-181.patch | 11 +++++++++++ diffs (39 lines): diff -r a86e963e785f -r bbb08c1771b2 ChangeLog --- a/ChangeLog Fri Aug 08 12:26:14 2008 -0400 +++ b/ChangeLog Mon Aug 11 15:12:08 2008 -0400 @@ -1,3 +1,9 @@ 2008-08-08 Joshua Sumali + + Fixes Bug #181 + * Makefile.am: Added new patch to the list. + * patches/icedtea-enum-bug-181.patch: New patch. + 2008-08-08 Joshua Sumali * Makefile.am: Add ALT_JAR_CMD to ICEDTEA_ENV if --with-alt-jar is used. diff -r a86e963e785f -r bbb08c1771b2 Makefile.am --- a/Makefile.am Fri Aug 08 12:26:14 2008 -0400 +++ b/Makefile.am Mon Aug 11 15:12:08 2008 -0400 @@ -500,6 +500,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-hotspot-citypeflow.patch \ patches/icedtea-alpha-fixes.patch \ patches/icedtea-alt-jar.patch \ + patches/icedtea-enum-bu-181.patch \ $(SHARK_PATCH) \ $(GCC_PATCH) \ patches/icedtea-arch.patch diff -r a86e963e785f -r bbb08c1771b2 patches/icedtea-enum-bug-181.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-enum-bug-181.patch Mon Aug 11 15:12:08 2008 -0400 @@ -0,0 +1,11 @@ +--- openjdkold/jdk/src/share/classes/sun/beans/editors/EnumEditor.java 2008-07-10 15:57:13.000000000 -0400 ++++ openjdk/jdk/src/share/classes/sun/beans/editors/EnumEditor.java 2008-08-11 15:07:05.000000000 -0400 +@@ -67,7 +67,7 @@ + } + + public void setValue( Object value ) { +- if ( ( value != null ) && ( this.type != value.getClass() ) ) { ++ if ( ( value != null ) && ! ( this.type.isInstance( value ) ) ) { + throw new IllegalArgumentException( "Unsupported value: " + value ); + } + Object oldValue; From bugzilla-daemon at icedtea.classpath.org Mon Aug 11 12:12:45 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Aug 2008 19:12:45 +0000 Subject: [Bug 181] enum issue with icedtea Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=181 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #5 from langel at redhat.com 2008-08-11 19:12 ------- I committed a patch for this. I have filed the issue upstream as well. I will post a link to the bug report when it is released. -- 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 omajid at redhat.com Mon Aug 11 13:49:32 2008 From: omajid at redhat.com (Omair Majid) Date: Mon, 11 Aug 2008 20:49:32 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Omair Majid changeset 03d5da3409ac in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=03d5da3409ac description: 2008-08-11 Omair Majid * src/java/org/classpath/icedtea/pulseaudio/EventLoop.java: fixed library path * src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java: added support for finding a DataLine with the last valid format in the list of valid formats asked for * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: added a default format for each line which will be used for doing a simple open(). spacing changes (used ctrl+shift+f in eclipse) * src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c: fixed the execption class that was being thrown incase of an incorrect sample specification (aka audio format) * unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java: added a note to explain that a test is currently failing * unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java: slightly modified the audio format tests to print out more info diffstat: 6 files changed, 129 insertions(+), 79 deletions(-) src/java/org/classpath/icedtea/pulseaudio/EventLoop.java | 12 - src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 59 +++++-- src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 83 +++++----- src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c | 11 + unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java | 10 + unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java | 33 ++- diffs (459 lines): diff -r 6d8250e41a44 -r 03d5da3409ac src/java/org/classpath/icedtea/pulseaudio/EventLoop.java --- a/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java Mon Aug 11 14:40:43 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java Mon Aug 11 16:49:26 2008 -0400 @@ -103,17 +103,15 @@ public class EventLoop implements Runnab */ static { - //try { - /*String library = new java.io.File(".").getCanonicalPath() - + java.io.File.separatorChar + "lib" + try { + String library = new java.io.File(".").getCanonicalPath() + java.io.File.separatorChar - + System.mapLibraryName("pulse-java");*/ - String library = "/home/yyz/iivan/workspace/pulseaudio/lib/libpulse-java.so"; + + System.mapLibraryName("pulse-java"); System.out.println(library); System.load(library); - /*} catch (IOException e) { + } catch (IOException e) { assert ("Loading failed".endsWith("library")); - }*/ + } } private EventLoop() { diff -r 6d8250e41a44 -r 03d5da3409ac src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Mon Aug 11 14:40:43 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Mon Aug 11 16:49:26 2008 -0400 @@ -103,14 +103,40 @@ public class PulseAudioMixer implements PulseAudioSourceDataLine sourceLine = null; sourceLine = new PulseAudioSourceDataLine(eventLoop); Line.Info sourceDataLineInfo = sourceLine.getLineInfo(); - /*if (info instanceof DataLine.Info) { - if (info.matches(sourceDataLineInfo)) { - sourceLines.add(sourceLine); - return sourceLine; - } - }*/ - - return sourceLine; + + if (DataLine.class.isAssignableFrom(info.getLineClass()) + && info instanceof DataLine.Info) { + System.out + .println("DEBUG: trying to find data line with last matching format"); + + DataLine.Info dataLineInfo = (DataLine.Info) info; + // need to find the DataLine with the last valid format + AudioFormat[] wantedFormats = dataLineInfo.getFormats(); + AudioFormat[] availableFormats = ((DataLine.Info) sourceDataLineInfo) + .getFormats(); + for (int i = wantedFormats.length - 1; i > -1; i--) { + for (AudioFormat aFormat : availableFormats) { + if (wantedFormats[i].matches(aFormat)) { + System.out.println("DEBUG: found a matching format"); + System.out.println("wanted: " + wantedFormats[i]); + System.out.println("available: " + aFormat); + sourceLine.setDefaultFormat(wantedFormats[i]); + sourceLines.add(sourceLine); + return sourceLine; + } + } + } + + System.out.println("DEBUG: no matches found"); + // no format matches, so return any line + throw new IllegalArgumentException("No matching format found"); + + } + + if (info.matches(sourceDataLineInfo)) { + sourceLines.add(sourceLine); + return sourceLine; + } // if (info.matches(_targetDataLineInfo)) { // PulseAudioTargetDataLine targetLine = new PulseAudioTargetDataLine(); @@ -118,7 +144,7 @@ public class PulseAudioMixer implements // return targetLine; // } - //throw new IllegalArgumentException(); + throw new IllegalArgumentException(); } @Override @@ -430,21 +456,24 @@ public class PulseAudioMixer implements System.out.println("got a line"); - //File soundFile = new File(new java.io.File(".").getCanonicalPath() + "/testsounds/logout.wav"); - File soundFile = new File( "/home/iivan/workspace/pulseaudio/testsounds/logout.wav"); + // File soundFile = new File(new java.io.File(".").getCanonicalPath() + + // "/testsounds/logout.wav"); + File soundFile = new File( + "/home/iivan/workspace/pulseaudio/testsounds/logout.wav"); AudioInputStream audioInputStream = AudioSystem .getAudioInputStream(soundFile); AudioFormat audioFormat = audioInputStream.getFormat(); line.open(audioFormat); line.start(); - PulseAudioStreamVolumeControl control = (PulseAudioStreamVolumeControl) line.getControl(FloatControl.Type.VOLUME); - PulseAudioStreamMuteControl mute = (PulseAudioStreamMuteControl) line.getControl(BooleanControl.Type.MUTE); + PulseAudioStreamVolumeControl control = (PulseAudioStreamVolumeControl) line + .getControl(FloatControl.Type.VOLUME); + PulseAudioStreamMuteControl mute = (PulseAudioStreamMuteControl) line + .getControl(BooleanControl.Type.MUTE); mute.setValue(true); control.setValue(40000); mute.setValue(false); System.out.println("Volume set to " + control.getValue()); - - + byte[] abData = new byte[1000]; int bytesRead = 0; diff -r 6d8250e41a44 -r 03d5da3409ac src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Mon Aug 11 14:40:43 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Mon Aug 11 16:49:26 2008 -0400 @@ -72,9 +72,10 @@ public class PulseAudioSourceDataLine im private List supportedFormats = null; private AudioFormat currentFormat = null; + private AudioFormat defaultFormat = null; private List listeners; - + private Control[] controls = new Control[2]; private PulseAudioStreamMuteControl muteControl; private PulseAudioStreamVolumeControl volumeControl; @@ -121,18 +122,10 @@ public class PulseAudioSourceDataLine im } - - - - - - public PulseAudioSourceDataLine(EventLoop eventLoop) { this.eventLoop = eventLoop; this.listeners = new ArrayList(); this.volume = 65536; - - /* * FIXME puselaudio supports any sample rate (it can covert between @@ -150,9 +143,9 @@ public class PulseAudioSourceDataLine im * * */ - + supportedFormats = new LinkedList(); - + Map properties; int[] channelSizes = new int[] { 1, 2, 5 }; @@ -165,8 +158,7 @@ public class PulseAudioSourceDataLine im // as soon as they change something // FIXME ^ int sampleSize = 8; // in bits - AudioFormat PA_SAMPLE_U8 = new AudioFormat( - Encoding.PCM_UNSIGNED, // encoding + AudioFormat PA_SAMPLE_U8 = new AudioFormat(Encoding.PCM_UNSIGNED, // encoding AudioSystem.NOT_SPECIFIED, // sample rate sampleSize, // sample size channelSize, // channels @@ -316,32 +308,31 @@ public class PulseAudioSourceDataLine im currentFormat = null; - } protected boolean isMuted() { return muted; } - + protected void setMuted(boolean value) { muted = value; } - + protected float getVolume() { return this.volume; } - + protected void setVolume(float value) { this.volume = value; - - } - + + } + public void open(AudioFormat format, int bufferSize) throws LineUnavailableException { if (isOpen) { throw new IllegalStateException("Line is already open"); } - + // ignore suggested buffer size for (AudioFormat myFormat : supportedFormats) { @@ -354,8 +345,10 @@ public class PulseAudioSourceDataLine im isOpen = true; } } - - //throw new IllegalArgumentException("invalid format"); + // no matches found + if (!isOpen) { + throw new IllegalArgumentException("Invalid format"); + } final Semaphore semaphore = new Semaphore(0); @@ -383,7 +376,7 @@ public class PulseAudioSourceDataLine im // stream"); } System.out.println(this.getClass().getName() + "stream is ready"); - + volumeControl = new PulseAudioStreamVolumeControl(this); controls[0] = volumeControl; muteControl = new PulseAudioStreamMuteControl(this); @@ -398,9 +391,12 @@ public class PulseAudioSourceDataLine im public void open() throws LineUnavailableException { // pick a random format - AudioFormat format = new AudioFormat(Encoding.PCM_UNSIGNED, 22050, 8, - 2, 2, AudioSystem.NOT_SPECIFIED, false); - open(format, DEFAULT_BUFFER_SIZE); + if (defaultFormat == null) { + defaultFormat = new AudioFormat(Encoding.PCM_UNSIGNED, 22050, 8, 2, + 2, AudioSystem.NOT_SPECIFIED, false); + } + + open(defaultFormat, DEFAULT_BUFFER_SIZE); } @Override @@ -443,16 +439,16 @@ public class PulseAudioSourceDataLine im } public void start() { - if (isPaused) { - native_resume(); - isPaused = false; - } + if (isPaused) { + native_resume(); + isPaused = false; + } /* * for(LineListener l :listeners) { l.update(new LineEvent(this, * LineEvent.Type.START, 0)); } */ - + } public void stop() { @@ -507,6 +503,14 @@ public class PulseAudioSourceDataLine im return currentFormat; } + public void setDefaultFormat(AudioFormat format) { + for (AudioFormat aFormat : supportedFormats) { + if (format.matches(aFormat)) { + defaultFormat = format; + } + } + } + public int getFramePosition() { // TODO Auto-generated method stub return 0; @@ -527,7 +531,6 @@ public class PulseAudioSourceDataLine im return 0; } - public boolean isActive() { // TODO Auto-generated method stub return false; @@ -540,7 +543,7 @@ public class PulseAudioSourceDataLine im public Control getControl(Type control) { for (int i = 0; i < controls.length; i++) { - if (controls[i].getType() == control){ + if (controls[i].getType() == control) { return controls[i]; } @@ -553,8 +556,8 @@ public class PulseAudioSourceDataLine im } public javax.sound.sampled.Line.Info getLineInfo() { - return new DataLine.Info(SourceDataLine.class, - supportedFormats.toArray(new AudioFormat[0]), 0, 100000); + return new DataLine.Info(SourceDataLine.class, supportedFormats + .toArray(new AudioFormat[0]), 0, 100000); } public boolean isControlSupported(Type control) { @@ -570,7 +573,7 @@ public class PulseAudioSourceDataLine im operation = new Operation(native_drain()); operationState = operation.getState(); } - + // FIXME need to find a way to do a wait than a busy loop while (operationState != Operation.State.Done) { synchronized (eventLoop.threadLock) { @@ -595,7 +598,7 @@ public class PulseAudioSourceDataLine im operationState = operation.getState(); } } - + operation.releaseReference(); } @@ -629,12 +632,10 @@ public class PulseAudioSourceDataLine im streamListener.update(e); } } - + protected EventLoop getEventLoop() { return this.eventLoop; } - - public long getStreamPointer() { return streamPointer; diff -r 6d8250e41a44 -r 03d5da3409ac src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c --- a/src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Mon Aug 11 14:40:43 2008 -0400 +++ b/src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Mon Aug 11 16:49:26 2008 -0400 @@ -136,7 +136,7 @@ JNIEXPORT void JNICALL Java_org_classpat sample_spec.format = PA_SAMPLE_S32LE; } else { printf("error in open: encoding is : %s\n", encoding); - throwByName(env, "IllegalArgumentException", "Invalid format"); + throwByName(env, "java/lang/IllegalArgumentException", "Invalid format"); /* clean up */ free(java_context); (*env)->DeleteGlobalRef(env, obj); @@ -144,11 +144,18 @@ JNIEXPORT void JNICALL Java_org_classpat return; } + sample_spec.rate = sampleRate; sample_spec.channels = channels; + printf("sample_spec.rate = %d\n", sample_spec.rate); + printf("sample_spec.channels = %d\n", sample_spec.channels); + + + if ( !pa_sample_spec_valid(&sample_spec)) { - throwByName(env, "IllegalArgumentException", "Invalid format"); + printf("error: invalid format\n"); + throwByName(env, "java/lang/IllegalArgumentException", "Invalid format"); /* clean up */ free(java_context); (*env)->DeleteGlobalRef(env, obj); diff -r 6d8250e41a44 -r 03d5da3409ac unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java --- a/unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java Mon Aug 11 14:40:43 2008 -0400 +++ b/unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java Mon Aug 11 16:49:26 2008 -0400 @@ -172,6 +172,16 @@ public class PulseAudioMixerTest { public void testSourceLinesOpenAndClose() throws LineUnavailableException { System.out.println("This test checks if source lines open and close"); selectedMixer.open(); + + + /* + * FIXME + * This test currently fails. The mixer returns information about the line + * which leaves a lot of things as NOT_SPECIFIED + * when using that to do a get line, things match, and the line returned + * still has a few parameters as NOT_SPECIFIED and doing an open() on that fails + * + */ Line.Info allLineInfo[] = selectedMixer.getSourceLineInfo(); for (Line.Info lineInfo : allLineInfo) { SourceDataLine sourceDataLine = (SourceDataLine) selectedMixer diff -r 6d8250e41a44 -r 03d5da3409ac unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java --- a/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Mon Aug 11 14:40:43 2008 -0400 +++ b/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Mon Aug 11 16:49:26 2008 -0400 @@ -106,24 +106,29 @@ public class PulseSourceDataLineTest { @Test public void testFindLineWithFormat() throws LineUnavailableException { + System.out.println("This test tries to find a line with a valid format"); + AudioFormat wantedFormat = new AudioFormat( + AudioFormat.Encoding.PCM_UNSIGNED, 44100f, 8, 1, 1, 10, true); + System.out.println(wantedFormat); + SourceDataLine line = (SourceDataLine) mixer.getLine(new DataLine.Info( + SourceDataLine.class, wantedFormat)); + line.open(); + System.out.println(line.getFormat()); + + } + + @Test(expected = IllegalArgumentException.class) + public void testFindLineWithWrongFormat() throws LineUnavailableException { + System.out + .println("This test tries to acquire a line with incorrect format spec"); SourceDataLine line = (SourceDataLine) mixer.getLine(new DataLine.Info( SourceDataLine.class, new AudioFormat( - AudioFormat.Encoding.PCM_UNSIGNED, 44100, 8, 1, 1, 10, - true))); + AudioFormat.Encoding.PCM_UNSIGNED, 44100, 10000, 1, 13, + 10, true))); line.open(); } - @Test (expected = IllegalArgumentException.class) - public void testFindLineWithWrongFormat() throws LineUnavailableException { - SourceDataLine line = (SourceDataLine) mixer.getLine(new DataLine.Info( - SourceDataLine.class, new AudioFormat( - AudioFormat.Encoding.PCM_UNSIGNED, 44100, 100000, 1, 1, 10, - true))); - line.open(); - - } - @Test public void testVolumeAndMute() throws Exception { Mixer.Info mixerInfos[] = AudioSystem.getMixerInfo(); @@ -153,10 +158,10 @@ public class PulseSourceDataLineTest { .getControl(FloatControl.Type.VOLUME); PulseAudioStreamMuteControl mute = (PulseAudioStreamMuteControl) line .getControl(BooleanControl.Type.MUTE); - + mute.setValue(true); volume.setValue(40000); - + mute.setValue(false); byte[] abData = new byte[1000]; From omajid at redhat.com Mon Aug 11 14:38:38 2008 From: omajid at redhat.com (Omair Majid) Date: Mon, 11 Aug 2008 21:38:38 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Omair Majid changeset ffc11c4c5c53 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=ffc11c4c5c53 description: 2008-08-11 Omair Majid * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: replaced volume value with constant * src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java: added a check in setValue() for a valid value * src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java: added constants for min and max value * unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java: modified the test to use the constants diffstat: 4 files changed, 13 insertions(+), 3 deletions(-) src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 2 +- src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java | 7 +++++++ src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java | 5 ++++- unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java | 2 +- diffs (66 lines): diff -r e77e418081f7 -r ffc11c4c5c53 src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Mon Aug 11 16:55:35 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Mon Aug 11 17:30:11 2008 -0400 @@ -125,7 +125,7 @@ public class PulseAudioSourceDataLine im public PulseAudioSourceDataLine(EventLoop eventLoop) { this.eventLoop = eventLoop; this.listeners = new ArrayList(); - this.volume = 65536; + this.volume = PulseAudioVolumeControl.MAX_VOLUME; /* * FIXME puselaudio supports any sample rate (it can covert between diff -r e77e418081f7 -r ffc11c4c5c53 src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java Mon Aug 11 16:55:35 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java Mon Aug 11 17:30:11 2008 -0400 @@ -6,7 +6,10 @@ import org.classpath.icedtea.pulseaudio. import org.classpath.icedtea.pulseaudio.PulseAudioVolumeControl; public class PulseAudioStreamVolumeControl extends PulseAudioVolumeControl { + + @SuppressWarnings("unused") private long streamPointer; + private EventLoop eventLoop; private PulseAudioSourceDataLine line; @@ -31,6 +34,10 @@ public class PulseAudioStreamVolumeContr } public synchronized void setValue(float newValue) { + if ( newValue > PulseAudioVolumeControl.MAX_VOLUME || newValue < PulseAudioStreamVolumeControl.MIN_VOLUME) { + throw new IllegalArgumentException("invalid value"); + } + if(!line.isMuted()) { setStreamVolume(newValue); } diff -r e77e418081f7 -r ffc11c4c5c53 src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java Mon Aug 11 16:55:35 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java Mon Aug 11 17:30:11 2008 -0400 @@ -41,9 +41,12 @@ import javax.sound.sampled.FloatControl; import javax.sound.sampled.FloatControl; abstract class PulseAudioVolumeControl extends FloatControl { + + public static final int MAX_VOLUME = 65536; + public static final int MIN_VOLUME = 0; protected PulseAudioVolumeControl(PulseAudioSourceDataLine line) { - super(FloatControl.Type.VOLUME, 0, 65536, 1, -1, line.getVolume(), "pulseaudio units", "Volume Off", "Default Volume", "Full Volume"); + super(FloatControl.Type.VOLUME, MIN_VOLUME, MAX_VOLUME, 1, -1, line.getVolume(), "pulseaudio units", "Volume Off", "Default Volume", "Full Volume"); } diff -r e77e418081f7 -r ffc11c4c5c53 unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java --- a/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Mon Aug 11 16:55:35 2008 -0400 +++ b/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Mon Aug 11 17:30:11 2008 -0400 @@ -160,7 +160,7 @@ public class PulseSourceDataLineTest { .getControl(BooleanControl.Type.MUTE); mute.setValue(true); - volume.setValue(40000); + volume.setValue(PulseAudioStreamVolumeControl.MAX_VOLUME); mute.setValue(false); From omajid at redhat.com Mon Aug 11 14:38:38 2008 From: omajid at redhat.com (Omair Majid) Date: Mon, 11 Aug 2008 21:38:38 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Omair Majid changeset 686f9e8f1803 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=686f9e8f1803 description: 2008-08-11 Omair Majid * src/java/org/classpath/icedtea/pulseaudio/Operation.java: synchronized the native calls; start on a function to wait for operation to complete diffstat: 1 file changed, 37 insertions(+), 6 deletions(-) src/java/org/classpath/icedtea/pulseaudio/Operation.java | 43 ++++++++++++-- diffs (82 lines): diff -r ffc11c4c5c53 -r 686f9e8f1803 src/java/org/classpath/icedtea/pulseaudio/Operation.java --- a/src/java/org/classpath/icedtea/pulseaudio/Operation.java Mon Aug 11 17:30:11 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/Operation.java Mon Aug 11 17:38:17 2008 -0400 @@ -1,4 +1,6 @@ package org.classpath.icedtea.pulseaudio package org.classpath.icedtea.pulseaudio; + +import java.io.IOException; /* * Encapsulates a pa_operation object @@ -12,9 +14,22 @@ public class Operation { public class Operation { long operationPointer; + EventLoop eventLoop; public enum State { Running, Done, Cancelled, + } + + static { + try { + String library = new java.io.File(".").getCanonicalPath() + + java.io.File.separatorChar + + System.mapLibraryName("pulse-java"); + System.out.println(library); + System.load(library); + } catch (IOException e) { + assert ("Loading failed".endsWith("library")); + } } private native void native_ref(); @@ -25,21 +40,29 @@ public class Operation { public Operation(long operationPointer) { this.operationPointer = operationPointer; + this.eventLoop = EventLoop.getEventLoop(); } public void addReference() { - assert(operationPointer != 0); - native_ref(); + assert (operationPointer != 0); + synchronized (eventLoop.threadLock) { + native_ref(); + } } public void releaseReference() { - assert(operationPointer!= 0); - native_unref(); + assert (operationPointer != 0); + synchronized (eventLoop.threadLock) { + native_unref(); + } } public State getState() { - assert(operationPointer!= 0); - int state = native_get_state(); + assert (operationPointer != 0); + int state; + synchronized (eventLoop.threadLock) { + state = native_get_state(); + } switch (state) { case 0: return State.Running; @@ -53,4 +76,12 @@ public class Operation { } + public void waitForCompletion() { + throw new RuntimeException("not implemented"); + + synchronized (eventLoop.threadLock) { + eventLoop.threadLock.wait(); + } + + } } From omajid at redhat.com Mon Aug 11 14:38:38 2008 From: omajid at redhat.com (Omair Majid) Date: Mon, 11 Aug 2008 21:38:38 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Omair Majid changeset e77e418081f7 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=e77e418081f7 description: 2008-08-11 Omair Majid * libtool: removed file from version control diffstat: 1 file changed, 7895 deletions(-) libtool | 7895 --------------------------------------------------------------- diffs (truncated from 7899 to 500 lines): diff -r 03d5da3409ac -r e77e418081f7 libtool --- a/libtool Mon Aug 11 16:49:26 2008 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7895 +0,0 @@ -#! /bin/sh - -# libtoolT - Provide generalized library-building support services. -# Generated automatically by (GNU pulseaudio 0.1) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program 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 for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A sed program that does not truncate output. -SED="/bin/sed" - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="/bin/sed -e 1s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# The names of the tagged configurations supported by this script. -available_tags=" CXX F77" - -# ### BEGIN LIBTOOL CONFIG - -# Libtool was configured on host toddy: - -# Shell to use when invoking shell scripts. -SHELL="/bin/sh" - -# Whether or not to build shared libraries. -build_libtool_libs=yes - -# Whether or not to build static libraries. -build_old_libs=yes - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=no - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=no - -# Whether or not to optimize for fast installation. -fast_install=yes - -# The host system. -host_alias= -host=i686-pc-linux-gnu -host_os=linux-gnu - -# The build system. -build_alias= -build=i686-pc-linux-gnu -build_os=linux-gnu - -# An echo program that does not interpret backslashes. -echo="echo" - -# The archiver. -AR="ar" -AR_FLAGS="cru" - -# A C compiler. -LTCC="gcc" - -# LTCC compiler flags. -LTCFLAGS="-g -O2" - -# A language-specific compiler. -CC="gcc" - -# Is the compiler the GNU C compiler? -with_gcc=yes - -# An ERE matcher. -EGREP="/bin/grep -E" - -# The linker used to build libraries. -LD="/usr/bin/ld" - -# Whether we need hard or soft links. -LN_S="ln -s" - -# A BSD-compatible nm program. -NM="/usr/bin/nm -B" - -# A symbol stripping program -STRIP="strip" - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=file - -# Used on cygwin: DLL creation program. -DLLTOOL="dlltool" - -# Used on cygwin: object dumper. -OBJDUMP="objdump" - -# Used on cygwin: assembler. -AS="as" - -# The name of the directory that contains temporary libtool files. -objdir=.libs - -# How to create reloadable object files. -reload_flag=" -r" -reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" - -# How to pass a linker flag through the compiler. -wl="-Wl," - -# Object file suffix (normally "o"). -objext="o" - -# Old archive suffix (normally "a"). -libext="a" - -# Shared library suffix (normally ".so"). -shrext_cmds='.so' - -# Executable file suffix (normally ""). -exeext="" - -# Additional compiler flags for building library objects. -pic_flag=" -fPIC -DPIC" -pic_mode=default - -# What is the maximum length of a command? -max_cmd_len=1966080 - -# Does compiler simultaneously support -c and -o options? -compiler_c_o="yes" - -# Must we lock files when doing compilation? -need_locks="no" - -# Do we need the lib prefix for modules? -need_lib_prefix=no - -# Do we need a version for libraries? -need_version=no - -# Whether dlopen is supported. -dlopen_support=unknown - -# Whether dlopen of programs is supported. -dlopen_self=unknown - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=unknown - -# Compiler flag to prevent dynamic linking. -link_static_flag="-static" - -# Compiler flag to turn off builtin functions. -no_builtin_flag=" -fno-builtin" - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec="\${wl}--export-dynamic" - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive" - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec="" - -# Library versioning type. -version_type=linux - -# Format of library name prefix. -libname_spec="lib\$name" - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" - -# The coded name of the library, if different from the real name. -soname_spec="\${libname}\${release}\${shared_ext}\$major" - -# Commands used to build and install an old-style archive. -RANLIB="ranlib" -old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib" -old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib" -old_postuninstall_cmds="" - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds="" - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds="" - -# Commands used to build and install a shared archive. -archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib" -archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~ - cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~ - \$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~ - \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib" -postinstall_cmds="" -postuninstall_cmds="" - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds="" -module_expsym_cmds="" - -# Commands to strip libraries. -old_striplib="strip --strip-debug" -striplib="strip --strip-unneeded" - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects="" - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects="" - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps="" - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps="" - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path="" - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method="pass_all" - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd="\$MAGIC_CMD" - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag="" - -# Flag that forces no undefined symbols. -no_undefined_flag="" - -# Commands used to finish a libtool library installation in a directory. -finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir" - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval="" - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'" - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'" - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (lt_ptr) \\&\\2},/p'" - -# This is the shared library runtime path variable. -runpath_var=LD_RUN_PATH - -# This is the shared library path variable. -shlibpath_var=LD_LIBRARY_PATH - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=no - -# How to hardcode a shared library path into an executable. -hardcode_action=immediate - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=yes - -# Flag to hardcode $libdir into a binary during linking. -# This must work even if $libdir does not exist. -hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir" - -# If ld is used when linking, flag to hardcode $libdir into -# a binary during linking. This must work even if $libdir does -# not exist. -hardcode_libdir_flag_spec_ld="" - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator="" - -# Set to yes if using DIR/libNAME during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=no - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=no - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=unsupported - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=no - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=unknown - -# Compile-time system search path for libraries -sys_lib_search_path_spec="/usr/lib /lib /usr/local/lib" - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec="/usr/lib /lib /usr/lib/mysql /usr/lib/qt-3.3/lib /usr/lib/xulrunner-1.9 " - -# Fix the shell variable $srcfile for the compiler. -fix_srcfile_path="" - -# Set to yes if exported symbols are required. -always_export_symbols=no - -# The commands to list exported symbols. -export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds="" - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms="_GLOBAL_OFFSET_TABLE_" - -# Symbols that must always be exported. -include_expsyms="" - -# ### END LIBTOOL CONFIG - -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun configure. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program 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 for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -basename="s,^.*/,,g" - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" - -# The name of this program: -progname=`echo "$progpath" | $SED $basename` -modename="$progname" - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 - -PROGRAM=ltmain.sh -PACKAGE=libtool -VERSION=1.5.24 -TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)" - -# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# Check that we have a working $echo. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit $EXIT_FAILURE -fi - -# Global variables. -mode=$default_mode -nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= -execute_dlfiles= From doko at ubuntu.com Mon Aug 11 15:07:57 2008 From: doko at ubuntu.com (Matthias Klose) Date: Tue, 12 Aug 2008 00:07:57 +0200 Subject: changeset in /hg/icedtea6: 2008-08-11 Lillian Angel References: Message-ID: <48A0B83D.1080404@ubuntu.com> Lillian Angel schrieb: > patches/icedtea-alpha-fixes.patch \ > patches/icedtea-alt-jar.patch \ > + patches/icedtea-enum-bu-181.patch \ typo From twisti at complang.tuwien.ac.at Tue Aug 12 00:37:20 2008 From: twisti at complang.tuwien.ac.at (Christian Thalinger) Date: Tue, 12 Aug 2008 07:37:20 +0000 Subject: changeset in /hg/icedtea6: 2008-08-12 Christian Thalinger changeset 7cd4d87f69f2 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=7cd4d87f69f2 description: 2008-08-12 Christian Thalinger * Makefile.am (ICEDTEA_PATCHES): Fixed typo. diffstat: 2 files changed, 5 insertions(+), 1 deletion(-) ChangeLog | 4 ++++ Makefile.am | 2 +- diffs (23 lines): diff -r bbb08c1771b2 -r 7cd4d87f69f2 ChangeLog --- a/ChangeLog Mon Aug 11 15:12:08 2008 -0400 +++ b/ChangeLog Tue Aug 12 09:37:13 2008 +0200 @@ -1,3 +1,7 @@ 2008-08-11 Lillian Angel + + * Makefile.am (ICEDTEA_PATCHES): Fixed typo. + 2008-08-11 Lillian Angel Fixes Bug #181 diff -r bbb08c1771b2 -r 7cd4d87f69f2 Makefile.am --- a/Makefile.am Mon Aug 11 15:12:08 2008 -0400 +++ b/Makefile.am Tue Aug 12 09:37:13 2008 +0200 @@ -500,7 +500,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-hotspot-citypeflow.patch \ patches/icedtea-alpha-fixes.patch \ patches/icedtea-alt-jar.patch \ - patches/icedtea-enum-bu-181.patch \ + patches/icedtea-enum-bug-181.patch \ $(SHARK_PATCH) \ $(GCC_PATCH) \ patches/icedtea-arch.patch From twisti at complang.tuwien.ac.at Tue Aug 12 00:38:13 2008 From: twisti at complang.tuwien.ac.at (Christian Thalinger) Date: Tue, 12 Aug 2008 09:38:13 +0200 Subject: changeset in /hg/icedtea6: 2008-08-11 Lillian Angel References: <48A0B83D.1080404@ubuntu.com> Message-ID: <1218526693.15857.10.camel@cthalinger> On Tue, 2008-08-12 at 00:07 +0200, Matthias Klose wrote: > Lillian Angel schrieb: > > patches/icedtea-alpha-fixes.patch \ > > patches/icedtea-alt-jar.patch \ > > + patches/icedtea-enum-bu-181.patch \ > > typo I fixed it: http://icedtea.classpath.org/hg/icedtea6/rev/7cd4d87f69f2 - twisti From gbenson at redhat.com Tue Aug 12 02:35:28 2008 From: gbenson at redhat.com (Gary Benson) Date: Tue, 12 Aug 2008 09:35:28 +0000 Subject: changeset in /hg/icedtea6: 2008-08-12 Gary Benson changeset e8c5220a41f5 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=e8c5220a41f5 description: 2008-08-12 Gary Benson * patches/icedtea-shark.patch: Updated to latest Shark. * ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp: Likewise. * ports/hotspot/src/share/vm/includeDB_shark: Likewise. * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkBlock.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkBlock.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCompiler.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkFunction.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkFunction.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkState.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkState.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkType.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkType.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkValue.hpp: Likewise. * ports/hotspot/src/share/vm/shark/shark_globals.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp: New file. * ports/hotspot/src/share/vm/shark/sharkConstantPool.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkMethod.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkMonitor.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkMonitor.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp: Likewise. diffstat: 35 files changed, 2671 insertions(+), 598 deletions(-) ChangeLog | 37 patches/icedtea-shark.patch | 30 ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp | 12 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 21 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp | 15 ports/hotspot/src/cpu/zero/vm/frame_zero.hpp | 4 ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp | 32 ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp | 11 ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp | 21 ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp | 27 ports/hotspot/src/cpu/zero/vm/stack_zero.hpp | 3 ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp | 2 ports/hotspot/src/share/vm/includeDB_shark | 58 + ports/hotspot/src/share/vm/shark/llvmHeaders.hpp | 20 ports/hotspot/src/share/vm/shark/sharkBlock.cpp | 815 ++++++++++++---- ports/hotspot/src/share/vm/shark/sharkBlock.hpp | 74 - ports/hotspot/src/share/vm/shark/sharkBuilder.cpp | 162 +-- ports/hotspot/src/share/vm/shark/sharkBuilder.hpp | 185 ++- ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 172 ++- ports/hotspot/src/share/vm/shark/sharkCompiler.hpp | 30 ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp | 156 +++ ports/hotspot/src/share/vm/shark/sharkConstantPool.hpp | 70 + ports/hotspot/src/share/vm/shark/sharkFunction.cpp | 136 ++ ports/hotspot/src/share/vm/shark/sharkFunction.hpp | 152 ++ ports/hotspot/src/share/vm/shark/sharkMethod.hpp | 91 + ports/hotspot/src/share/vm/shark/sharkMonitor.cpp | 154 +++ ports/hotspot/src/share/vm/shark/sharkMonitor.hpp | 92 + ports/hotspot/src/share/vm/shark/sharkRuntime.cpp | 209 ++++ ports/hotspot/src/share/vm/shark/sharkRuntime.hpp | 112 ++ ports/hotspot/src/share/vm/shark/sharkState.cpp | 194 +++ ports/hotspot/src/share/vm/shark/sharkState.hpp | 32 ports/hotspot/src/share/vm/shark/sharkType.cpp | 41 ports/hotspot/src/share/vm/shark/sharkType.hpp | 30 ports/hotspot/src/share/vm/shark/sharkValue.hpp | 43 ports/hotspot/src/share/vm/shark/shark_globals.hpp | 26 diffs (truncated from 4551 to 500 lines): diff -r 7cd4d87f69f2 -r e8c5220a41f5 ChangeLog --- a/ChangeLog Tue Aug 12 09:37:13 2008 +0200 +++ b/ChangeLog Tue Aug 12 05:35:18 2008 -0400 @@ -1,3 +1,40 @@ 2008-08-12 Christian Thalinger + + * patches/icedtea-shark.patch: Updated to latest Shark. + * ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp: Likewise. + * ports/hotspot/src/share/vm/includeDB_shark: Likewise. + * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBlock.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBlock.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCompiler.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkFunction.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkFunction.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkState.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkState.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkType.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkType.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkValue.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/shark_globals.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp: New file. + * ports/hotspot/src/share/vm/shark/sharkConstantPool.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkMethod.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkMonitor.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkMonitor.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp: Likewise. + 2008-08-12 Christian Thalinger * Makefile.am (ICEDTEA_PATCHES): Fixed typo. diff -r 7cd4d87f69f2 -r e8c5220a41f5 patches/icedtea-shark.patch --- a/patches/icedtea-shark.patch Tue Aug 12 09:37:13 2008 +0200 +++ b/patches/icedtea-shark.patch Tue Aug 12 05:35:18 2008 -0400 @@ -176,13 +176,16 @@ diff -ru openjdk/hotspot/src/share/vm/oo diff -ru openjdk/hotspot/src/share/vm/oops/methodOop.cpp openjdk/hotspot/src/share/vm/oops/methodOop.cpp --- openjdk/hotspot/src/share/vm/oops/methodOop.cpp 2008-06-20 10:22:11.000000000 +0100 +++ openjdk/hotspot/src/share/vm/oops/methodOop.cpp 2008-04-15 10:52:44.000000000 +0100 -@@ -733,7 +733,11 @@ +@@ -730,10 +730,14 @@ void methodOopDesc::set_code(methodHandl + } + + OrderAccess::storestore(); ++#ifdef SHARK ++ mh->_from_interpreted_entry = SharkMethod::mark(code->instructions_begin()); ++#else mh->_from_compiled_entry = code->verified_entry_point(); OrderAccess::storestore(); // Instantly compiled code can execute. -+#ifdef SHARK -+ mh->_from_interpreted_entry = *(address *) code->instructions_begin(); -+#else mh->_from_interpreted_entry = mh->get_i2c_entry(); +#endif // SHARK @@ -281,3 +284,22 @@ diff -ru openjdk/hotspot/src/share/vm/ru #endif // TIERED #ifndef HOTSPOT_VM_DISTRO +diff -r ef3bb05d21d5 openjdk/hotspot/src/share/vm/code/nmethod.cpp +--- openjdk/hotspot/src/share/vm/code/nmethod.cpp Fri Aug 08 11:17:59 2008 +0100 ++++ openjdk/hotspot/src/share/vm/code/nmethod.cpp Fri Aug 08 11:35:04 2008 +0100 +@@ -1453,6 +1453,7 @@ void nmethod::oops_do(OopClosure* f) { + // Method that knows how to preserve outgoing arguments at call. This method must be + // called with a frame corresponding to a Java invoke + void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) { ++#ifndef SHARK + if (!method()->is_native()) { + SimpleScopeDesc ssd(this, fr.pc()); + Bytecode_invoke* call = Bytecode_invoke_at(ssd.method(), ssd.bci()); +@@ -1460,6 +1461,7 @@ void nmethod::preserve_callee_argument_o + symbolOop signature = call->signature(); + fr.oops_compiled_arguments_do(signature, is_static, reg_map, f); + } ++#endif // !SHARK + } + + diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp Tue Aug 12 05:35:18 2008 -0400 @@ -51,6 +51,18 @@ class MacroAssembler : public Assembler void align(int modulus); void bang_stack_with_offset(int offset); + +#ifdef SHARK + public: + void emit_zero_byte() + { + emit_byte(0); + } + void emit_intptr(intptr_t x) + { + emit_address((address) x); + } +#endif // SHARK }; #ifdef ASSERT diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Aug 12 05:35:18 2008 -0400 @@ -85,8 +85,7 @@ void CppInterpreter::normal_entry(method stack->set_sp(istate->stack() + 1); // Make the call - address entry_point = istate->callee_entry_point(); - ((Interpreter::method_entry_t) entry_point) (method, THREAD); + Interpreter::invoke_method(method, istate->callee_entry_point(), THREAD); fixup_after_potential_safepoint(); // Convert the result @@ -623,11 +622,13 @@ address InterpreterGenerator::generate_a address InterpreterGenerator::generate_native_entry(bool synchronized) { + assert (synchronized == false, "should be"); return (address) CppInterpreter::native_entry; } address InterpreterGenerator::generate_normal_entry(bool synchronized) { + assert (synchronized == false, "should be"); return (address) CppInterpreter::normal_entry; } @@ -635,14 +636,10 @@ address AbstractInterpreterGenerator::ge AbstractInterpreter::MethodKind kind) { address entry_point = NULL; - bool synchronized = false; switch (kind) { case Interpreter::zerolocals: - break; - case Interpreter::zerolocals_synchronized: - synchronized = true; break; case Interpreter::native: @@ -679,10 +676,14 @@ address AbstractInterpreterGenerator::ge ShouldNotReachHere(); } - if (entry_point) - return entry_point; - - return ((InterpreterGenerator*)this)->generate_normal_entry(false); + if (entry_point == NULL) + entry_point = ((InterpreterGenerator*)this)->generate_normal_entry(false); + +#ifdef SHARK + assert(!SharkMethod::is_shark_method(entry_point), "shouldn't be"); +#endif // SHARK + + return entry_point; } InterpreterGenerator::InterpreterGenerator(StubQueue* code) diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Tue Aug 12 05:35:18 2008 -0400 @@ -26,8 +26,6 @@ #include "incls/_precompiled.incl" #include "incls/_frame_zero.cpp.incl" -intptr_t frame::shark_dummy_bcx = 0; - #ifdef ASSERT void RegisterMap::check_location_valid() { @@ -37,8 +35,7 @@ void RegisterMap::check_location_valid() bool frame::is_interpreted_frame() const { - return zeroframe()->is_interpreter_frame() || - zeroframe()->is_shark_frame(); + return zeroframe()->is_interpreter_frame(); } frame frame::sender_for_entry_frame(RegisterMap *map) const @@ -57,6 +54,11 @@ frame frame::sender_for_interpreter_fram return frame(sender_sp()); } +frame frame::sender_for_compiled_frame(RegisterMap *map) const +{ + return frame(sender_sp()); +} + frame frame::sender(RegisterMap* map) const { // Default is not to follow arguments; the various @@ -68,6 +70,11 @@ frame frame::sender(RegisterMap* map) co if (is_interpreted_frame()) return sender_for_interpreter_frame(map); + + assert(_cb == CodeCache::find_blob(pc()),"Must be the same"); + if (_cb != NULL) { + return sender_for_compiled_frame(map); + } Unimplemented(); } diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/frame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Tue Aug 12 05:35:18 2008 -0400 @@ -37,7 +37,6 @@ public: // Constructors frame(intptr_t* sp); - frame(intptr_t* sp, address pc); // accessors for the instance variables intptr_t* fp() const @@ -70,6 +69,3 @@ assert(zeroframe()->is_shark_frame(), "must be"); return (SharkFrame *) zeroframe(); } - - private: - static intptr_t shark_dummy_bcx; diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Tue Aug 12 05:35:18 2008 -0400 @@ -40,11 +40,25 @@ inline frame::frame(intptr_t* sp) inline frame::frame(intptr_t* sp) { _sp = sp; - if (zeroframe()->is_entry_frame()) + switch (zeroframe()->type()) { + case ZeroFrame::ENTRY_FRAME: _pc = StubRoutines::call_stub_return_pc(); - else + _cb = NULL; + break; + + case ZeroFrame::INTERPRETER_FRAME: _pc = NULL; - _cb = NULL; + _cb = NULL; + break; + + case ZeroFrame::SHARK_FRAME: + _pc = zero_sharkframe()->pc(); + _cb = CodeCache::find_blob(pc()); + break; + + default: + ShouldNotReachHere(); + } _deopt_state = not_deoptimized; } @@ -73,10 +87,7 @@ inline intptr_t** frame::interpreter_fra inline intptr_t* frame::interpreter_frame_bcx_addr() const { - if (zeroframe()->is_shark_frame()) - return &shark_dummy_bcx; - else - return (intptr_t*) &(get_interpreterState()->_bcp); + return (intptr_t*) &(get_interpreterState()->_bcp); } inline constantPoolCacheOop* frame::interpreter_frame_cache_addr() const @@ -86,10 +97,7 @@ inline constantPoolCacheOop* frame::inte inline methodOop* frame::interpreter_frame_method_addr() const { - if (zeroframe()->is_shark_frame()) - return zero_sharkframe()->method_addr(); - else - return &(get_interpreterState()->_method); + return &(get_interpreterState()->_method); } inline intptr_t* frame::interpreter_frame_mdx_addr() const @@ -154,5 +162,5 @@ inline intptr_t* frame::entry_frame_argu inline intptr_t* frame::unextended_sp() const { - Unimplemented(); + return zero_sharkframe()->unextended_sp(); } diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp Tue Aug 12 05:35:18 2008 -0400 @@ -25,6 +25,17 @@ public: typedef void (*method_entry_t)(methodOop method, TRAPS); + + static void invoke_method(methodOop method, address entry_point, TRAPS) + { +#ifdef SHARK + if (SharkMethod::is_shark_method(entry_point)) { + SharkMethod::get(entry_point)->invoke(method, THREAD); + return; + } +#endif // SHARK + ((method_entry_t) entry_point) (method, THREAD); + } public: static int expr_index_at(int i) diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp Tue Aug 12 05:35:18 2008 -0400 @@ -28,9 +28,12 @@ // | stack slot n-1 | low addresses // | ... | // | stack slot 0 | -// | monitor 0 (maybe) | +// | monitor m-1 | // | ... | +// | monitor 0 | // | method | +// | unextended_sp | +// | pc | // | frame_type | // | next_frame | high addresses // +--------------------+ ------------------ @@ -48,17 +51,25 @@ class SharkFrame : public ZeroFrame { protected: enum Layout { - method_off = jf_header_words, + pc_off = jf_header_words, + unextended_sp_off, + method_off, header_words }; public: - methodOop* method_addr() const + address pc() const { - return (methodOop *) addr_of_word(method_off); + return (address) value_of_word(pc_off); } + + intptr_t* unextended_sp() const + { + return (intptr_t *) value_of_word(unextended_sp_off); + } + methodOop method() const { - return *method_addr(); + return (methodOop) value_of_word(method_off); } }; diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp Tue Aug 12 05:35:18 2008 -0400 @@ -101,6 +101,7 @@ class ZeroStackPrinter { if (frame->is_interpreter_frame()) { interpreterState istate = ((InterpreterFrame *) frame)->interpreter_state(); + intptr_t *monitor_base = (intptr_t *) istate->monitor_base(); if (addr >= (intptr_t *) istate) { field = istate->name_of_field_at_address((address) addr); if (field) { @@ -116,6 +117,24 @@ class ZeroStackPrinter { } else if (addr == (intptr_t *) istate) { field = "(vtable for istate)"; + } + } + else if (addr >= istate->stack_base() && addr < monitor_base) { + int monitor_size = frame::interpreter_frame_monitor_size(); + int last_index = + (monitor_base - istate->stack_base()) / monitor_size - 1; + int index = + last_index - (addr - istate->stack_base()) / monitor_size; + intptr_t monitor = (intptr_t) (istate->monitor_base() - 1 - index); + intptr_t offset = (intptr_t) addr - monitor; + + if (offset == BasicObjectLock::obj_offset_in_bytes()) { + snprintf(_buf, _buflen, "monitor[%d]->_obj", index); + field = _buf; + } + else if (offset == BasicObjectLock::lock_offset_in_bytes()) { + snprintf(_buf, _buflen, "monitor[%d]->_lock", index); + field = _buf; } } else if (addr < istate->stack_base()) { @@ -164,7 +183,13 @@ class ZeroStackPrinter { } } if (frame->is_shark_frame()) { - if (word == SharkFrame::method_off) { + if (word == SharkFrame::pc_off) { + field = "pc"; + } + else if (word == SharkFrame::unextended_sp_off) { + field = "unextended_sp"; + } + else if (word == SharkFrame::method_off) { field = "method"; methodOop method = ((SharkFrame *) frame)->method(); if (method->is_oop()) diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/stack_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Tue Aug 12 05:35:18 2008 -0400 @@ -98,10 +98,12 @@ class ZeroStack { { return byte_offset_of(ZeroStack, _base); } + static ByteSize top_offset() { return byte_offset_of(ZeroStack, _top); } + static ByteSize sp_offset() { return byte_offset_of(ZeroStack, _sp); @@ -118,6 +120,7 @@ class ZeroStack { // | ... | class ZeroFrame { + friend class frame; friend class ZeroStackPrinter; protected: diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Tue Aug 12 05:35:18 2008 -0400 @@ -66,7 +66,7 @@ class StubGenerator: public StubCodeGene EntryFrame::build(stack, parameters, parameter_words, call_wrapper)); // Make the call - ((Interpreter::method_entry_t) entry_point) (method, THREAD); + Interpreter::invoke_method(method, entry_point, THREAD); // Store result depending on type if (!HAS_PENDING_EXCEPTION) { diff -r 7cd4d87f69f2 -r e8c5220a41f5 ports/hotspot/src/share/vm/includeDB_shark --- a/ports/hotspot/src/share/vm/includeDB_shark Tue Aug 12 09:37:13 2008 +0200 +++ b/ports/hotspot/src/share/vm/includeDB_shark Tue Aug 12 05:35:18 2008 -0400 @@ -56,6 +56,10 @@ globals.hpp globals.cpp shark_globals.hpp +interpreter.hpp sharkMethod.hpp + +methodOop.cpp sharkMethod.hpp + shark_globals.cpp shark_globals.hpp shark_globals.hpp shark_globals_.hpp @@ -72,6 +76,8 @@ sharkBlock.cpp sharkBlock.cpp shark_globals.hpp sharkBlock.cpp sharkBlock.hpp sharkBlock.cpp sharkBuilder.hpp +sharkBlock.cpp sharkConstantPool.hpp +sharkBlock.cpp sharkRuntime.hpp sharkBlock.cpp sharkState.inline.hpp sharkBlock.cpp sharkValue.hpp @@ -81,8 +87,9 @@ sharkBlock.hpp sharkBlock.hpp ciType.hpp sharkBlock.hpp ciTypeFlow.hpp sharkBlock.hpp llvmHeaders.hpp +sharkBlock.hpp sharkBuilder.hpp sharkBlock.hpp sharkFunction.hpp -sharkBlock.hpp sharkBuilder.hpp +sharkBlock.hpp sharkMonitor.hpp sharkBlock.hpp sharkState.hpp sharkBlock.hpp sharkValue.hpp @@ -94,8 +101,9 @@ sharkBuilder.cpp sharkBuilder.cpp resourceArea.hpp sharkBuilder.cpp llvmHeaders.hpp sharkBuilder.cpp sharkBuilder.hpp +sharkBuilder.cpp sharkRuntime.hpp +sharkBuilder.cpp synchronizer.hpp sharkBuilder.cpp thread.hpp -sharkBuilder.cpp synchronizer.hpp sharkBuilder.hpp barrierSet.hpp From gbenson at redhat.com Tue Aug 12 03:04:14 2008 From: gbenson at redhat.com (Gary Benson) Date: Tue, 12 Aug 2008 11:04:14 +0100 Subject: Shark v0.02 Message-ID: <20080812100413.GD3720@redhat.com> Hi all, I just updated the icedtea6 repository with what I have of Shark. To build it you need a recent svn LLVM installed (I'm using 54012) and you need to configure with --enable-shark. Cheers, Gary -- http://gbenson.net/ From bugzilla-daemon at icedtea.classpath.org Tue Aug 12 07:00:33 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 14:00:33 +0000 Subject: [Bug 181] enum issue with icedtea Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=181 ------- Comment #6 from langel at redhat.com 2008-08-12 14:00 ------- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6736248 -- 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 omajid at redhat.com Tue Aug 12 07:09:04 2008 From: omajid at redhat.com (Omair Majid) Date: Tue, 12 Aug 2008 14:09:04 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-12 Omair Majid changeset 3887b2fc72a5 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=3887b2fc72a5 description: 2008-08-12 Omair Majid * src/java/org/classpath/icedtea/pulseaudio/Operation.java: fixed compile error; added license text * src/native/org_classpath_icedtea_pulseaudio_Operation.c: added license text diffstat: 2 files changed, 76 insertions(+), 3 deletions(-) src/java/org/classpath/icedtea/pulseaudio/Operation.java | 42 +++++++++++++- src/native/org_classpath_icedtea_pulseaudio_Operation.c | 37 ++++++++++++ diffs (100 lines): diff -r 686f9e8f1803 -r 3887b2fc72a5 src/java/org/classpath/icedtea/pulseaudio/Operation.java --- a/src/java/org/classpath/icedtea/pulseaudio/Operation.java Mon Aug 11 17:38:17 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/Operation.java Tue Aug 12 10:09:01 2008 -0400 @@ -1,3 +1,40 @@ package org.classpath.icedtea.pulseaudio +/* Operation.java + Copyright (C) 2008 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea 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 for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + package org.classpath.icedtea.pulseaudio; import java.io.IOException; @@ -76,9 +113,8 @@ public class Operation { } - public void waitForCompletion() { - throw new RuntimeException("not implemented"); - + public void waitForCompletion() throws InterruptedException { + synchronized (eventLoop.threadLock) { eventLoop.threadLock.wait(); } diff -r 686f9e8f1803 -r 3887b2fc72a5 src/native/org_classpath_icedtea_pulseaudio_Operation.c --- a/src/native/org_classpath_icedtea_pulseaudio_Operation.c Mon Aug 11 17:38:17 2008 -0400 +++ b/src/native/org_classpath_icedtea_pulseaudio_Operation.c Tue Aug 12 10:09:01 2008 -0400 @@ -1,3 +1,40 @@ +/* org_classpath_icedtea_pulseaudio_Operation.c + Copyright (C) 2008 Red Hat, Inc. + + This file is part of IcedTea. + + IcedTea is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + IcedTea 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 for more details. + + You should have received a copy of the GNU General Public License + along with IcedTea; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. + + Linking this library statically or dynamically with other modules is + making a combined work based on this library. Thus, the terms and + conditions of the GNU General Public License cover the whole + combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under + terms of your choice, provided that you also meet, for each linked + independent module, the terms and conditions of the license of that + module. An independent module is a module which is not derived from + or based on this library. If you modify this library, you may extend + this exception to your version of the library, but you are not + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. + */ + #include "org_classpath_icedtea_pulseaudio_Operation.h" #include "jni-common.h" From omajid at redhat.com Tue Aug 12 07:51:15 2008 From: omajid at redhat.com (Omair Majid) Date: Tue, 12 Aug 2008 14:51:15 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-12 Omair Majid changeset 748e7984cd83 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=748e7984cd83 description: 2008-08-12 Omair Majid * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: fixed getControl(); implemented isControlSupported() * unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java: added two tests for checking controls diffstat: 2 files changed, 30 insertions(+), 15 deletions(-) src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 14 ++-- unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java | 31 ++++++---- diffs (106 lines): diff -r 3887b2fc72a5 -r 748e7984cd83 src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 10:09:01 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 10:31:11 2008 -0400 @@ -47,7 +47,6 @@ import java.util.concurrent.Semaphore; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioSystem; -import javax.sound.sampled.BooleanControl; import javax.sound.sampled.Control; import javax.sound.sampled.DataLine; import javax.sound.sampled.LineEvent; @@ -395,12 +394,14 @@ public class PulseAudioSourceDataLine im defaultFormat = new AudioFormat(Encoding.PCM_UNSIGNED, 22050, 8, 2, 2, AudioSystem.NOT_SPECIFIED, false); } - + open(defaultFormat, DEFAULT_BUFFER_SIZE); } @Override public int write(byte[] data, int offset, int length) { + + // TODO add check that the data is an integral number of frames int position = offset; int remainingLength = length; @@ -543,8 +544,7 @@ public class PulseAudioSourceDataLine im public Control getControl(Type control) { for (int i = 0; i < controls.length; i++) { - if (controls[i].getType() == control) { - + if (controls[i].getType().getClass() == control.getClass()) { return controls[i]; } } @@ -561,7 +561,11 @@ public class PulseAudioSourceDataLine im } public boolean isControlSupported(Type control) { - // TODO Auto-generated method stub + for (Control myControl: controls) { + if (myControl.getType().getClass() == control.getClass()) { + return true; + } + } return false; } diff -r 3887b2fc72a5 -r 748e7984cd83 unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java --- a/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Tue Aug 12 10:09:01 2008 -0400 +++ b/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Tue Aug 12 10:31:11 2008 -0400 @@ -106,7 +106,8 @@ public class PulseSourceDataLineTest { @Test public void testFindLineWithFormat() throws LineUnavailableException { - System.out.println("This test tries to find a line with a valid format"); + System.out + .println("This test tries to find a line with a valid format"); AudioFormat wantedFormat = new AudioFormat( AudioFormat.Encoding.PCM_UNSIGNED, 44100f, 8, 1, 1, 10, true); System.out.println(wantedFormat); @@ -131,16 +132,8 @@ public class PulseSourceDataLineTest { @Test public void testVolumeAndMute() throws Exception { - Mixer.Info mixerInfos[] = AudioSystem.getMixerInfo(); - Mixer.Info selectedMixerInfo = null; - for (Mixer.Info info : mixerInfos) { - if (info.getName().contains("PulseAudio")) { - selectedMixerInfo = info; - System.out.println(selectedMixerInfo); - } - } - Mixer selectedMixer = AudioSystem.getMixer(selectedMixerInfo); + Mixer selectedMixer = mixer; selectedMixer.open(); SourceDataLine line = (SourceDataLine) selectedMixer @@ -179,6 +172,24 @@ public class PulseSourceDataLineTest { } + @Test + public void testFindControl() throws LineUnavailableException { + SourceDataLine sourceLine = (SourceDataLine) mixer + .getLine(new Line.Info(SourceDataLine.class)); + Assert.assertTrue(sourceLine.getControls().length > 0); + } + + + @Test + public void testSupportedControls() throws LineUnavailableException { + SourceDataLine sourceLine = (SourceDataLine) mixer + .getLine(new Line.Info(SourceDataLine.class)); + sourceLine.open(); + Assert.assertTrue(sourceLine.isControlSupported(FloatControl.Type.VOLUME)); + Assert.assertTrue(sourceLine.isControlSupported(BooleanControl.Type.MUTE)); + } + + @After public void tearDown() throws Exception { From omajid at redhat.com Tue Aug 12 07:51:15 2008 From: omajid at redhat.com (Omair Majid) Date: Tue, 12 Aug 2008 14:51:15 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-12 Omair Majid changeset 573735d22e54 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=573735d22e54 description: 2008-08-12 Omair Majid * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: getControls() now returns a null rather than a Control[2] containing nulls * unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java: fixed the testFindControl() test to check the array returned diffstat: 2 files changed, 19 insertions(+), 9 deletions(-) src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 3 - unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java | 25 ++++++---- diffs (68 lines): diff -r 748e7984cd83 -r 573735d22e54 src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 10:31:11 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 10:51:02 2008 -0400 @@ -75,7 +75,7 @@ public class PulseAudioSourceDataLine im private List listeners; - private Control[] controls = new Control[2]; + private Control[] controls = null; private PulseAudioStreamMuteControl muteControl; private PulseAudioStreamVolumeControl volumeControl; private boolean muted; @@ -376,6 +376,7 @@ public class PulseAudioSourceDataLine im } System.out.println(this.getClass().getName() + "stream is ready"); + controls = new Control[2]; volumeControl = new PulseAudioStreamVolumeControl(this); controls[0] = volumeControl; muteControl = new PulseAudioStreamMuteControl(this); diff -r 748e7984cd83 -r 573735d22e54 unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java --- a/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Tue Aug 12 10:31:11 2008 -0400 +++ b/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Tue Aug 12 10:51:02 2008 -0400 @@ -44,6 +44,7 @@ import javax.sound.sampled.AudioInputStr import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.BooleanControl; +import javax.sound.sampled.Control; import javax.sound.sampled.DataLine; import javax.sound.sampled.FloatControl; import javax.sound.sampled.Line; @@ -176,20 +177,28 @@ public class PulseSourceDataLineTest { public void testFindControl() throws LineUnavailableException { SourceDataLine sourceLine = (SourceDataLine) mixer .getLine(new Line.Info(SourceDataLine.class)); + sourceLine.open(); + Control[] controls = sourceLine.getControls(); + Assert.assertNotNull(controls); Assert.assertTrue(sourceLine.getControls().length > 0); - } - - + for (Control control : controls) { + Assert.assertNotNull(control); + } + sourceLine.close(); + } + @Test public void testSupportedControls() throws LineUnavailableException { SourceDataLine sourceLine = (SourceDataLine) mixer .getLine(new Line.Info(SourceDataLine.class)); sourceLine.open(); - Assert.assertTrue(sourceLine.isControlSupported(FloatControl.Type.VOLUME)); - Assert.assertTrue(sourceLine.isControlSupported(BooleanControl.Type.MUTE)); - } - - + Assert.assertTrue(sourceLine + .isControlSupported(FloatControl.Type.VOLUME)); + Assert.assertTrue(sourceLine + .isControlSupported(BooleanControl.Type.MUTE)); + sourceLine.close(); + } + @After public void tearDown() throws Exception { From bugzilla-daemon at icedtea.classpath.org Tue Aug 12 08:07:09 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:07:09 +0000 Subject: [Bug 180] JVM crash while running Eclipse 3.4 on Fedora 9 (x86_64) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=180 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rolando.umana at gmail.com ------- Comment #5 from langel at redhat.com 2008-08-12 15:07 ------- *** Bug 182 has been marked as a duplicate of 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 Tue Aug 12 08:07:09 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:07:09 +0000 Subject: [Bug 182] crashes when updating a project directory in eclipse Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=182 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE ------- Comment #3 from langel at redhat.com 2008-08-12 15:07 ------- *** This bug has been marked as a duplicate of bug 180 *** -- 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 Aug 12 08:08:36 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:08:36 +0000 Subject: [Bug 155] Eclipse crashes in [libxul.so+0x9c753c] Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=155 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE ------- Comment #3 from langel at redhat.com 2008-08-12 15:08 ------- *** This bug has been marked as a duplicate of bug 152 *** -- 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 Aug 12 08:08:36 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:08:36 +0000 Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath! Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mcepl at redhat.com ------- Comment #13 from langel at redhat.com 2008-08-12 15:08 ------- *** Bug 155 has been marked as a duplicate of 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 Tue Aug 12 08:08:57 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:08:57 +0000 Subject: [Bug 156] Eclipse crashes in [libglib-2.0.so.0+0x54f39] g_slice_alloc+0x139 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=156 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE ------- Comment #2 from langel at redhat.com 2008-08-12 15:08 ------- *** This bug has been marked as a duplicate of bug 152 *** -- 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 Aug 12 08:08:57 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:08:57 +0000 Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath! Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152 ------- Comment #14 from langel at redhat.com 2008-08-12 15:08 ------- *** Bug 156 has been marked as a duplicate of 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 Tue Aug 12 08:11:54 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:11:54 +0000 Subject: [Bug 79] security type applet doesnt work Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=79 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|fkung at redhat.com |unassigned at icedtea.classpath | |.org -- 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 Aug 12 08:13:08 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:13:08 +0000 Subject: [Bug 89] Error when creating a new Servlet in Eclipse Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=89 ------- Comment #1 from langel at redhat.com 2008-08-12 15:13 ------- Is this still a problem? -- 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 Aug 12 08:13:59 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:13: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 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID ------- Comment #9 from langel at redhat.com 2008-08-12 15:13 ------- cant reproduce -- 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 Aug 12 08:20:06 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:20:06 +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 #10 from konrad at tylerc.org 2008-08-12 15:20 ------- I can't reproduce either; it should be closed. Sorry to not be able to provide a test case. -- 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 Aug 12 08:24:24 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:24:24 +0000 Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath! Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152 ------- Comment #15 from mlists at juma.me.uk 2008-08-12 15:24 ------- Does this still happen? I don't think there have been reports of any of the various Eclipse crashes with builds including the fix for 6614100 (which was tracked in IcedTea as bug #180). -- 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 Aug 12 08:26:17 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 15:26:17 +0000 Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath! Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152 ------- Comment #16 from langel at redhat.com 2008-08-12 15:26 ------- We should keep this open to keep track of the Sun bug that was created. This bug still exists: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6708395 -- 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 omajid at redhat.com Tue Aug 12 08:28:27 2008 From: omajid at redhat.com (Omair Majid) Date: Tue, 12 Aug 2008 15:28:27 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-12 Omair Majid changeset 8f4e01b67c92 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=8f4e01b67c92 description: 2008-08-12 Omair Majid * src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java: fixed notification of line listeners multiple times during a close(). cleared all the line listeners when a close is done(). fixed getControl() to throw an exception because no controls are supported. fixed getControls() to return an array of length 0. * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: if the line hasnt been opened, getControl() now throws an exception and getControls() returns an array of length 0 * unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java: fixed the listener tests to make sure that the listeners are called only once diffstat: 3 files changed, 41 insertions(+), 22 deletions(-) src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java | 19 +++--- src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 14 ++++ unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java | 30 ++++++---- diffs (157 lines): diff -r 573735d22e54 -r 8f4e01b67c92 src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Tue Aug 12 10:51:02 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioMixer.java Tue Aug 12 11:28:22 2008 -0400 @@ -265,24 +265,23 @@ public class PulseAudioMixer implements // System.out.println(this.getClass().getName() + ": closed"); this.isOpen = false; - fireEvent(new LineEvent(this, LineEvent.Type.CLOSE, - AudioSystem.NOT_SPECIFIED)); - - /* - * FIXME need to clean up the listeners on close without a race - * condition - */ + + synchronized (lineListeners) { + lineListeners.clear(); + } } @Override public Control getControl(Type control) { - return null; + // mixer supports no controls + throw new IllegalArgumentException(); } @Override public Control[] getControls() { - return null; + // mixer supports no controls; return an array of length 0 + return new Control[] {}; } @Override @@ -293,7 +292,7 @@ public class PulseAudioMixer implements @Override public boolean isControlSupported(Type control) { - // FIXME + // mixer supports no controls return false; } diff -r 573735d22e54 -r 8f4e01b67c92 src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 10:51:02 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 11:28:22 2008 -0400 @@ -544,6 +544,11 @@ public class PulseAudioSourceDataLine im } public Control getControl(Type control) { + if (!isOpen) { + throw new IllegalArgumentException( + "Controls only supported when line is open"); + } + for (int i = 0; i < controls.length; i++) { if (controls[i].getType().getClass() == control.getClass()) { return controls[i]; @@ -553,7 +558,12 @@ public class PulseAudioSourceDataLine im } public Control[] getControls() { - return controls; + if (isOpen) { + return controls; + } else { + return new Control[] {}; + } + } public javax.sound.sampled.Line.Info getLineInfo() { @@ -562,7 +572,7 @@ public class PulseAudioSourceDataLine im } public boolean isControlSupported(Type control) { - for (Control myControl: controls) { + for (Control myControl : controls) { if (myControl.getType().getClass() == control.getClass()) { return true; } diff -r 573735d22e54 -r 8f4e01b67c92 unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java --- a/unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java Tue Aug 12 10:51:02 2008 -0400 +++ b/unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java Tue Aug 12 11:28:22 2008 -0400 @@ -52,6 +52,7 @@ import junit.framework.JUnit4TestAdapter import junit.framework.JUnit4TestAdapter; import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -157,8 +158,8 @@ public class PulseAudioMixerTest { @Test public void testOpeningAgain() throws LineUnavailableException, UnsupportedOperationException { - selectedMixer.open(); - selectedMixer.open(); + selectedMixer.open(); + selectedMixer.open(); } @Test @@ -172,14 +173,12 @@ public class PulseAudioMixerTest { public void testSourceLinesOpenAndClose() throws LineUnavailableException { System.out.println("This test checks if source lines open and close"); selectedMixer.open(); - - + /* - * FIXME - * This test currently fails. The mixer returns information about the line - * which leaves a lot of things as NOT_SPECIFIED - * when using that to do a get line, things match, and the line returned - * still has a few parameters as NOT_SPECIFIED and doing an open() on that fails + * FIXME This test currently fails. The mixer returns information about + * the line which leaves a lot of things as NOT_SPECIFIED when using + * that to do a get line, things match, and the line returned still has + * a few parameters as NOT_SPECIFIED and doing an open() on that fails * */ Line.Info allLineInfo[] = selectedMixer.getSourceLineInfo(); @@ -196,9 +195,14 @@ public class PulseAudioMixerTest { @Test public void testOpenEvent() throws LineUnavailableException { LineListener listener = new LineListener() { + private int called = 0; + @Override public void update(LineEvent event) { assert (event.getType() == LineEvent.Type.OPEN); + called++; + // assert listener is called exactly once + Assert.assertEquals(1,called); } }; @@ -212,9 +216,15 @@ public class PulseAudioMixerTest { @Test public void testCloseEvent() throws LineUnavailableException { LineListener listener = new LineListener() { + private int count = 0; + @Override public void update(LineEvent event) { - assert (event.getType() == LineEvent.Type.CLOSE); + Assert.assertTrue(event.getType() == LineEvent.Type.CLOSE); + count++; + // assert listener is called exactly once + Assert.assertEquals(1, count); + } }; From bugzilla-daemon at icedtea.classpath.org Tue Aug 12 09:19:58 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 16:19:58 +0000 Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath! Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152 ------- Comment #17 from mlists at juma.me.uk 2008-08-12 16:19 ------- Yes, but the reporters should check if it has been fixed and add a comment in their bug database in that case. :) -- 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 Aug 12 09:34:16 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 16:34:16 +0000 Subject: [Bug 89] Error when creating a new Servlet in Eclipse Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=89 ------- Comment #2 from daarty at gg-com.de 2008-08-12 16:34 ------- (In reply to comment #1) > Is this still a problem? > I am no longer using F8 / IcedTea. Sorry, can't check this any longer. -- 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 Aug 12 09:41:08 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 16:41:08 +0000 Subject: [Bug 152] HotSpot crashes while compiling GNU Classpath! Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=152 ------- Comment #18 from langel at redhat.com 2008-08-12 16:41 ------- it has not been fixed in openjdk, but it has in icedtea. -- 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 Aug 12 09:41:20 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 16:41:20 +0000 Subject: [Bug 89] Error when creating a new Servlet in Eclipse Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=89 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID ------- Comment #3 from langel at redhat.com 2008-08-12 16:41 ------- closing, cannot reproduce -- 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 Aug 12 09:44:36 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 16:44:36 +0000 Subject: [Bug 85] no javascript plugin support. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=85 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|dbhole at redhat.com |.org | -- 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. You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue Aug 12 09:44:47 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 16:44:47 +0000 Subject: [Bug 79] security type applet doesnt work Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=79 langel at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|dbhole at redhat.com |.org | -- 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. You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue Aug 12 09:49:00 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 12 Aug 2008 16:49:00 +0000 Subject: [Bug 180] JVM crash while running Eclipse 3.4 on Fedora 9 (x86_64) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=180 veguilla at gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED ------- Comment #6 from veguilla at gmail.com 2008-08-12 16:49 ------- Upgraded to 1.6.0_10-rc-b28 and everything is working correctly. Since the problem is present in the Java version (b09) currently available from the Fedora 9 update repositories, I will take this issue to the Fedora bugzilla/mailing-lists. Closing the 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 langel at redhat.com Tue Aug 12 10:43:20 2008 From: langel at redhat.com (Lillian Angel) Date: Tue, 12 Aug 2008 17:43:20 +0000 Subject: changeset in /hg/icedtea6: 2008-08-12 Lillian Angel changeset 3b7c41ea8ccb in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3b7c41ea8ccb description: 2008-08-12 Lillian Angel * HACKING: Added icedtea-enum-bug-181.patch. diffstat: 2 files changed, 5 insertions(+) ChangeLog | 4 ++++ HACKING | 1 + diffs (22 lines): diff -r e8c5220a41f5 -r 3b7c41ea8ccb ChangeLog --- a/ChangeLog Tue Aug 12 05:35:18 2008 -0400 +++ b/ChangeLog Tue Aug 12 13:43:16 2008 -0400 @@ -1,3 +1,7 @@ 2008-08-12 Gary Benson + + * HACKING: Added icedtea-enum-bug-181.patch. + 2008-08-12 Gary Benson * patches/icedtea-shark.patch: Updated to latest Shark. diff -r e8c5220a41f5 -r 3b7c41ea8ccb HACKING --- a/HACKING Tue Aug 12 05:35:18 2008 -0400 +++ b/HACKING Tue Aug 12 13:43:16 2008 -0400 @@ -25,6 +25,7 @@ The following patches are currently appl * icedtea-debuginfo.patch: Add -g option to build to generate debugging information. * icedtea-demos.patch: Fix building of JVMTI demo. * icedtea-directaudio-close-trick.patch: Allow hardware sound device to be reopened. +* icedtea-enum-bug-181.patch: Fixes class type check (PR181/S6736248) * icedtea-float-double-trailing-zeros.patch: Remove trailing zeros from Double/Float (PR29/30) * icedtea-fonts.patch: Add Fedora fontconfig. * icedtea-gcc-4.3.patch: Fix code to compile with GCC 4.3 and turn off -Werror. From doko at ubuntu.com Tue Aug 12 11:24:26 2008 From: doko at ubuntu.com (doko at ubuntu.com) Date: Tue, 12 Aug 2008 18:24:26 +0000 Subject: changeset in /hg/icedtea6: 2008-08-12 Matthias Klose changeset 5fd318f3b379 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5fd318f3b379 description: 2008-08-12 Matthias Klose * Makefile.am (stamps/cacao.stamp): Robustify. diffstat: 2 files changed, 6 insertions(+), 2 deletions(-) ChangeLog | 4 ++++ Makefile.am | 4 ++-- diffs (32 lines): diff -r 3b7c41ea8ccb -r 5fd318f3b379 ChangeLog --- a/ChangeLog Tue Aug 12 13:43:16 2008 -0400 +++ b/ChangeLog Tue Aug 12 20:23:58 2008 +0200 @@ -1,3 +1,7 @@ 2008-08-12 Lillian Angel + + * Makefile.am (stamps/cacao.stamp): Robustify. + 2008-08-12 Lillian Angel * HACKING: Added icedtea-enum-bug-181.patch. diff -r 3b7c41ea8ccb -r 5fd318f3b379 Makefile.am --- a/Makefile.am Tue Aug 12 13:43:16 2008 -0400 +++ b/Makefile.am Tue Aug 12 20:23:58 2008 +0200 @@ -2,7 +2,7 @@ OPENJDK_MD5SUM = 8e60cdac02ec1b2d8ddb9d7 OPENJDK_MD5SUM = 8e60cdac02ec1b2d8ddb9d7369be69df OPENJDK_VERSION = b11 -CACAO_VERSION = 0.99.2 +CACAO_VERSION = 0.99.3 CACAO_MD5SUM = a2865f47535f6dc3def268c0055ff20a NETBEANS_PLATFORM_MD5SUM = 77c79b3a7d3dbe6a8858639f8d564a38 @@ -1250,7 +1250,7 @@ stamps/cacao.stamp: stamps/extract.stamp stamps/cacao.stamp: stamps/extract.stamp stamps/rt-class-files.stamp if WITH_CACAO if !USE_SYSTEM_CACAO - cd cacao/cacao-$(CACAO_VERSION) ; \ + cd cacao/cacao-$(CACAO_VERSION) && \ ./configure \ --prefix=$(abs_top_builddir)/cacao/install \ --with-java-runtime-library=openjdk \ From doko at ubuntu.com Tue Aug 12 11:26:56 2008 From: doko at ubuntu.com (doko at ubuntu.com) Date: Tue, 12 Aug 2008 18:26:56 +0000 Subject: changeset in /hg/icedtea6: 2008-08-12 Matthias Klose changeset ce522c9080e5 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ce522c9080e5 description: 2008-08-12 Matthias Klose * patches/icedtea-arch.patch: Add support for mipsel-linux. diffstat: 2 files changed, 198 insertions(+), 186 deletions(-) ChangeLog | 4 patches/icedtea-arch.patch | 380 ++++++++++++++++++++++---------------------- diffs (449 lines): diff -r 5fd318f3b379 -r ce522c9080e5 ChangeLog --- a/ChangeLog Tue Aug 12 20:23:58 2008 +0200 +++ b/ChangeLog Tue Aug 12 20:25:43 2008 +0200 @@ -1,3 +1,7 @@ 2008-08-12 Matthias Klose + + * patches/icedtea-arch.patch: Add support for mipsel-linux. + 2008-08-12 Matthias Klose * Makefile.am (stamps/cacao.stamp): Robustify. diff -r 5fd318f3b379 -r ce522c9080e5 patches/icedtea-arch.patch --- a/patches/icedtea-arch.patch Tue Aug 12 20:23:58 2008 +0200 +++ b/patches/icedtea-arch.patch Tue Aug 12 20:25:43 2008 +0200 @@ -1,73 +1,6 @@ diff -r 63b67d07d5e9 openjdk/jdk/make/co -diff -r 63b67d07d5e9 openjdk/jdk/make/common/shared/Compiler-gcc.gmk ---- ../openjdk/jdk/make/common/shared/Compiler-gcc.gmk Tue Mar 25 16:27:33 2008 +0000 -+++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk Wed Mar 26 08:24:35 2008 +0000 -@@ -75,28 +75,51 @@ ifeq ($(PLATFORM), linux) - REQUIRED_CC_VER = 3.2 - REQUIRED_GCC_VER = 3.2.* - else -- ifneq ("$(findstring sparc,$(ARCH))", "") -- # sparc or sparcv9 -- REQUIRED_CC_VER = 4.0 -- REQUIRED_GCC_VER = 4.0.* -- else -- ifeq ($(ARCH_DATA_MODEL), 32) -+ ifeq ($(ARCH), alpha) -+ # alpha -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifeq ($(ARCH), amd64) -+ # amd64 -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifeq ($(ARCH), arm) -+ # arm -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifeq ($(ARCH), i586) - # i586 - REQUIRED_CC_VER = 3.2 - REQUIRED_GCC_VER = 3.2.1* - REQUIRED_GCC_VER_INT = 3.2.1-7a -- else -- ifeq ($(ARCH), amd64) -- # amd64 -- REQUIRED_CC_VER = 3.2 -- REQUIRED_GCC_VER = 3.2.* - endif - ifeq ($(ARCH), ia64) - # ia64 - REQUIRED_CC_VER = 3.2 - REQUIRED_GCC_VER = 2.9[56789].* - endif -+ ifeq ($(ARCH), mips) -+ # mips -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* - endif -+ ifneq ("$(findstring ppc,$(ARCH))", "") -+ # ppc or ppc64 -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifneq ("$(findstring s390,$(ARCH))", "") -+ # s390 or s390x -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ endif -+ ifneq ("$(findstring sparc,$(ARCH))", "") -+ # sparc or sparcv9 -+ REQUIRED_CC_VER = 4.0 -+ REQUIRED_GCC_VER = 4.0.* - endif - endif - # Option used to create a shared library -diff -r 63b67d07d5e9 openjdk/jdk/make/javax/sound/SoundDefs.gmk ---- ../openjdk/jdk/make/javax/sound/SoundDefs.gmk Tue Mar 25 16:27:33 2008 +0000 -+++ openjdk/jdk/make/javax/sound/SoundDefs.gmk Wed Mar 26 08:29:28 2008 +0000 -@@ -58,9 +58,45 @@ ifdef ICEDTEA_ZERO_BUILD +--- openjdk/jdk/make/javax/sound/SoundDefs.gmk.orig 2008-08-12 18:09:03.000000000 +0000 ++++ openjdk/jdk/make/javax/sound/SoundDefs.gmk 2008-08-12 18:12:15.000000000 +0000 +@@ -58,10 +58,50 @@ ifdef ICEDTEA_ZERO_BUILD CPPFLAGS += -DX_ARCH=X_ZERO else @@ -86,7 +19,7 @@ diff -r 63b67d07d5e9 openjdk/jdk/make/ja ifeq ($(ARCH), i586) CPPFLAGS += -DX_ARCH=X_I586 endif # ARCH i586 -+ + + ifeq ($(ARCH), ia64) + CPPFLAGS += -DX_ARCH=X_IA64 + endif # ARCH ia64 @@ -95,6 +28,10 @@ diff -r 63b67d07d5e9 openjdk/jdk/make/ja + CPPFLAGS += -DX_ARCH=X_MIPS + endif # ARCH mips + ++ ifeq ($(ARCH), mipsel) ++ CPPFLAGS += -DX_ARCH=X_MIPSEL ++ endif # ARCH mipsel ++ + ifeq ($(ARCH), ppc) + CPPFLAGS += -DX_ARCH=X_PPC + endif # ARCH ppc @@ -110,10 +47,11 @@ diff -r 63b67d07d5e9 openjdk/jdk/make/ja + ifeq ($(ARCH), s390x) + CPPFLAGS += -DX_ARCH=X_S390X + endif # ARCH s390x - ++ ifeq ($(ARCH), sparc) CPPFLAGS += -DX_ARCH=X_SPARC -@@ -69,10 +105,6 @@ else + endif # ARCH sparc +@@ -69,10 +109,6 @@ ifeq ($(ARCH), sparcv9) CPPFLAGS += -DX_ARCH=X_SPARCV9 endif # ARCH sparcv9 @@ -124,10 +62,136 @@ diff -r 63b67d07d5e9 openjdk/jdk/make/ja endif -diff -r 63b67d07d5e9 openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h ---- ../openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Mar 25 16:27:33 2008 +0000 -+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Mar 26 08:38:14 2008 +0000 -@@ -33,12 +33,19 @@ +--- openjdk/jdk/make/common/Defs-linux.gmk.orig 2008-08-12 18:09:03.000000000 +0000 ++++ openjdk/jdk/make/common/Defs-linux.gmk 2008-08-12 18:15:54.000000000 +0000 +@@ -102,9 +102,19 @@ + # We need this frame pointer to make it easy to walk the stacks. + # This should be the default on X86, but ia64 and amd64 may not have this + # as the default. ++CFLAGS_REQUIRED_alpha += -mieee -D_LITTLE_ENDIAN + CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_arm += -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_hppa += + CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN + CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_m68k += ++CFLAGS_REQUIRED_mips += ++CFLAGS_REQUIRED_mipsel += -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_ppc += -m32 ++CFLAGS_REQUIRED_ppc64 += -m64 ++CFLAGS_REQUIRED_s390 += ++CFLAGS_REQUIRED_s390x += -m64 + CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9 + LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 + CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 +--- openjdk/jdk/make/common/shared/Compiler-gcc.gmk.orig 2008-08-12 18:09:03.000000000 +0000 ++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk 2008-08-12 18:10:45.000000000 +0000 +@@ -75,28 +75,51 @@ + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* + else +- ifneq ("$(findstring sparc,$(ARCH))", "") +- # sparc or sparcv9 +- REQUIRED_CC_VER = 4.0 +- REQUIRED_GCC_VER = 4.0.* +- else +- ifeq ($(ARCH_DATA_MODEL), 32) +- # i586 ++ ifeq ($(ARCH), alpha) ++ # alpha + REQUIRED_CC_VER = 3.2 +- REQUIRED_GCC_VER = 3.2.1* +- REQUIRED_GCC_VER_INT = 3.2.1-7a +- else ++ REQUIRED_GCC_VER = 3.2.* ++ endif + ifeq ($(ARCH), amd64) + # amd64 + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 3.2.* + endif ++ ifeq ($(ARCH), arm) ++ # arm ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* ++ endif ++ ifeq ($(ARCH), i586) ++ # i586 ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.1* ++ REQUIRED_GCC_VER_INT = 3.2.1-7a ++ endif + ifeq ($(ARCH), ia64) + # ia64 + REQUIRED_CC_VER = 3.2 + REQUIRED_GCC_VER = 2.9[56789].* + endif ++ ifneq ("$(findstring mips,$(ARCH))", "") ++ # mips ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* ++ endif ++ ifneq ("$(findstring ppc,$(ARCH))", "") ++ # ppc or ppc64 ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* ++ endif ++ ifneq ("$(findstring s390,$(ARCH))", "") ++ # s390 or s390x ++ REQUIRED_CC_VER = 3.2 ++ REQUIRED_GCC_VER = 3.2.* + endif ++ ifneq ("$(findstring sparc,$(ARCH))", "") ++ # sparc or sparcv9 ++ REQUIRED_CC_VER = 4.0 ++ REQUIRED_GCC_VER = 4.0.* + endif + endif + # Option used to create a shared library +--- openjdk/jdk/make/common/shared/Platform.gmk.orig 2008-08-12 18:09:03.000000000 +0000 ++++ openjdk/jdk/make/common/shared/Platform.gmk 2008-08-12 18:14:37.000000000 +0000 +@@ -237,9 +237,37 @@ + else + # i586 is 32-bit, amd64 is 64-bit + ifndef ARCH_DATA_MODEL ++ ifeq ($(ARCH), alpha) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), amd64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), arm) ++ ARCH_DATA_MODEL=32 ++ endif + ifeq ($(ARCH), i586) + ARCH_DATA_MODEL=32 +- else ++ endif ++ ifeq ($(ARCH), ia64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), mips) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), mipsel) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), ppc) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), ppc64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), s390) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), s390x) + ARCH_DATA_MODEL=64 + endif + endif +--- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h.orig 2008-08-12 18:09:03.000000000 +0000 ++++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2008-08-12 18:13:17.000000000 +0000 +@@ -33,12 +33,20 @@ #define X_LINUX 3 // types for X_ARCH @@ -143,96 +207,20 @@ diff -r 63b67d07d5e9 openjdk/jdk/src/sha +#define X_I586 4 +#define X_IA64 5 +#define X_MIPS 6 -+#define X_PPC 7 -+#define X_PPC64 8 -+#define X_S390 9 -+#define X_S390X 10 -+#define X_SPARC 11 -+#define X_SPARCV9 12 -+#define X_ZERO 13 ++#define X_MIPSEL 7 ++#define X_PPC 8 ++#define X_PPC64 9 ++#define X_S390 10 ++#define X_S390X 11 ++#define X_SPARC 12 ++#define X_SPARCV9 13 ++#define X_ZERO 14 // ********************************** // Make sure you set X_PLATFORM and X_ARCH defines correctly. ---- openjdk/corba/make/common/shared/Platform.gmk~ 2008-04-21 09:54:27.000000000 +0200 -+++ openjdk/corba/make/common/shared/Platform.gmk 2008-04-21 16:14:54.000000000 +0200 -@@ -224,9 +224,34 @@ - else - # i586 is 32-bit, amd64 is 64-bit - ifndef ARCH_DATA_MODEL -+ ifeq ($(ARCH), alpha) -+ ARCH_DATA_MODEL=64 -+ endif -+ ifeq ($(ARCH), amd64) -+ ARCH_DATA_MODEL=64 -+ endif -+ ifeq ($(ARCH), arm) -+ ARCH_DATA_MODEL=32 -+ endif - ifeq ($(ARCH), i586) - ARCH_DATA_MODEL=32 -- else -+ endif -+ ifeq ($(ARCH), ia64) -+ ARCH_DATA_MODEL=64 -+ endif -+ ifeq ($(ARCH), mips) -+ ARCH_DATA_MODEL=32 -+ endif -+ ifeq ($(ARCH), ppc) -+ ARCH_DATA_MODEL=32 -+ endif -+ ifeq ($(ARCH), ppc64) -+ ARCH_DATA_MODEL=64 -+ endif -+ ifeq ($(ARCH), s390) -+ ARCH_DATA_MODEL=32 -+ endif -+ ifeq ($(ARCH), s390x) - ARCH_DATA_MODEL=64 - endif - endif ---- openjdk/jdk/make/common/shared/Platform.gmk~ 2008-04-21 09:54:27.000000000 +0200 -+++ openjdk/jdk/make/common/shared/Platform.gmk 2008-04-21 16:15:00.000000000 +0200 -@@ -235,9 +235,34 @@ - else - # i586 is 32-bit, amd64 is 64-bit - ifndef ARCH_DATA_MODEL -+ ifeq ($(ARCH), alpha) -+ ARCH_DATA_MODEL=64 -+ endif -+ ifeq ($(ARCH), amd64) -+ ARCH_DATA_MODEL=64 -+ endif -+ ifeq ($(ARCH), arm) -+ ARCH_DATA_MODEL=32 -+ endif - ifeq ($(ARCH), i586) - ARCH_DATA_MODEL=32 -- else -+ endif -+ ifeq ($(ARCH), ia64) -+ ARCH_DATA_MODEL=64 -+ endif -+ ifeq ($(ARCH), mips) -+ ARCH_DATA_MODEL=32 -+ endif -+ ifeq ($(ARCH), ppc) -+ ARCH_DATA_MODEL=32 -+ endif -+ ifeq ($(ARCH), ppc64) -+ ARCH_DATA_MODEL=64 -+ endif -+ ifeq ($(ARCH), s390) -+ ARCH_DATA_MODEL=32 -+ endif -+ ifeq ($(ARCH), s390x) - ARCH_DATA_MODEL=64 - endif - endif -diff -r f07251088084 make/common/Defs-linux.gmk ---- a/corba/make/common/Defs-linux.gmk Mon Aug 04 13:44:45 2008 -0700 -+++ openjdk/corba/make/common/Defs-linux.gmk Wed Aug 06 18:58:18 2008 -0400 -@@ -92,9 +92,18 @@ +--- openjdk/corba/make/common/Defs-linux.gmk.orig 2008-08-12 18:09:03.000000000 +0000 ++++ openjdk/corba/make/common/Defs-linux.gmk 2008-08-12 18:15:12.000000000 +0000 +@@ -92,9 +92,19 @@ # We need this frame pointer to make it easy to walk the stacks. # This should be the default on X86, but ia64 and amd64 may not have this # as the default. @@ -244,6 +232,7 @@ diff -r f07251088084 make/common/Defs-li CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN +CFLAGS_REQUIRED_m68k += +CFLAGS_REQUIRED_mips += ++CFLAGS_REQUIRED_mipsel += -D_LITTLE_ENDIAN +CFLAGS_REQUIRED_ppc += -m32 +CFLAGS_REQUIRED_ppc64 += -m64 +CFLAGS_REQUIRED_s390 += @@ -251,25 +240,44 @@ diff -r f07251088084 make/common/Defs-li CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9 LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 -diff -r 12a0d0a1bb65 make/common/Defs-linux.gmk ---- a/jdk/make/common/Defs-linux.gmk Mon Aug 04 13:45:00 2008 -0700 -+++ openjdk/jdk/make/common/Defs-linux.gmk Wed Aug 06 18:58:22 2008 -0400 -@@ -102,9 +102,18 @@ - # We need this frame pointer to make it easy to walk the stacks. - # This should be the default on X86, but ia64 and amd64 may not have this - # as the default. -+CFLAGS_REQUIRED_alpha += -mieee -D_LITTLE_ENDIAN - CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN -+CFLAGS_REQUIRED_arm += -D_LITTLE_ENDIAN -+CFLAGS_REQUIRED_hppa += - CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN - CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN -+CFLAGS_REQUIRED_m68k += -+CFLAGS_REQUIRED_mips += -+CFLAGS_REQUIRED_ppc += -m32 -+CFLAGS_REQUIRED_ppc64 += -m64 -+CFLAGS_REQUIRED_s390 += -+CFLAGS_REQUIRED_s390x += -m64 - CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9 - LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 - CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 +--- openjdk/corba/make/common/shared/Platform.gmk.orig 2008-08-12 18:09:03.000000000 +0000 ++++ openjdk/corba/make/common/shared/Platform.gmk 2008-08-12 18:14:03.000000000 +0000 +@@ -227,9 +227,37 @@ + else + # i586 is 32-bit, amd64 is 64-bit + ifndef ARCH_DATA_MODEL ++ ifeq ($(ARCH), alpha) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), amd64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), arm) ++ ARCH_DATA_MODEL=32 ++ endif + ifeq ($(ARCH), i586) + ARCH_DATA_MODEL=32 +- else ++ endif ++ ifeq ($(ARCH), ia64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), mips) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), mipsel) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), ppc) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), ppc64) ++ ARCH_DATA_MODEL=64 ++ endif ++ ifeq ($(ARCH), s390) ++ ARCH_DATA_MODEL=32 ++ endif ++ ifeq ($(ARCH), s390x) + ARCH_DATA_MODEL=64 + endif + endif From omajid at redhat.com Tue Aug 12 12:17:20 2008 From: omajid at redhat.com (Omair Majid) Date: Tue, 12 Aug 2008 19:17:20 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-11 Omair Majid changeset 856e11044f24 in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=856e11044f24 description: 2008-08-11 Omair Majid * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: now notifies any linelisteners of OPEN event. write() now tests the arguments passed to it * src/native/org_classpath_icedtea_pulseaudio/PulseAudioSourceDataLine.c: enabled a little debug output * unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java: added tests to confirm write's argument checking. also added tests to check that listeners are notified of OPEN and CLOSE LineEvents diffstat: 3 files changed, 159 insertions(+), 17 deletions(-) src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 63 ++++- src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c | 2 unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java | 111 ++++++++++ diffs (299 lines): diff -r 8f4e01b67c92 -r 856e11044f24 src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 11:28:22 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 15:17:14 2008 -0400 @@ -73,7 +73,7 @@ public class PulseAudioSourceDataLine im private AudioFormat currentFormat = null; private AudioFormat defaultFormat = null; - private List listeners; + private List lineListeners; private Control[] controls = null; private PulseAudioStreamMuteControl muteControl; @@ -123,7 +123,7 @@ public class PulseAudioSourceDataLine im public PulseAudioSourceDataLine(EventLoop eventLoop) { this.eventLoop = eventLoop; - this.listeners = new ArrayList(); + this.lineListeners = new ArrayList(); this.volume = PulseAudioVolumeControl.MAX_VOLUME; /* @@ -349,6 +349,24 @@ public class PulseAudioSourceDataLine im throw new IllegalArgumentException("Invalid format"); } + StreamListener openCloseListener = new StreamListener() { + + @Override + public void update(StreamEvent e) { + if (e.getType() == StreamEvent.Type.READY) { + fireLineEvent(new LineEvent(PulseAudioSourceDataLine.this, + LineEvent.Type.OPEN, AudioSystem.NOT_SPECIFIED)); + } else if (e.getType() == StreamEvent.Type.TERMINATED + || e.getType() == StreamEvent.Type.FAILED) { + fireLineEvent((new LineEvent(PulseAudioSourceDataLine.this, + LineEvent.Type.CLOSE, AudioSystem.NOT_SPECIFIED))); + } + } + + }; + + addStreamListener(openCloseListener); + final Semaphore semaphore = new Semaphore(0); synchronized (eventLoop.threadLock) { @@ -374,6 +392,7 @@ public class PulseAudioSourceDataLine im // throw new LineUnavailableException("unable to prepare // stream"); } + System.out.println(this.getClass().getName() + "stream is ready"); controls = new Control[2]; @@ -402,7 +421,18 @@ public class PulseAudioSourceDataLine im @Override public int write(byte[] data, int offset, int length) { - // TODO add check that the data is an integral number of frames + int frameSize = currentFormat.getFrameSize(); + if (length % frameSize != 0) { + throw new IllegalArgumentException( + "amount of data to write does not represent an integral number of frames"); + } + if (length < 0) { + throw new IllegalArgumentException("length is negative"); + } + + if (length + offset > data.length) { + throw new ArrayIndexOutOfBoundsException(length + offset); + } int position = offset; int remainingLength = length; @@ -462,11 +492,11 @@ public class PulseAudioSourceDataLine im } public void addLineListener(LineListener listener) { - this.listeners.add(listener); + this.lineListeners.add(listener); } public void removeLineListener(LineListener listener) { - this.listeners.remove(listener); + this.lineListeners.remove(listener); } private void addStreamListener(StreamListener listener) { @@ -488,10 +518,6 @@ public class PulseAudioSourceDataLine im synchronized (eventLoop.threadLock) { native_close(); - } - - for (LineListener l : this.listeners) { - l.update(new LineEvent(this, LineEvent.Type.CLOSE, 0)); } } @@ -563,7 +589,7 @@ public class PulseAudioSourceDataLine im } else { return new Control[] {}; } - + } public javax.sound.sampled.Line.Info getLineInfo() { @@ -622,16 +648,16 @@ public class PulseAudioSourceDataLine im synchronized (eventLoop.threadLock) { switch (status) { case 0: - fireEvent(new StreamEvent(StreamEvent.Type.UNCONNECTED)); + fireStreamEvent(new StreamEvent(StreamEvent.Type.UNCONNECTED)); break; case 1: - fireEvent(new StreamEvent(StreamEvent.Type.CREATING)); + fireStreamEvent(new StreamEvent(StreamEvent.Type.CREATING)); break; case 2: - fireEvent(new StreamEvent(StreamEvent.Type.READY)); + fireStreamEvent(new StreamEvent(StreamEvent.Type.READY)); break; case 3: - fireEvent(new StreamEvent(StreamEvent.Type.FAILED)); + fireStreamEvent(new StreamEvent(StreamEvent.Type.FAILED)); break; case 4: break; @@ -641,8 +667,13 @@ public class PulseAudioSourceDataLine im } } - private void fireEvent(StreamEvent e) { - + private void fireLineEvent(LineEvent e) { + for (LineListener lineListener : lineListeners) { + lineListener.update(e); + } + } + + private void fireStreamEvent(StreamEvent e) { for (StreamListener streamListener : streamListeners) { streamListener.update(e); } diff -r 8f4e01b67c92 -r 856e11044f24 src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c --- a/src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Tue Aug 12 11:28:22 2008 -0400 +++ b/src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Tue Aug 12 15:17:14 2008 -0400 @@ -75,7 +75,7 @@ static void stream_state_change_callback jobject obj = java_context->obj; - // printf("stream state changed to %d\n", pa_stream_get_state(stream)); + printf("----> Stream state changed to %d\n", pa_stream_get_state(stream)); /* Call the 'update' method in java * to handle all java-side events diff -r 8f4e01b67c92 -r 856e11044f24 unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java --- a/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Tue Aug 12 11:28:22 2008 -0400 +++ b/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Tue Aug 12 15:17:14 2008 -0400 @@ -48,6 +48,8 @@ import javax.sound.sampled.DataLine; import javax.sound.sampled.DataLine; import javax.sound.sampled.FloatControl; import javax.sound.sampled.Line; +import javax.sound.sampled.LineEvent; +import javax.sound.sampled.LineListener; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.Mixer; import javax.sound.sampled.SourceDataLine; @@ -63,6 +65,8 @@ public class PulseSourceDataLineTest { public class PulseSourceDataLineTest { Mixer mixer; + private int listenerCalled = 0; + public static junit.framework.Test suite() { return new JUnit4TestAdapter(PulseSourceDataLineTest.class); } @@ -103,6 +107,51 @@ public class PulseSourceDataLineTest { line.flush(); line.close(); + } + + @Test(expected = IllegalArgumentException.class) + public void testPlayLessThanFrameSize() throws LineUnavailableException, + UnsupportedAudioFileException, IOException { + File soundFile = new File("testsounds/startup.wav"); + AudioInputStream audioInputStream = AudioSystem + .getAudioInputStream(soundFile); + AudioFormat audioFormat = audioInputStream.getFormat(); + // the audio file must have an even number of channels + Assert.assertTrue(audioFormat.getChannels() % 2 == 0); + SourceDataLine line; + line = (SourceDataLine) mixer.getLine(new DataLine.Info( + SourceDataLine.class, audioFormat)); + + byte[] data = new byte[1]; + data[0] = (byte) 'a'; + + line.open(); + line.write(data, 0, 1); + + line.close(); + + } + + @Test + public void testOpenFormat() throws LineUnavailableException, + UnsupportedAudioFileException, IOException { + /* + * This test makes sure that the default format of a line using open() + * is the same format that was passed to the mixer's getLine() function + * to get the line in the first place + */ + + File soundFile = new File("testsounds/startup.wav"); + AudioInputStream audioInputStream = AudioSystem + .getAudioInputStream(soundFile); + AudioFormat audioFormat = audioInputStream.getFormat(); + + SourceDataLine line; + line = (SourceDataLine) mixer.getLine(new DataLine.Info( + SourceDataLine.class, audioFormat)); + Assert.assertNotNull(line); + line.open(); + Assert.assertTrue(line.getFormat().matches(audioFormat)); } @Test @@ -199,6 +248,68 @@ public class PulseSourceDataLineTest { sourceLine.close(); } + @Test + public void testOpenEvent() throws LineUnavailableException { + + listenerCalled = 0; + LineListener openListener = new LineListener() { + public void update(LineEvent event) { + Assert.assertTrue(event.getType() == LineEvent.Type.OPEN); + PulseSourceDataLineTest.this.listenerCalled++; + } + }; + + SourceDataLine line = (SourceDataLine) mixer.getLine(new Line.Info( + SourceDataLine.class)); + line.addLineListener(openListener); + line.open(); + line.removeLineListener(openListener); + line.close(); + Assert.assertEquals(1, listenerCalled); + listenerCalled = 0; + } + + @Test + public void testCloseEvent() throws LineUnavailableException { + listenerCalled = 0; + LineListener closeListener = new LineListener() { + public void update(LineEvent event) { + Assert.assertTrue(event.getType() == LineEvent.Type.CLOSE); + PulseSourceDataLineTest.this.listenerCalled++; + } + }; + + SourceDataLine line = (SourceDataLine) mixer.getLine(new Line.Info( + SourceDataLine.class)); + line.open(); + line.addLineListener(closeListener); + line.close(); + line.removeLineListener(closeListener); + Assert.assertEquals(1, listenerCalled); + listenerCalled = 0; + } + + @Test + public void testCloseEventWrongListener() throws LineUnavailableException { + listenerCalled = 0; + LineListener closeListener = new LineListener() { + public void update(LineEvent event) { + PulseSourceDataLineTest.this.listenerCalled++; + } + }; + + SourceDataLine line = (SourceDataLine) mixer.getLine(new Line.Info( + SourceDataLine.class)); + + line.open(); + line.addLineListener(closeListener); + line.removeLineListener(closeListener); + line.close(); + Assert.assertEquals(0, listenerCalled); + listenerCalled = 0; + + } + @After public void tearDown() throws Exception { From omajid at redhat.com Tue Aug 12 13:55:34 2008 From: omajid at redhat.com (Omair Majid) Date: Tue, 12 Aug 2008 20:55:34 +0000 Subject: changeset in /hg/pulseaudio: 2008-08-12 Omair Majid changeset 9a72b909f18a in /hg/pulseaudio details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=9a72b909f18a description: 2008-08-12 Omair Majid * src/java/org/classpath/icedtea/pulseaudio/Operation.java: added a function isNull to check if the pa_operation pointer is NULL * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: added support for LineListeners to be notified on a CLOSE event * src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c: removed debugging output * unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java: added description to be println()ed for testPlay() test diffstat: 4 files changed, 51 insertions(+), 17 deletions(-) src/java/org/classpath/icedtea/pulseaudio/Operation.java | 7 + src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java | 47 ++++++++-- src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c | 12 -- unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java | 2 diffs (186 lines): diff -r 856e11044f24 -r 9a72b909f18a src/java/org/classpath/icedtea/pulseaudio/Operation.java --- a/src/java/org/classpath/icedtea/pulseaudio/Operation.java Tue Aug 12 15:17:14 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/Operation.java Tue Aug 12 16:55:28 2008 -0400 @@ -94,6 +94,13 @@ public class Operation { } } + public boolean isNull() { + if (operationPointer == 0) { + return true; + } + return false; + } + public State getState() { assert (operationPointer != 0); int state; diff -r 856e11044f24 -r 9a72b909f18a src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java --- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 15:17:14 2008 -0400 +++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java Tue Aug 12 16:55:28 2008 -0400 @@ -364,7 +364,7 @@ public class PulseAudioSourceDataLine im } }; - + addStreamListener(openCloseListener); final Semaphore semaphore = new Semaphore(0); @@ -374,15 +374,12 @@ public class PulseAudioSourceDataLine im this.addStreamListener(new StreamListener() { @Override public void update(StreamEvent e) { - System.out.println(this.getClass().getName() - + " waiting to stream to become ready"); if (e.getType() == StreamEvent.Type.READY) { semaphore.release(); } } }); - System.out.println("about to open stream"); native_start(); } @@ -392,8 +389,6 @@ public class PulseAudioSourceDataLine im // throw new LineUnavailableException("unable to prepare // stream"); } - - System.out.println(this.getClass().getName() + "stream is ready"); controls = new Control[2]; volumeControl = new PulseAudioStreamVolumeControl(this); @@ -500,7 +495,15 @@ public class PulseAudioSourceDataLine im } private void addStreamListener(StreamListener listener) { - this.streamListeners.add(listener); + synchronized (streamListeners) { + this.streamListeners.add(listener); + } + } + + private void removeStreamListener(StreamListener listener) { + synchronized (streamListeners) { + this.streamListeners.remove(listener); + } } public boolean isOpen() { @@ -516,8 +519,31 @@ public class PulseAudioSourceDataLine im public void close() { assert (isOpen); + final Semaphore semaphore = new Semaphore(0); + + StreamListener closeListener = new StreamListener() { + @Override + public void update(StreamEvent e) { + if (e.getType() == StreamEvent.Type.TERMINATED + || e.getType() == StreamEvent.Type.FAILED) { + semaphore.release(); + } + } + }; + + addStreamListener(closeListener); + synchronized (eventLoop.threadLock) { native_close(); + } + + try { + semaphore.acquire(); + System.out.println("stream closed"); + removeStreamListener(closeListener); + } catch (InterruptedException e) { + // throw new LineUnavailableException("unable to prepare + // stream"); } } @@ -660,6 +686,7 @@ public class PulseAudioSourceDataLine im fireStreamEvent(new StreamEvent(StreamEvent.Type.FAILED)); break; case 4: + fireStreamEvent(new StreamEvent(StreamEvent.Type.TERMINATED)); break; default: assert ("not supposed to happen".indexOf("false") >= 0); @@ -674,8 +701,10 @@ public class PulseAudioSourceDataLine im } private void fireStreamEvent(StreamEvent e) { - for (StreamListener streamListener : streamListeners) { - streamListener.update(e); + synchronized (streamListeners) { + for (StreamListener streamListener : streamListeners) { + streamListener.update(e); + } } } diff -r 856e11044f24 -r 9a72b909f18a src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c --- a/src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Tue Aug 12 15:17:14 2008 -0400 +++ b/src/native/org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine.c Tue Aug 12 16:55:28 2008 -0400 @@ -75,7 +75,7 @@ static void stream_state_change_callback jobject obj = java_context->obj; - printf("----> Stream state changed to %d\n", pa_stream_get_state(stream)); + // printf("stream state changed to %d\n", pa_stream_get_state(stream)); /* Call the 'update' method in java * to handle all java-side events @@ -91,10 +91,10 @@ static void stream_state_change_callback return; } - // printf("calling update on java\n"); + //printf("calling update on java\n"); (*env)->CallVoidMethod(env, obj, mid, pa_stream_get_state(stream)); - // printf("returning form stream_state_change_callback\n"); + //printf("returning form stream_state_change_callback\n"); return; } @@ -144,15 +144,12 @@ JNIEXPORT void JNICALL Java_org_classpat return; } - sample_spec.rate = sampleRate; sample_spec.channels = channels; printf("sample_spec.rate = %d\n", sample_spec.rate); printf("sample_spec.channels = %d\n", sample_spec.channels); - - - + if ( !pa_sample_spec_valid(&sample_spec)) { printf("error: invalid format\n"); throwByName(env, "java/lang/IllegalArgumentException", "Invalid format"); @@ -228,7 +225,6 @@ JNIEXPORT jlong JNICALL Java_org_classpa } - /* * Class: org_classpath_icedtea_pulseaudio_PulseAudioSourceDataLine * Method: native_start diff -r 856e11044f24 -r 9a72b909f18a unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java --- a/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Tue Aug 12 15:17:14 2008 -0400 +++ b/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java Tue Aug 12 16:55:28 2008 -0400 @@ -81,6 +81,8 @@ public class PulseSourceDataLineTest { @Test public void testPlay() throws LineUnavailableException, UnsupportedAudioFileException, IOException { + System.out.println("This test plays a file"); + File soundFile = new File("testsounds/startup.wav"); AudioInputStream audioInputStream = AudioSystem .getAudioInputStream(soundFile); From bugzilla-daemon at icedtea.classpath.org Tue Aug 12 19:22:49 2008 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 13 Aug 2008 02:22:49 +0000 Subject: [Bug 184] New: Internal Error (stubGenerator_zero.cpp:84), pid=14195, tid=1873802416 Error: ShouldNotReachHere() Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=184 Summary: Internal Error (stubGenerator_zero.cpp:84), pid=14195, tid=1873802416 Error: ShouldNotReachHere() Product: IcedTea Version: unspecified Platform: Macintosh OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: zenlive at gmail.com I tested the program in the ibook fedora9. My application uses the ThinWire+springframework(2.0/2.5) running in the Tomcat 5.5/6.0. It works in the jdk5/6+tomcat5/6+windows xp. But it let tomcat crashed in the fedora9. I switched the jdk to 1.5.0-gcj/openjdk-1.6.0, springframework 2.0/2.5 ,tomcat 5/6 and rebuilt the program. Because the jdk/jvm of sun cannot be installed in my ibook, I cannot test them. ------------------------------------------------------------------------------ # # An unexpected error has been detected by Java Runtime Environment: # # Internal Error (stubGenerator_zero.cpp:84), pid=14195, tid=1873802416 # Error: ShouldNotReachHere() # # Java VM: OpenJDK Core VM (1.6.0-b09 interpreted mode linux-) # If you would like to submit a bug report, please visit: # http://icedtea.classpath.org/bugzilla # --------------- T H R E A D --------------- Current thread (0x101e6648): JavaThread "ThinWire-EventProcessorThread-0-25776844" daemon [_thread_in_Java, id=14237, stack(0x6fa00000,0x6fb00000)] Java stack: 0x6fafddd8: local[0] = 0x3f800000 0x6fafdddc: call_wrapper = 0x6fa7ea80 0x6fafdde0: frame_type = ENTRY_FRAME 0x6fafdde4: next_frame = 0x6fafde4c 0x6fafdde8: unboxed parameter[3] = 0x6fafde54 0x6fafddec: unboxed parameter[2] = 0x6fafde58 0x6fafddf0: parameter[0] (JNIEnv) = 0x6fa7eea8 0x6fafddf4: parameter[1] (mirror) = 0x6fa7eeac 0x6fafddf8: parameter[2] = 0x6fafddec 0x6fafddfc: parameter[3] = 0x6fafdde8 0x6fafde00: parameter[4] = 0x6fafde50 0x6fafde04: istate->_thread = 0x101e6648 0x6fafde08: istate->_bcp = 0x00000000 0x6fafde0c: istate->_locals = 0x6fafde58 0x6fafde10: istate->_constants = 0x6a5e2b48 0x6fafde14: istate->_method = sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; 0x6fafde18: istate->_mdx = 0x00000000 0x6fafde1c: istate->_stack = 0x6fafde00 0x6fafde20: istate->_msg = 0x00000002 0x6fafde24: istate->_result = 0x00000000 0x6fafde28: (istate->_result) = 0x00000009 0x6fafde2c: (istate->_result) = 0x000000ac 0x6fafde30: istate->_prev_link = 0x00000000 0x6fafde34: istate->_oop_temp = 0x6a5e2ab8 0x6fafde38: istate->_stack_base = 0x6fafde04 0x6fafde3c: istate->_stack_limit = 0x6fafde00 0x6fafde40: istate->_monitor_base = 0x6fafde04 0x6fafde44: istate->_self_link = 0x6fafde04 0x6fafde48: frame_type = INTERPRETER_FRAME 0x6fafde4c: next_frame = 0x6fafdea4 0x6fafde50: local[2] = 0x00000000 0x6fafde54: local[1] = 0x5102bb40 0x6fafde58: local[0] = 0x4a373728 0x6fafde5c: istate->_thread = 0x101e6648 0x6fafde60: istate->_bcp = 0x6a5e278f 0x6fafde64: istate->_locals = 0x6fafdeb4 0x6fafde68: istate->_constants = 0x6a5e2b48 0x6fafde6c: istate->_method = sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; 0x6fafde70: istate->_mdx = 0x00000000 0x6fafde74: istate->_stack = 0x6fafde4c 0x6fafde78: istate->_msg = 0x00000008 0x6fafde7c: istate->_result = 0x6a5e2900 0x6fafde80: (istate->_result) = 0x0ee60e30 0x6fafde84: (istate->_result) = 0x00000003 0x6fafde88: istate->_prev_link = 0x00000000 0x6fafde8c: istate->_oop_temp = 0x00000000 0x6fafde90: istate->_stack_base = 0x6fafde5c 0x6fafde94: istate->_stack_limit = 0x6fafde3c 0x6fafde98: istate->_monitor_base = 0x6fafde5c 0x6fafde9c: istate->_self_link = 0x6fafde5c 0x6fafdea0: frame_type = INTERPRETER_FRAME 0x6fafdea4: next_frame = 0x6fafdf00 0x6fafdea8: local[3] = 0x00000000 0x6fafdeac: local[2] = 0x00000000 0x6fafdeb0: local[1] = 0x5102bb40 0x6fafdeb4: local[0] = 0x4a396fa8 0x6fafdeb8: istate->_thread = 0x101e6648 0x6fafdebc: istate->_bcp = 0x6a5e2e7e 0x6fafdec0: istate->_locals = 0x6fafdf0c 0x6fafdec4: istate->_constants = 0x6a5e3170 0x6fafdec8: istate->_method = sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; 0x6fafdecc: istate->_mdx = 0x00000000 0x6fafded0: istate->_stack = 0x6fafdea8 0x6fafded4: istate->_msg = 0x00000008 0x6fafded8: istate->_result = 0x6a5e27d8 0x6fafdedc: (istate->_result) = 0x0ee614a0 0x6fafdee0: (istate->_result) = 0x00000003 0x6fafdee4: istate->_prev_link = 0x00000000 0x6fafdee8: istate->_oop_temp = 0x00000000 0x6fafdeec: istate->_stack_base = 0x6fafdeb8 0x6fafdef0: istate->_stack_limit = 0x6fafdea8 0x6fafdef4: istate->_monitor_base = 0x6fafdeb8 0x6fafdef8: istate->_self_link = 0x6fafdeb8 0x6fafdefc: frame_type = INTERPRETER_FRAME 0x6fafdf00: next_frame = 0x6fafdf58 0x6fafdf04: local[2] = 0x00000000 0x6fafdf08: local[1] = 0x5102bb40 0x6fafdf0c: local[0] = 0x4a396fc0 0x6fafdf10: istate->_thread = 0x101e6648 0x6fafdf14: istate->_bcp = 0x6a2bb859 0x6fafdf18: istate->_locals = 0x6fafdf7c 0x6fafdf1c: istate->_constants = 0x6a2f2b90 0x6fafdf20: istate->_method = java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; 0x6fafdf24: istate->_mdx = 0x00000000 0x6fafdf28: istate->_stack = 0x6fafdf00 0x6fafdf2c: istate->_msg = 0x00000008 0x6fafdf30: istate->_result = 0x6a5e2eb8 0x6fafdf34: (istate->_result) = 0x0ee614a0 0x6fafdf38: (istate->_result) = 0x00000005 0x6fafdf3c: istate->_prev_link = 0x00000000 0x6fafdf40: istate->_oop_temp = 0x00000000 0x6fafdf44: istate->_stack_base = 0x6fafdf10 0x6fafdf48: istate->_stack_limit = 0x6fafdefc 0x6fafdf4c: istate->_monitor_base = 0x6fafdf10 0x6fafdf50: istate->_self_link = 0x6fafdf10 0x6fafdf54: frame_type = INTERPRETER_FRAME 0x6fafdf58: next_frame = 0x6fafdfc8 0x6fafdf5c: local[8] = 0x00000000 0x6fafdf60: local[7] = 0x00000000 0x6fafdf64: local[6] = 0x00000000 0x6fafdf68: local[5] = 0x00000000 0x6fafdf6c: local[4] = 0x00000000 0x6fafdf70: local[3] = 0x00000000 0x6fafdf74: local[2] = 0x00000000 0x6fafdf78: local[1] = 0x5102bb40 0x6fafdf7c: local[0] = 0x4a373728 0x6fafdf80: istate->_thread = 0x101e6648 0x6fafdf84: istate->_bcp = 0x6ae7090f 0x6fafdf88: istate->_locals = 0x6fafdfd8 0x6fafdf8c: istate->_constants = 0x6ae71118 0x6fafdf90: istate->_method = org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; 0x6fafdf94: istate->_mdx = 0x00000000 0x6fafdf98: istate->_stack = 0x6fafdf70 0x6fafdf9c: istate->_msg = 0x00000008 0x6fafdfa0: istate->_result = 0x6a2bb8c8 0x6fafdfa4: (istate->_result) = 0x0ee614a0 0x6fafdfa8: (istate->_result) = 0x00000003 0x6fafdfac: istate->_prev_link = 0x00000000 0x6fafdfb0: istate->_oop_temp = 0x00000000 0x6fafdfb4: istate->_stack_base = 0x6fafdf80 0x6fafdfb8: istate->_stack_limit = 0x6fafdf6c 0x6fafdfbc: istate->_monitor_base = 0x6fafdf80 0x6fafdfc0: istate->_self_link = 0x6fafdf80 0x6fafdfc4: frame_type = INTERPRETER_FRAME 0x6fafdfc8: next_frame = 0x6fafe024 0x6fafdfcc: local[3] = 0x00000000 0x6fafdfd0: local[2] = 0x00000000 0x6fafdfd4: local[1] = 0x4a373728 0x6fafdfd8: local[0] = 0x5102bb40 0x6fafdfdc: istate->_thread = 0x101e6648 0x6fafdfe0: istate->_bcp = 0x6b3747b4 0x6fafdfe4: istate->_locals = 0x6fafe028 0x6fafdfe8: istate->_constants = 0x6b374fd8 0x6fafdfec: istate->_method = org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint()Ljava/lang/Object; 0x6fafdff0: istate->_mdx = 0x00000000 0x6fafdff4: istate->_stack = 0x6fafdfcc 0x6fafdff8: istate->_msg = 0x00000008 0x6fafdffc: istate->_result = 0x6ae709c8 0x6fafe000: (istate->_result) = 0x0ee614a0 0x6fafe004: (istate->_result) = 0x00000003 0x6fafe008: istate->_prev_link = 0x00000000 0x6fafe00c: istate->_oop_temp = 0x00000000 0x6fafe010: istate->_stack_base = 0x6fafdfdc 0x6fafe014: istate->_stack_limit = 0x6fafdfcc 0x6fafe018: istate->_monitor_base = 0x6fafdfdc 0x6fafe01c: istate->_self_link = 0x6fafdfdc 0x6fafe020: frame_type = INTERPRETER_FRAME 0x6fafe024: next_frame = 0x6fafe074 0x6fafe028: local[0] = 0x4a396c98 0x6fafe02c: istate->_thread = 0x101e6648 0x6fafe030: istate->_bcp = 0x6b374693 0x6fafe034: istate->_locals = 0x6fafe080 0x6fafe038: istate->_constants = 0x6b374fd8 0x6fafe03c: istate->_method = org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; 0x6fafe040: istate->_mdx = 0x00000000 0x6fafe044: istate->_stack = 0x6fafe024 0x6fafe048: istate->_msg = 0x00000008 0x6fafe04c: istate->_result = 0x6b3747d0 0x6fafe050: (istate->_result) = 0x0ee614a0 0x6fafe054: (istate->_result) = 0x00000003 0x6fafe058: istate->_prev_link = 0x00000000 0x6fafe05c: istate->_oop_temp = 0x00000000 0x6fafe060: istate->_stack_base = 0x6fafe02c 0x6fafe064: istate->_stack_limit = 0x6fafe018 0x6fafe068: istate->_monitor_base = 0x6fafe02c 0x6fafe06c: istate->_self_link = 0x6fafe02c 0x6fafe070: frame_type = INTERPRETER_FRAME 0x6fafe074: next_frame = 0x6fafe0cc 0x6fafe078: local[2] = 0x00000000 0x6fafe07c: local[1] = 0x00000000 0x6fafe080: local[0] = 0x4a396c98 0x6fafe084: istate->_thread = 0x101e6648 0x6fafe088: istate->_bcp = 0x6ac2dc7f 0x6fafe08c: istate->_locals = 0x6fafe0f4 0x6fafe090: istate->_constants = 0x6ac338e0 0x6fafe094: istate->_method = org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; 0x6fafe098: istate->_mdx = 0x00000000 0x6fafe09c: istate->_stack = 0x6fafe07c 0x6fafe0a0: istate->_msg = 0x00000008 0x6fafe0a4: istate->_result = 0x6b374728 0x6fafe0a8: (istate->_result) = 0x0ee614a0 0x6fafe0ac: (istate->_result) = 0x00000005 0x6fafe0b0: istate->_prev_link = 0x00000000 0x6fafe0b4: istate->_oop_temp = 0x00000000 0x6fafe0b8: istate->_stack_base = 0x6fafe084 0x6fafe0bc: istate->_stack_limit = 0x6fafe060 0x6fafe0c0: istate->_monitor_base = 0x6fafe084 0x6fafe0c4: istate->_self_link = 0x6fafe084 0x6fafe0c8: frame_type = INTERPRETER_FRAME 0x6fafe0cc: next_frame = 0x6fafe140 0x6fafe0d0: local[9] = 0x00000000 0x6fafe0d4: local[8] = 0x00000000 0x6fafe0d8: local[7] = 0x00000000 0x6fafe0dc: local[6] = 0x00000000 0x6fafe0e0: local[5] = 0x4a396f88 0x6fafe0e4: local[4] = 0x4a396e80 0x6fafe0e8: local[3] = 0x50ac13b8 0x6fafe0ec: local[2] = 0x6ac98b28 0x6fafe0f0: local[1] = 0x4a396c98 0x6fafe0f4: local[0] = 0x50bfaa28 0x6fafe0f8: istate->_thread = 0x101e6648 0x6fafe0fc: istate->_bcp = 0x6b3746e5 0x6fafe100: istate->_locals = 0x6fafe14c 0x6fafe104: istate->_constants = 0x6b374fd8 0x6fafe108: istate->_method = org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; 0x6fafe10c: istate->_mdx = 0x00000000 0x6fafe110: istate->_stack = 0x6fafe0ec 0x6fafe114: istate->_msg = 0x00000008 0x6fafe118: istate->_result = 0x6ac2dd88 0x6fafe11c: (istate->_result) = 0x0ee614a0 0x6fafe120: (istate->_result) = 0x00000005 0x6fafe124: istate->_prev_link = 0x00000000 0x6fafe128: istate->_oop_temp = 0x00000000 0x6fafe12c: istate->_stack_base = 0x6fafe0f8 0x6fafe130: istate->_stack_limit = 0x6fafe0e4 0x6fafe134: istate->_monitor_base = 0x6fafe0f8 0x6fafe138: istate->_self_link = 0x6fafe0f8 0x6fafe13c: frame_type = INTERPRETER_FRAME 0x6fafe140: next_frame = 0x6fafe198 0x6fafe144: local[2] = 0x00000000 0x6fafe148: local[1] = 0x50bfaa28 0x6fafe14c: local[0] = 0x4a396c98 0x6fafe150: istate->_thread = 0x101e6648 0x6fafe154: istate->_bcp = 0x6afe249f 0x6fafe158: istate->_locals = 0x6fafe1b0 0x6fafe15c: istate->_constants = 0x6afe2958 0x6fafe160: istate->_method = org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; 0x6fafe164: istate->_mdx = 0x00000000 0x6fafe168: istate->_stack = 0x6fafe148 0x6fafe16c: istate->_msg = 0x00000008 0x6fafe170: istate->_result = 0x6b374728 0x6fafe174: (istate->_result) = 0x0ee614a0 0x6fafe178: (istate->_result) = 0x00000005 0x6fafe17c: istate->_prev_link = 0x00000000 0x6fafe180: istate->_oop_temp = 0x00000000 0x6fafe184: istate->_stack_base = 0x6fafe150 0x6fafe188: istate->_stack_limit = 0x6fafe144 0x6fafe18c: istate->_monitor_base = 0x6fafe150 0x6fafe190: istate->_self_link = 0x6fafe150 0x6fafe194: frame_type = INTERPRETER_FRAME 0x6fafe198: next_frame = 0x6fafe1fc 0x6fafe19c: local[5] = 0x00000000 0x6fafe1a0: local[4] = 0x00000000 0x6fafe1a4: local[3] = 0x00000000 0x6fafe1a8: local[2] = 0x00000000 0x6fafe1ac: local[1] = 0x4a396c98 0x6fafe1b0: local[0] = 0x50ba54f0 0x6fafe1b4: istate->_thread = 0x101e6648 0x6fafe1b8: istate->_bcp = 0x6b3746e5 0x6fafe1bc: istate->_locals = 0x6fafe208 0x6fafe1c0: istate->_constants = 0x6b374fd8 0x6fafe1c4: istate->_method = org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; 0x6fafe1c8: istate->_mdx = 0x00000000 0x6fafe1cc: istate->_stack = 0x6fafe1a8 0x6fafe1d0: istate->_msg = 0x00000008 0x6fafe1d4: istate->_result = 0x6afe24f0 0x6fafe1d8: (istate->_result) = 0x0ee614a0 0x6fafe1dc: (istate->_result) = 0x00000005 0x6fafe1e0: istate->_prev_link = 0x00000000 0x6fafe1e4: istate->_oop_temp = 0x00000000 0x6fafe1e8: istate->_stack_base = 0x6fafe1b4 0x6fafe1ec: istate->_stack_limit = 0x6fafe1a0 0x6fafe1f0: istate->_monitor_base = 0x6fafe1b4 0x6fafe1f4: istate->_self_link = 0x6fafe1b4 0x6fafe1f8: frame_type = INTERPRETER_FRAME 0x6fafe1fc: next_frame = 0x6fafe254 0x6fafe200: local[2] = 0x00000000 0x6fafe204: local[1] = 0x50ba54f0 0x6fafe208: local[0] = 0x4a396c98 0x6fafe20c: istate->_thread = 0x101e6648 0x6fafe210: istate->_bcp = 0x6aff58d7 0x6fafe214: istate->_locals = 0x6fafe28c 0x6fafe218: istate->_constants = 0x6aff5fd8 0x6fafe21c: istate->_method = org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lan