From ptisnovs at icedtea.classpath.org Thu Mar 1 02:08:38 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 01 Mar 2012 10:08:38 +0000 Subject: /hg/gfx-test: Fixed copyright message (added year 2012). Message-ID: changeset 7742d8ac7ad4 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=7742d8ac7ad4 author: Pavel Tisnovsky date: Thu Mar 01 11:07:48 2012 +0100 Fixed copyright message (added year 2012). diffstat: ChangeLog | 26 ++++++++++ src/org/gfxtest/ImageDiffer/Main.java | 2 +- src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java | 2 +- src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java | 2 +- src/org/gfxtest/common/InvalidParameterValueException.java | 2 +- src/org/gfxtest/framework/annotations/GraphicsPrimitive.java | 2 +- src/org/gfxtest/framework/annotations/GraphicsPrimitives.java | 2 +- src/org/gfxtest/framework/annotations/RenderStyle.java | 2 +- src/org/gfxtest/framework/annotations/RenderStyles.java | 2 +- src/org/gfxtest/framework/annotations/TestType.java | 2 +- src/org/gfxtest/framework/annotations/TestTypes.java | 2 +- src/org/gfxtest/framework/annotations/Transformation.java | 2 +- src/org/gfxtest/framework/annotations/Transformations.java | 2 +- src/org/gfxtest/framework/annotations/Zoom.java | 2 +- src/org/gfxtest/harness/Configuration.java | 2 +- src/org/gfxtest/harness/ExternalCommands.java | 2 +- src/org/gfxtest/harness/FileSystemTools.java | 2 +- src/org/gfxtest/harness/SourceViewer.java | 2 +- src/org/gfxtest/reporter/Reporter.java | 2 +- src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java | 2 +- src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java | 2 +- src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java | 2 +- src/org/gfxtest/testsuites/ScaledPolylines.java | 2 +- 23 files changed, 48 insertions(+), 22 deletions(-) diffs (297 lines): diff -r c657f52d8637 -r 7742d8ac7ad4 ChangeLog --- a/ChangeLog Tue Feb 28 12:42:53 2012 +0100 +++ b/ChangeLog Thu Mar 01 11:07:48 2012 +0100 @@ -1,3 +1,29 @@ +2012-03-01 Pavel Tisnovsky + + * src/org/gfxtest/ImageDiffer/Main.java: + * src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java: + * src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java: + * src/org/gfxtest/common/InvalidParameterValueException.java: + * src/org/gfxtest/framework/annotations/GraphicsPrimitive.java: + * src/org/gfxtest/framework/annotations/GraphicsPrimitives.java: + * src/org/gfxtest/framework/annotations/RenderStyle.java: + * src/org/gfxtest/framework/annotations/RenderStyles.java: + * src/org/gfxtest/framework/annotations/TestType.java: + * src/org/gfxtest/framework/annotations/TestTypes.java: + * src/org/gfxtest/framework/annotations/Transformation.java: + * src/org/gfxtest/framework/annotations/Transformations.java: + * src/org/gfxtest/framework/annotations/Zoom.java: + * src/org/gfxtest/harness/Configuration.java: + * src/org/gfxtest/harness/ExternalCommands.java: + * src/org/gfxtest/harness/FileSystemTools.java: + * src/org/gfxtest/harness/SourceViewer.java: + * src/org/gfxtest/reporter/Reporter.java: + * src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java: + * src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java: + * src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java: + * src/org/gfxtest/testsuites/ScaledPolylines.java: + Fixed copyright message (added year 2012). + 2012-02-28 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingCircleByEllipseShape.java: diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/ImageDiffer/Main.java --- a/src/org/gfxtest/ImageDiffer/Main.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/ImageDiffer/Main.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java --- a/src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/ImageDiffer/ResultWriters/HtmlStructureWriter.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java --- a/src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/ImageDiffer/ResultWriters/ResultWriter.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/common/InvalidParameterValueException.java --- a/src/org/gfxtest/common/InvalidParameterValueException.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/common/InvalidParameterValueException.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/framework/annotations/GraphicsPrimitive.java --- a/src/org/gfxtest/framework/annotations/GraphicsPrimitive.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/framework/annotations/GraphicsPrimitive.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/framework/annotations/GraphicsPrimitives.java --- a/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/framework/annotations/GraphicsPrimitives.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/framework/annotations/RenderStyle.java --- a/src/org/gfxtest/framework/annotations/RenderStyle.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/framework/annotations/RenderStyle.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/framework/annotations/RenderStyles.java --- a/src/org/gfxtest/framework/annotations/RenderStyles.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/framework/annotations/RenderStyles.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/framework/annotations/TestType.java --- a/src/org/gfxtest/framework/annotations/TestType.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/framework/annotations/TestType.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/framework/annotations/TestTypes.java --- a/src/org/gfxtest/framework/annotations/TestTypes.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/framework/annotations/TestTypes.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/framework/annotations/Transformation.java --- a/src/org/gfxtest/framework/annotations/Transformation.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/framework/annotations/Transformation.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/framework/annotations/Transformations.java --- a/src/org/gfxtest/framework/annotations/Transformations.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/framework/annotations/Transformations.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/framework/annotations/Zoom.java --- a/src/org/gfxtest/framework/annotations/Zoom.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/framework/annotations/Zoom.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/harness/Configuration.java --- a/src/org/gfxtest/harness/Configuration.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/harness/Configuration.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/harness/ExternalCommands.java --- a/src/org/gfxtest/harness/ExternalCommands.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/harness/ExternalCommands.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/harness/FileSystemTools.java --- a/src/org/gfxtest/harness/FileSystemTools.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/harness/FileSystemTools.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/harness/SourceViewer.java --- a/src/org/gfxtest/harness/SourceViewer.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/harness/SourceViewer.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/reporter/Reporter.java --- a/src/org/gfxtest/reporter/Reporter.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/reporter/Reporter.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java --- a/src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java --- a/src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java --- a/src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. diff -r c657f52d8637 -r 7742d8ac7ad4 src/org/gfxtest/testsuites/ScaledPolylines.java --- a/src/org/gfxtest/testsuites/ScaledPolylines.java Tue Feb 28 12:42:53 2012 +0100 +++ b/src/org/gfxtest/testsuites/ScaledPolylines.java Thu Mar 01 11:07:48 2012 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012 Red Hat This file is part of IcedTea. From ahughes at redhat.com Thu Mar 1 03:45:25 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 01 Mar 2012 06:45:25 -0500 (EST) Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: <4F4D036B.7080007@redhat.com> Message-ID: ----- Original Message ----- > Hi, > > I'd like to add following "small" (well 1MB of size ;-) backport to > IcedTea6: > "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" > > This patch fixes (among other thing) following issue: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > > hg diff created against recent IcedTea6 HEAD version is stored in an > attachment > in a BZIP archive (because I don't want to send quite big 1MB > attachment to public mail list). > > Please note that it's not a direct backport because of (quite minor) > differences > between IT6 and OpenJDK7 sources. This patch applies cleanly and it > does not > seem to cause any compatibility issues. > > Here's ChangeLog entry: > > 2012-02-28 Pavel Tisnovsky > > * Makefile.am: Add new patch. > * NEWS: Mention backport. > * patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: > Backport of S6469266: Integrate Apache XMLSec 1.4.2 into JDK 7 > > > Can anybody please review this change? > > Thank you in advance, > Pavel > What's the motivation for this? Does the proprietary JDK 6 use this version? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Thu Mar 1 04:24:50 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 01 Mar 2012 07:24:50 -0500 (EST) Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: <4F4F6860.7030101@redhat.com> Message-ID: <43059643-80dc-4e43-8e2c-ca836621803e@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> Hi, > >> > >> I'd like to add following "small" (well 1MB of size ;-) backport > >> to > >> IcedTea6: > >> "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" > >> > >> This patch fixes (among other thing) following issue: > >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >> > >> hg diff created against recent IcedTea6 HEAD version is stored in > >> an > >> attachment > >> in a BZIP archive (because I don't want to send quite big 1MB > >> attachment to public mail list). > >> > >> Please note that it's not a direct backport because of (quite > >> minor) > >> differences > >> between IT6 and OpenJDK7 sources. This patch applies cleanly and > >> it > >> does not > >> seem to cause any compatibility issues. > >> > >> Here's ChangeLog entry: > >> > >> 2012-02-28 Pavel Tisnovsky > >> > >> * Makefile.am: Add new patch. > >> * NEWS: Mention backport. > >> * patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: > >> Backport of S6469266: Integrate Apache XMLSec 1.4.2 into JDK 7 > >> > >> > >> Can anybody please review this change? > >> > >> Thank you in advance, > >> Pavel > >> > > > > What's the motivation for this? Does the proprietary JDK 6 use > > this version? > > Can not say anything about JDK 6, but tests mentioned here: > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > > failed only on IcedTea6. IT7/O7 looks ok, the same for proprietary > JDK6. > > Pavel > > Yes, but IcedTea6/OpenJDK6 has to meet the Java 6 specification. IcedTea7/OpenJDK7 obviously don't. Do you have a link to the original changeset? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Thu Mar 1 04:28:06 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 01 Mar 2012 07:28:06 -0500 (EST) Subject: Reviewer needed: fixed typos in JDK7 forest (ScriptEngineManager class) In-Reply-To: <604094ae-34d0-43df-8da7-edafc56db843@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <716d4aae-f10e-4edd-94a1-84dcb0d28c9d@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > ----- Original Message ----- > > Hi, > > > > I'd like to fix JavaDoc typos in a class ScriptEngineManager. Patch > > applicable > > to jdk7 forest is stored in an attachment. > > > > Can anybody please review this change? > > > > Thank you in advance. > > > > Cheers, > > Pavel > > > > (fix for upstream will follow). > > > > > > > > [Text Documents:hg_diff.patch] > > > > Such a change to public javax.* classes needs to go upstream first. > Although > the changes are minor, this alters the API specification. > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > > I see this was reviewed and pushed to 8: http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-February/009380.html http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-March/009422.html Let's see if it makes it to 7u. If it does, we can add it to IcedTea7 too, ahead of u6. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at redhat.com Thu Mar 1 04:40:12 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 01 Mar 2012 13:40:12 +0100 Subject: Reviewer needed: fixed typos in JDK7 forest (ScriptEngineManager class) In-Reply-To: <716d4aae-f10e-4edd-94a1-84dcb0d28c9d@zmail17.collab.prod.int.phx2.redhat.com> References: <716d4aae-f10e-4edd-94a1-84dcb0d28c9d@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F4F6E2C.4030709@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> ----- Original Message ----- >>> Hi, >>> >>> I'd like to fix JavaDoc typos in a class ScriptEngineManager. Patch >>> applicable >>> to jdk7 forest is stored in an attachment. >>> >>> Can anybody please review this change? >>> >>> Thank you in advance. >>> >>> Cheers, >>> Pavel >>> >>> (fix for upstream will follow). >>> >>> >>> >>> [Text Documents:hg_diff.patch] >>> >> Such a change to public javax.* classes needs to go upstream first. >> Although >> the changes are minor, this alters the API specification. >> -- >> Andrew :) >> >> Free Java Software Engineer >> Red Hat, Inc. (http://www.redhat.com) >> >> PGP Key: 248BDC07 (https://keys.indymedia.org/) >> Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 >> >> > > I see this was reviewed and pushed to 8: > > http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-February/009380.html > http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-March/009422.html > > Let's see if it makes it to 7u. If it does, we can add it to IcedTea7 too, ahead of u6. Sure, I'm working on it. Pavel From ptisnovs at redhat.com Thu Mar 1 04:15:28 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 01 Mar 2012 13:15:28 +0100 Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: References: Message-ID: <4F4F6860.7030101@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Hi, >> >> I'd like to add following "small" (well 1MB of size ;-) backport to >> IcedTea6: >> "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" >> >> This patch fixes (among other thing) following issue: >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >> >> hg diff created against recent IcedTea6 HEAD version is stored in an >> attachment >> in a BZIP archive (because I don't want to send quite big 1MB >> attachment to public mail list). >> >> Please note that it's not a direct backport because of (quite minor) >> differences >> between IT6 and OpenJDK7 sources. This patch applies cleanly and it >> does not >> seem to cause any compatibility issues. >> >> Here's ChangeLog entry: >> >> 2012-02-28 Pavel Tisnovsky >> >> * Makefile.am: Add new patch. >> * NEWS: Mention backport. >> * patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: >> Backport of S6469266: Integrate Apache XMLSec 1.4.2 into JDK 7 >> >> >> Can anybody please review this change? >> >> Thank you in advance, >> Pavel >> > > What's the motivation for this? Does the proprietary JDK 6 use this version? Can not say anything about JDK 6, but tests mentioned here: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 failed only on IcedTea6. IT7/O7 looks ok, the same for proprietary JDK6. Pavel From dbhole at redhat.com Thu Mar 1 12:27:19 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 1 Mar 2012 15:27:19 -0500 Subject: [rfc - concept][icedtea-web] plugin tests In-Reply-To: <4F39363F.6060107@redhat.com> References: <4F39363F.6060107@redhat.com> Message-ID: <20120301202718.GL32730@redhat.com> * Jiri Vanek [2012-02-13 11:09]: > Hi all! > > I think, that I can use current reproducers approach to test applets. > Current approch simple/signed src/resource/testcase and testing server with examination of stdin/out can and will be reused without any modification This won't catch certain issues, like drawing issues for example, or keyboard input related issues. > Instead of jnlp files from resources will be used html file and instead of javaws will be used eg firefox (can use more testing browsers for testing, but can be hard to maintaining tests to all three mayor browsers). And I will always kill the browser before next test. I think then we will miss certain issues, since the VM is shared. The browser kill should be optional. > On the other side I'm afraid I will lost advantage of -headless approach. And I'm not sure if I will be able to use awt robot (as I have failed once already, but some screen-capture approach will be possible for sure). But at least lunching of graphical apps must be solved, as firefox will always have gui! :) > Also I will lost possibility to run plain cron job , But I remeber that "gui" tasks can be run via cron too. Yes, you can use something like Xvfb and run it via cron. > And it will be necessary to add code coverage for plugin.jar :) [some-when :D ] > Agreed! :) Thanks for taking this initiative! Cheers, Deepak From dbhole at redhat.com Thu Mar 1 12:36:37 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 1 Mar 2012 15:36:37 -0500 Subject: [rfc][icedtea-web] plugin splash screen In-Reply-To: <4F3E88D3.2050805@redhat.com> References: <4F392E5A.8010407@redhat.com> <20120214194750.GQ22383@redhat.com> <4F3E88D3.2050805@redhat.com> Message-ID: <20120301203636.GA24599@redhat.com> * Jiri Vanek [2012-02-17 12:04]: > On 02/14/2012 08:47 PM, Deepak Bhole wrote: > >* Jiri Vanek [2012-02-13 10:36]: > >>Hi! > >> > >>This is plugin's spalsh screen based on Deepak's old code. > >>You can see imaged spalshscreen here: http://download.eng.brq.redhat.com/scratch/jvanek/pluginLoading.gif > >>Before JVM actually starts, there is just gray box. Currently I have no idea how to get rid of it. But I'm also not sure if it is possible or if it have some value to solve it. > >>The grey box AFTER the splash-screen is correctly loaded empty applet (sorry for providing such a dummy one:-/). In case 3.5mb animated gif is too big for you just check this stalled one - http://download.eng.brq.redhat.com/scratch/jvanek/screen55.gif ;) > >> > >>The diff in atachement is code of spalsh creen nearly identical with original Deepak's one - just adapted for head. I had just noticed that t is not at actual head - the diff of file b/netx/net/sourceforge/jnlp/Launcher.java is just "hardcoded" Danesh's fix for recent applet regression and have nothing to do with splash screen. > >>The changes in testengine are just funny ones - for observering the spalsh screen, but I think they are worthy to be inside. In case that some test of splash screen will be in, they will be necessary. > >>If you want to see the splash screen in work, make install and configure firefox, then check any applet;). If you want to see more of cycling sphere, you can start tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java class with -Dtest.server.dir setted correctly as tests do, add attached html file into this jnlp_server and lunch it... (It is how this gif was created). > >> > >>Any comments to current approach are more then welcomed! > >> > >>Things for future I'm thinking about > >>- when applet will fail to load, something happens - eg text with exception, just sad emoticon with information about debuging console.... > > > >I wanted to do something similar, so definitely +1 :) I was thinking of > >using the same shadowed rounded rectangle that the loading screen shows, > >but with red color and different text inside. > > ok. I will do my best. > > > >>- javaws splash screen - I think that when plugin have spalsh screen, then javaws should have it too, to be unified - My ideas are - at first use gif image for "java -splash" and then "quickly" replace him ASAP with true vector graphic. Both vorthy? Just vector graphics? Just animated gif? (not animated version of luncher is attached) > > > >javaws applications can already specify their own splash screen -- you > >mean we should show one before that? > > Yes - currently there is possibility to use , which is working quite well But we are not following the spec in : > > "The optional kind="splash" attribute may be used in an icon element to indicate that the image is to be used as a "splash" screen during the launch of an application. If the JNLP file does not contain an icon element with kind="splash" attribute, Java Web Start will construct a splash screen using other items from the information Element. " > [http://docs.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/syntax.html] > > Also user can hack pass psalsh screen wia -J-splash=..... (this will walk arround -headless, but I think there is no need solve this "walk arround" as bug. > > So my ideas about javaws splashscreen are: > 1)no headless, and user have deffined show animated gif based on splashcreen as -splash= argument to java inside javaws by -spalsh=.... > It will lead to showing of familiar splash screen,which then swap to user defined one > in case that -J-splash is defined, then it will overwrite "my gif" -splash (as -J arguments have priority) > 2)no headless, and user have NOT deffined show animated gif based on splashcreen as -splash= argument to java inside javaws by -spalsh=.... > It will lead to showing of familiar splash screen, which will then swap to "plugin like" vector splash screen containg informations as specification is saying. > in case that -J-splash is defined, then it will overwrite "my gif" -splash (as -J arguments have priority) > 3) headless, and user have (NOT) deffined no splsah screens at all (unless the -J one is specified) > -J-spalsh will be still shown. > > Summary - applets and javaws will have same splashcreen. In case thta user one defined in jnlp, then "our same" splashcreen will be here just for second or two, then replaced by user one. > > ^^ Bad idea? :( > Nope, sounds good to me. > Btw - plugin.jar is using netx.jar, but not vice versa - true? > True! > > > >>- remake the loadng logo - I like Deepaks aproach, and I'm considering it as nice one. But my sense for art is Zero-one. If you would like to suggest different one, please keep in mind it msut be vector one. A can also visit few frends oriented to computer graphic (I mean art, no pure programming) and maybe we can find and create something better. But currently I consider it as waste of time. > >> > > > >Oh yeah, my work was pretty much a PoC. A more pretty splash screen is > >quite welcome :) > > I have contacted some my art-friends. We will see what we will draw. But the vector-javacode-based image looks like mission-impossible thing for them. > Yes, that is why my original code was so simple with just the circle spinner.. and even that was really convoluted code! :( Deepak From omajid at redhat.com Thu Mar 1 13:05:25 2012 From: omajid at redhat.com (Omair Majid) Date: Thu, 01 Mar 2012 16:05:25 -0500 Subject: [icedtea-web] RFC: fix L&F issues with swing applications Message-ID: <4F4FE495.900@redhat.com> Hi, The attached patch fixes a regression in icedtea-web 1.2 that occurs with some jnlp applications (such as http://www.soapui.org/jnlp/soapui.jnlp) where they are unable to set the look and feel for dialogs. The actual problem was not just limited to that. It turns out that we were not setting the right classloader for EventQueue - this classloader is used by EventQueue to obtain Look-and-Feel related classes (among other things). The only time to set this classloader is when the EventQueue is being created. And the EventQueue is created when a new AppContext is created, and the current context classloader of the thread is used. The attached patch (I have tried to keep it minimal) tires to fix this problem by creating the JNLPClassLoader as early as possible and then sets it as the context ClassLoader for jnlp applications. I suspect applets may be affected by similar issues, but I don't have a reproducer showing a problem and this patch doesn't change anything for them. Thoughts? Comments? Thanks, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: early-classloader-04.patch Type: text/x-patch Size: 7643 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120301/9fbc3249/early-classloader-04.patch From dbhole at redhat.com Thu Mar 1 13:18:47 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 1 Mar 2012 16:18:47 -0500 Subject: [icedtea-web] RFC: fix L&F issues with swing applications In-Reply-To: <4F4FE495.900@redhat.com> References: <4F4FE495.900@redhat.com> Message-ID: <20120301211846.GC24599@redhat.com> * Omair Majid [2012-03-01 16:07]: > Hi, > > The attached patch fixes a regression in icedtea-web 1.2 that occurs > with some jnlp applications (such as > http://www.soapui.org/jnlp/soapui.jnlp) where they are unable to set the > look and feel for dialogs. > > The actual problem was not just limited to that. It turns out that we > were not setting the right classloader for EventQueue - this classloader > is used by EventQueue to obtain Look-and-Feel related classes (among > other things). The only time to set this classloader is when the > EventQueue is being created. And the EventQueue is created when a new > AppContext is created, and the current context classloader of the thread > is used. > > The attached patch (I have tried to keep it minimal) tires to fix this > problem by creating the JNLPClassLoader as early as possible and then > sets it as the context ClassLoader for jnlp applications. > > I suspect applets may be affected by similar issues, but I don't have a > reproducer showing a problem and this patch doesn't change anything for > them. > I am not sure how we could reproduce the problems with applets either. I think we can overlook that situation for now. The patch looks good to me. Assuming you have tested it, please push to 1.2 and HEAD. Thanks! Deepak > Thoughts? Comments? > > Thanks, > Omair > > diff --git a/netx/net/sourceforge/jnlp/Launcher.java b/netx/net/sourceforge/jnlp/Launcher.java > --- a/netx/net/sourceforge/jnlp/Launcher.java > +++ b/netx/net/sourceforge/jnlp/Launcher.java > @@ -527,7 +527,7 @@ > * Launches a JNLP application. This method should be called > * from a thread in the application's thread group. > */ > - protected ApplicationInstance launchApplication(JNLPFile file) throws LaunchException { > + protected ApplicationInstance launchApplication(JNLPClassLoader classLoader, JNLPFile file) throws LaunchException { > if (!file.isApplication()) > throw launchError(new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LNotApplication"), R("LNotApplicationInfo"))); > > @@ -549,7 +549,7 @@ > > handler.launchInitialized(file); > > - ApplicationInstance app = createApplication(file); > + ApplicationInstance app = createApplication(classLoader, file); > app.initialize(); > > String mainName = file.getApplication().getMainClass(); > @@ -600,7 +600,6 @@ > throw launchError(new LaunchException(file, ex, R("LSFatal"), R("LCLaunching"), R("LCouldNotLaunch"), R("LCouldNotLaunchInfo"))); > } > } > - > /** > * Set the classloader as the context classloader for all threads in > * the given threadgroup. This is required to make some applications > @@ -648,12 +647,12 @@ > * @param file the JNLP file > * @param enableCodeBase whether to add the codebase URL to the classloader > */ > - protected ApplicationInstance launchApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > + protected ApplicationInstance launchApplet(JNLPClassLoader classLoader, JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > if (!file.isApplet()) > throw launchError(new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LNotApplet"), R("LNotAppletInfo"))); > > try { > - AppletInstance applet = createApplet(file, enableCodeBase, cont); > + AppletInstance applet = createApplet(classLoader, file, enableCodeBase, cont); > applet.initialize(); > > applet.getAppletEnvironment().startApplet(); // this should be a direct call to applet instance > @@ -668,12 +667,12 @@ > /** > * Gets an ApplicationInstance, but does not launch the applet. > */ > - protected ApplicationInstance getApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > + protected ApplicationInstance getApplet(JNLPClassLoader classLoader, JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > if (!file.isApplet()) > throw launchError(new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LNotApplet"), R("LNotAppletInfo"))); > > try { > - AppletInstance applet = createApplet(file, enableCodeBase, cont); > + AppletInstance applet = createApplet(classLoader, file, enableCodeBase, cont); > applet.initialize(); > return applet; > } catch (LaunchException lex) { > @@ -687,7 +686,7 @@ > * Launches a JNLP installer. This method should be called from > * a thread in the application's thread group. > */ > - protected ApplicationInstance launchInstaller(JNLPFile file) throws LaunchException { > + protected ApplicationInstance launchInstaller(JNLPClassLoader classLoader, JNLPFile file) throws LaunchException { > throw launchError(new LaunchException(file, null, R("LSFatal"), R("LCNotSupported"), R("LNoInstallers"), R("LNoInstallersInfo"))); > } > > @@ -696,9 +695,9 @@ > * > * @param enableCodeBase whether to add the code base URL to the classloader > */ > - protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > + protected AppletInstance createApplet(JNLPClassLoader classLoader, JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > try { > - JNLPClassLoader loader = JNLPClassLoader.getInstance(file, updatePolicy); > + JNLPClassLoader loader = classLoader; > > if (enableCodeBase) { > loader.enableCodeBase(); > @@ -742,9 +741,9 @@ > * @param file the PluginBridge to be used. > * @param enableCodeBase whether to add the code base URL to the classloader. > */ > - protected Applet createAppletObject(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > + protected Applet createAppletObject(JNLPClassLoader classLoader, JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > try { > - JNLPClassLoader loader = JNLPClassLoader.getInstance(file, updatePolicy); > + JNLPClassLoader loader = classLoader; > > if (enableCodeBase) { > loader.enableCodeBase(); > @@ -765,9 +764,9 @@ > /** > * Creates an Application. > */ > - protected ApplicationInstance createApplication(JNLPFile file) throws LaunchException { > + protected ApplicationInstance createApplication(JNLPClassLoader classLoader, JNLPFile file) throws LaunchException { > try { > - JNLPClassLoader loader = JNLPClassLoader.getInstance(file, updatePolicy); > + JNLPClassLoader loader = classLoader; > ThreadGroup group = Thread.currentThread().getThreadGroup(); > > ApplicationInstance app = new ApplicationInstance(file, group, loader); > @@ -873,24 +872,31 @@ > > public void run() { > try { > + if (isPlugin) { > + // Do not display download indicators if we're using gcjwebplugin. > + JNLPRuntime.setDefaultDownloadIndicator(null); > + } > + > + JNLPClassLoader classLoader = JNLPClassLoader.getInstance(file, updatePolicy); > + > // Do not create new AppContext if we're using NetX and icedteaplugin. > // The plugin needs an AppContext too, but it has to be created earlier. > - if (context && !isPlugin) > + if (context && !isPlugin) { > + setContextClassLoader(classLoader); > SunToolkit.createNewAppContext(); > + } > > doPerApplicationAppContextHacks(); > > if (isPlugin) { > - // Do not display download indicators if we're using gcjwebplugin. > - JNLPRuntime.setDefaultDownloadIndicator(null); > - application = getApplet(file, ((PluginBridge)file).codeBaseLookup(), cont); > + application = getApplet(classLoader, file, ((PluginBridge)file).codeBaseLookup(), cont); > } else { > if (file.isApplication()) > - application = launchApplication(file); > + application = launchApplication(classLoader, file); > else if (file.isApplet()) > - application = launchApplet(file, true, cont); // enable applet code base > + application = launchApplet(classLoader, file, true, cont); // enable applet code base > else if (file.isInstaller()) > - application = launchInstaller(file); > + application = launchInstaller(classLoader, file); > else > throw launchError(new LaunchException(file, null, > R("LSFatal"), R("LCClient"), R("LNotLaunchable"), From dbhole at redhat.com Thu Mar 1 14:50:29 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 1 Mar 2012 17:50:29 -0500 Subject: RFC: Patch to fix error in jdk_generic_profile.sh Message-ID: <20120301225028.GF24599@redhat.com> Hi, This patch fixes a bug in the jdk_generic_profile.sh script. Fix is pretty self-evident. OK for 7 and 8 forest? Thanks, Deepak -------------- next part -------------- diff -r 6503c4d91b96 make/jdk_generic_profile.sh --- a/make/jdk_generic_profile.sh Tue Feb 21 23:45:27 2012 +0000 +++ b/make/jdk_generic_profile.sh Thu Mar 01 17:49:03 2012 -0500 @@ -421,7 +421,7 @@ # JPEG_CFLAGS and JPEG_LIBS tell the compiler how to compile and # link against libjpeg if [ "${JPEG_LIBS}" = "" ] ; then - ZLIB_LIBS="-ljpeg" + JPEG_LIBS="-ljpeg" fi export JPEG_LIBS From ChrisPhi at redhat.com Thu Mar 1 15:19:06 2012 From: ChrisPhi at redhat.com (Chris Phillips) Date: Thu, 01 Mar 2012 18:19:06 -0500 Subject: RFC: Patch to fix error in jdk_generic_profile.sh In-Reply-To: <20120301225028.GF24599@redhat.com> References: <20120301225028.GF24599@redhat.com> Message-ID: <4F5003EA.8090204@RedHat.Com> On 01/03/12 05:50 PM, Deepak Bhole wrote: > Hi, > > This patch fixes a bug in the jdk_generic_profile.sh script. Fix is > pretty self-evident. > > OK for 7 and 8 forest? > > Thanks, > Deepak Looks good to me ;-) , also for 2.1 ? Cheers! Chris From bugzilla-daemon at icedtea.classpath.org Thu Mar 1 17:01:32 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 02 Mar 2012 01:01:32 +0000 Subject: [Bug 820] IcedTea-Web 1.1.3 crashing Firefox when loading Citrix XenApp In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=820 alex_mayorga changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution| |FIXED --- Comment #7 from alex_mayorga 2012-03-02 01:01:32 UTC --- This no longer crashes with the following configuration. IcedTea-Web 1.2pre (1.2~pre2-1ubuntu3) Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20120229 Firefox/13.0a1 ID:20120229052709 Linux VPCCW1FFXL 3.2.0-17-generic #27-Ubuntu SMP Fri Feb 24 15:37:36 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From jvanek at redhat.com Fri Mar 2 01:21:09 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 02 Mar 2012 10:21:09 +0100 Subject: [rfc - concept][icedtea-web] plugin tests In-Reply-To: <20120301202718.GL32730@redhat.com> References: <4F39363F.6060107@redhat.com> <20120301202718.GL32730@redhat.com> Message-ID: <4F509105.4040708@redhat.com> On 03/01/2012 09:27 PM, Deepak Bhole wrote: > * Jiri Vanek [2012-02-13 11:09]: >> Hi all! >> >> I think, that I can use current reproducers approach to test applets. >> Current approch simple/signed src/resource/testcase and testing server with examination of stdin/out can and will be reused without any modification > > This won't catch certain issues, like drawing issues for example, or > keyboard input related issues. Yap - drawing issues and mouse-clicking can be handled via awt robot an this is on the way. (with small observe-observable paradigm to be added into current engine to read stdout/err on the fly will be quit suitable for most interactivity tests) For more sophisticated user inputs (can awt tobot do som typing in textfields? I have some misty memories it can - so no issue here!) we must stay away of JCK-graphics tests, when user (me!!!) is sitting infront of monitor and clicking nonsenses and watching wired results, confitming txtxt and shapes.... For this purposes I believe we already have the wikipage with compelx aplications. > >> Instead of jnlp files from resources will be used html file and instead of javaws will be used eg firefox (can use more testing browsers for testing, but can be hard to maintaining tests to all three mayor browsers). And I will always kill the browser before next test. > > I think then we will miss certain issues, since the VM is shared. The > browser kill should be optional. True. As I have done this now, it is optional - firefox (browser..)is lunched and killed inside test calss. However TestClass should take care and kill him at least in @AfterClass > >> On the other side I'm afraid I will lost advantage of -headless approach. And I'm not sure if I will be able to use awt robot (as I have failed once already, but some screen-capture approach will be possible for sure). But at least lunching of graphical apps must be solved, as firefox will always have gui! :) >> Also I will lost possibility to run plain cron job , But I remeber that "gui" tasks can be run via cron too. > > Yes, you can use something like Xvfb and run it via cron. Ok. With awtrobot, screenshots analyze and and in- browser (do we want to try lynx? :D) tests no-graphic environment have definitely past away... > >> And it will be necessary to add code coverage for plugin.jar :) [some-when :D ] >> > > Agreed! :) LOooooNG run! J. > > Thanks for taking this initiative! > > Cheers, > Deepak From jvanek at redhat.com Fri Mar 2 04:35:19 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 02 Mar 2012 13:35:19 +0100 Subject: Icedtea-web splashscreen implementation Message-ID: <4F50BE87.5070508@redhat.com> Hi All! This patch is initial version of three and half connected things. Applet + javaws splashcreen and testing of applets in firefox (and testing of splascreen). I'm sorry for two days delay, which was caused by more testing and creating this "document" and its attending animation. I'm also really sorry for its length. People cc-ed (as patch is to big to pass to distro without approve) Deepak - as he will probably do the overall review as there nearly nothing left from his code and will definitely want to see the in-firefox tests concept. Roman - as he was promised (was persuaded O:) to check PluginAppletViewer class As is very similar to Deepak's original one Mark - as he is probably able to do an approve upon distro-pkg list. Pavel - who wanted to check graphics rendering and firefox-testing changes Omair - just to kept him in loop ;) No rebukes to "logo" will be now accepted (kdding ..but... O:)..to much effort to vectorization of the "agreed new one"!) I have kept the ICEDtea composition, because without this design (with IcedTea one) it does not look nice :(( Iced do not looks enough frozen and Tea does not looks like tea leaf stalk (But ICED looks frozen enough and tea looks like stalk ;) ) I have decided to kept ICEDtea, because we _do not have logo_ :(( And because I consider it as art :) And way of art must be free in mind O:) However - if it will be comon wish or command, it is just change in two Strings so I can (so sad) adapt it. Horrible image with camelcase is also attached. Animation is rising watterlevel inside ICED and shinig metal web. When Splashscreen(s) are designed to be easily replaceable, and are providing set of utilities for lunching and disposing it. When ratio of WxH is to big or applet is to small then alternate - plain IcedTea web (plugin) [with little bit animated web (plugin)] is shown. Test framework was enriched for slow downloading. If the file have prefix "XslowX" then its downlaoding (even on localhost) will take 10seconds. It is useful for observing splashscreens. Also was enriched for lunching browser, which is necessary for testing applets. Several minor changes in authors, makefile, images and so on are also included. *Splashscreens* _integration_ The gate for applet's splashscreen is PluginAppletViewer. It is responsible for show it when applet is to be initialized and for removing it when applet starts. Little bit more complicated is showing of error to user when some exception during initialization occurs. Those exceptions are mostly thrown from netx which do not have dependence on plugin. To forward error to applet is used SplashUtils.showError set of overloaded methods. SplashUtils have also factory method which handles which splash (type and purpose (javaws x applet)) is about to be shown (if any - see bonuses) There are actually three and half types of splashscreen. Applet one (which have error variation also), javaws one (forced by specification, which also forces title,vendor and homepage with description to be shown), and java's -spalsh which is showing image until control is forwarded to netx. All those four splashscreens are cooperating quite well and support of custom splashses (by -J-splash or by ) are not lost. _implementation_ The splashscreen can be any class which implements interface SplashScreen. it must be able to paint itself, to add itself as component to show error, to be in composed of vectors.....and to be nice:) The factory method have parameter whether to provide splash for javaws (it is showing also information from information element (vendor, description,homepage,title..) - specification commanding) or for applet -it have also plugin above the tea-leaves. If javaws die, then splashscreen is hidden and netx is handling error on his own. When applet crashes, then it tries to show error screen. If showing of error screen is successful, spalsh turns dark and is providing click-able area ("button") which when clicked shows localized (whole the splash is localized) error dialog with some information about crash (most important exception) and with link to icetea-web wiki and with information how to post the bug The showing of error screen is very successfull, but one case I was unable to catch - when connection with server dies in middle of resource transfer and TODO - I have forgot to test signatures and stuff around:-/ - but this should be handled n netx-way too. I'm showing also version on splash (and forwarding it to error mesage) (ok?) - Looks to me like good idea.... _pitfalls_ I have noticed that when more then one applets are presented in page, then splashes sometimes shows, sometimes no.... I have tried to synchronize (I can be wrong!) in Launcher and in PluginAppletViewer, and it looks like it helped but still this occurs (quait randomly :-/) Sometimes(less then 10% of lunches, randomly spread) freeing of applet takes quite long time, and it looks like C-error (Can not fetch applets id from java side), But it is rare and always exit at the end. _bonuses_ I have added recognition of two environment variables - ICEDTEA_WEB_PLUGIN_SPLASH and ICEDTEA_WEB_SPLASH. Those variables alow user to change splahs screen before lunchtime and - what is real reason for those two variables - to disable splashscreen at all. I really can imagine some developer really tired of looking to same splash during his appelt/javaws_app testing phase. I have also kept inside Deepaks origianl implementation and my testing one. I like Deepak's one, and Pavel really likes my testing one which is really alternative :) There was left also dialog for testing splashscreen. I left it in for case That icedtea-web 3.0 will want new celebrating one;) However both secondary splashscreens can be switched by env.vars, I can remove them (although it will breake my hart;) without any harm. When "custom" (or "none") splash is defined, then javaws "java's" -splash is ignored too. *Testing* _splash tests_ I was "facing really huge problem" When I wanted to see spalshscreen inside browser - it was always to quickly lost :) So Ihave added magic prefix XslowX to be rocgnized by internal server. When some resource starts with this prefix, its without-prefix-version is returned as resource. The difference is that its downloading is delayed to 10s (10%per seccond). It is done by spliting this resource's byte[] to 10 peaces. This throws BrokenPipe Exception, but is working fine. Minor improvement inside ServerAcces.main() is tighter integration with testing framework - It can now be lunched instead of eg python smallHTTPserver and working directory is set in same way as during tests by -D property (so it can be lunched with same environment settings as in-ide tests) Second problem I was facing was automated testing of applets in firefox. The integration of "lunch html with browser, examine stdout/stderr,kill firefox" required just small changes and is working really well. But there is one big TODO - to configure (in make?) browser so it works with JUST BUILT iced-tea-web-plugin. Currently it expects to have firefox well configured (= to link /usr/lib/mozzila/libs/plugins/icedteaweb-plugin.so (or wherever firefox have plugins) with the one in --prefix path). But it is not the best way. To future I'm thinking about customised "embeded" firefox or to some link-plugin makefile target (run under root) which fill create this link (currently iced tea-web's install do not create this link, it is done in RPM post), or to have some local firefox which can be linkable without root and provide --with_browser.... - *any ideas welcomed* ! And one small to do - in some future integrate awt-robot (+stdin/out) listeners _new tests_ One new automated test is added to demonstrate the powers of testing of applets inside browser Bunch of new test which are using XslowX to allow everybody to see various cases of spalshscreens. Those tests are not automated and are testing custom splash, broken custom splash, my splashes... broken stuff..both for applets and javaws Atatchements: javaws_splash.png - "screenshot" of vector implementation, also used as java's -splash horribleIcedTea.png - nearly the same, but with camelcase to make your judge easier splasScreen-All2.diff - huge patch which si including all other together splasScreenImpls2.diff - implementation of current default splashscreen with all support classes splasScreenSplashs.diff - all supporting classes, interfaces utilities common for whole "splash sreens stuff" splasScreenImpls1.diff - implementation of old Deepaks one and alternative testing one splasScreen-integration.diff - all modified classes inside icedtea-web, which are calling my splash-screen implementation(s) Needs to be properly reviewed O:) splasScreenTests2.diff - all new tests http://download.eng.brq.redhat.com/scratch/jvanek/gif.gif - url to animation showing applet's (and javaws's) splash in work. have 90MB!!! desribed at the and of email - especially two sizes (full resizing at the end) of spalsh and error screen and error handlng and diference between javaws's one and plugin's one are worthy to be seen. Changelogs: splasScreen-integration.diff 2012-03-02 Jiri Vanek Integrated splashscreen, added authors, added bitmap splash, * AUTHORS: added Jan Kmetko as the person behind initial bitmap splash design * Makefile.am: (edit_launcher_script) enriched for replacement JAVAWS_SPLASH_LOCATION inside javaws.in by real datadir/PACKAGE_NAME/javaws_splash.png value (install-exec-local) enriched for installing javaws_splash.png from NETX_SRCDIR to datadir/PACKAGE_NAME *NEWS: mentioned splash screen * extra/net/sourceforge/javaws/about/resources/notes.html: added Danesh, Saad, me and Jan as missing developers and artist * launcher/javaws.in: added variable SPLASH_LOCATION, initiated during make by real path to javaws_splash.png location this splash is shown when application is lunched not-headless and if no custom spalsh is defined, -J-splash also overwrite this setting * netx/javaws_splash.png: new Binary file for primary bitmap loading * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: implemented missing default splash screen with vector spalsh and with information's element content * netx/net/sourceforge/jnlp/JNLPSplashScreen.java: fixed to be able to use custom image or (if not defined or broken) our vector one * netx/net/sourceforge/jnlp/Launcher.java: added hooks which will force applet to show error screen in case of error change on lines @@ -696,22 +705,30 @@ probably does not work, and it is the case when connection with server is interrupted in middle of downloading jar (createApplet) and (createAppletObject) were made synchronized to prevent several applets lunched in one time to touch each other * netx/net/sourceforge/jnlp/NetxPanel.java: added field, getter and setter for its XEmbededFrame * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: main (createPanel)'s run is adding splash screen after start of onitialization and removing it before init. (framePanel) returns PluginAppletViewer and is creating sdplash (removeSplash) new method to handle spalsh removing (showErrorSplash) new method to be called by hooks to swap splash to error state * netx/net/sourceforge/jnlp/runtime/Boot.java): (name) and (version) made public splasScreenSplashs.diff 2012-03-02 Jiri Vanek added support classes to allow easy splashscreen implementation * netx/net/sourceforge/jnlp/resources/Messages.properties: added localization strings for JEditorPaneBasedExceptionDialog and DefaultSpalshScreen12 and InfoItem * netx/net/sourceforge/jnlp/splashscreen/SplashPanel.java: interface to control each splash screen implementation * netx/net/sourceforge/jnlp/splashscreen/SplashUtils.java: mainly factory and destructor for splashes There are two environment variables ICEDTEA_WEB_PLUGIN_SPLASH and ICEDTEA_WEB_SPLASH which can change before lunch time splashscreen and - what is their main reason to allow to disable it * netx/net/sourceforge/jnlp/splashscreen/parts/BasicComponentSplashScreen.java: is implementing interface and extending jcomponet and is handling most basic setters/getters. Ideal forefather for all splashes * netx/net/sourceforge/jnlp/splashscreen/parts/DescriptionInfoItem.java: extending InfIotem with kind. Is handling description value of information element * netx/net/sourceforge/jnlp/splashscreen/parts/InfoItem.java: object for handling items in information element - vendor, homepage and title. Is i18n. * netx/net/sourceforge/jnlp/splashscreen/parts/InformationElement.java: handling all InfoItems from information. Is selecting the proper description for each purpose as specification says * netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java: dialog for showing exception and more information about crash in plugin. Can lead to icedtea-web homepage splasScreenImpls1.diff 2012-03-02 Jiri Vanek Adding optional splashscreens and testigne class for development * netx/net/sourceforge/jnlp/splashscreen/impls/CircleSplashScreen.java: Deepaks original implementation. I like it:) Have incorrect behaviour on pages with different then white background * netx/net/sourceforge/jnlp/splashscreen/impls/DummySpalshScreen.java: experimental splashscreen, worthy for testing purposes. And Pavel likes this alternative one! * netx/net/sourceforge/jnlp/splashscreen/impls/SpalshScreenTest.java: dialog window for testing splashes without icedtea-web splasScreenImpls2.diff 2012-03-02 Jiri Vanek Implementation of default splashscreen * netx/net/sourceforge/jnlp/splashscreen/impls/DefaultSpalshScreen12.java: default implementation of splash. The nicest one!, localized and most tuned * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/ControlCurve.java: base clsss for calculating vector curves * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/Cubic.java: helpful class for calculating cubic equation * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/ImageFontCutter.java: base class for cutting fonts from images * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/MoovingText.java: by extending ImageCutter is cutting text from gradient colors (shadow moving web) * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/NatCubic.java: base class for calculating natural cubic spline * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/NatCubicClosed.java: little bit adjusted NatCubic for having polygon instead of polyline * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/SplinesDefs.java: definitions of control points for NatCubicClosed splines on logo * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/TextWithWatterLevel.java: Extending ImageFontCutter is cutting from from basin-with-water like rendered image splasScreenTests2.diff 2012-03-02 Jiri Vanek * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: as javaws have now integrated splash, I have changed this test to lunch javaws -Xclearcache with -headless to skip this logo (although it is not fatal fr testrun itself) * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: this html file is lunched during tests run in browser and stdout of lunched applet is examined. Is lunched with slow resources to test spalshscreen * tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html: this test html file is dedicated to manual lunch and let user to look how the applet (with slow loading) is loaded and how looks splashscreen in small mode and in large mode * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: test is enriched for lunching the html file with applet in browser and is examining output of this file. Browser must be always terminated as there is no way hoe to close from inside * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png : image to let user observe that user-defined splashscreen is still working even when internal splashscreen is enabled * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: this and all jnlp files below are just for manual lunching and for watching various lunches of splash screen - slow loading of resources and with custom splash * tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp: slow loading of resource and jnlp * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp: slow loading of resource * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp: slow loading of resource with broken user's splash (our internal will be used) * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp: slow loading of custom splash screen and resource * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: Main server launcher was modified to support lunching of browser, stdout listteners and for slowing download of resources to provide time for watching splash screen (main) was rewritten to provide free port OR run server in-D specified directory on custom or default port - very useful for debuging reproducers (getIndependentInstance) can now run also on specified port and (or) directory (USED_BROWSER_COMMAND) new constant handling value of -D property to set browser = "used.browser.command"; (getBrowserLocation) new method to provide specified (by used.browser.command -D property) or default browser location (firefox) (ensureServer) test is testing weather XslowXmodifier is working (executeBrowser) set of overloaded functions to lunch browser (TinyHttpdImpl) was enriched for XslowX modifier. When resource starts with this, is returned slowly - splited to 10 parts with 1s delay betwen sending each of them. Although it is throwing BrokenPipe exception, is working fine. (splitArray) new function to split array of byte to n arrays of bytes, which when concated do the same array (splitArrayTestN) set of tests for splitArray (ContentReader) now can also have lsteners for catching outputs n runtime. * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java: Listener for catching chars and lines form processes outputs * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: added (testListeners) to test listeners behaviour To much reading? To long "Patch" ? I'm terribly sorry for being so undisciplined to allow it to grow so much and not to commit t in smaller chunks. I hope it will be still review-able. The content of gif.gif - what you should see: LEFT RIGHT firefox applets started to be loaded (one small and one big) lunching javaws -Xclearcache -headless (no splash appears) lunching javaws -Xclearcache (bitmap splash appears with some artifact) small applet stars fine, big one detected crash and swapped to error screen lunching javaws -Xclearcache -headless (no splash appears) lunching javaws someUrl - lunching example jnlp which is at first loading very big user's spalsh, and then swap to it) clicking "show error" button on failed applet error screen Dialog with applets error message appears is resized, link is clicked, home is clicked, is closed firefox closed lunched loading of jnlp file with our custom (jumping through both screens, error during gif compositon :-/) resizing our default vector splash screen to show corner cases, the rising water is nicely to be seen during the resizing Best regards and good luck J. -------------- next part -------------- A non-text attachment was scrubbed... Name: horribleIcedTea.png Type: image/png Size: 27867 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120302/3dd7058b/horribleIcedTea.png -------------- next part -------------- A non-text attachment was scrubbed... Name: javaws_splash.png Type: image/png Size: 13044 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120302/3dd7058b/javaws_splash.png -------------- next part -------------- A non-text attachment was scrubbed... Name: splasScreen-All2.diff Type: text/x-patch Size: 237399 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120302/3dd7058b/splasScreen-All2.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: splasScreenImpls1.diff Type: text/x-patch Size: 43077 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120302/3dd7058b/splasScreenImpls1.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: splasScreenImpls2.diff Type: text/x-patch Size: 66963 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120302/3dd7058b/splasScreenImpls2.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: splasScreen-integration.diff Type: text/x-patch Size: 31820 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120302/3dd7058b/splasScreen-integration.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: splasScreenSplashs.diff Type: text/x-patch Size: 54101 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120302/3dd7058b/splasScreenSplashs.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: splasScreenTests2.diff Type: text/x-patch Size: 41438 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120302/3dd7058b/splasScreenTests2.diff From rsvoboda at redhat.com Thu Mar 1 04:49:09 2012 From: rsvoboda at redhat.com (Rostislav Svoboda) Date: Thu, 01 Mar 2012 07:49:09 -0500 (EST) Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: <4be0ea6b-6636-4868-a882-f976a3598614@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <52c5e763-f9ab-4ef9-94a9-339889ad4497@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > ----- Original Message ----- > > > ----- Original Message ----- > > > > Andrew Hughes wrote: > > > > > ----- Original Message ----- > > > > >> Hi, > > > > >> > > > > >> I'd like to add following "small" (well 1MB of size ;-) > > > > >> backport > > > > >> to > > > > >> IcedTea6: > > > > >> "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" > > > > >> > > > > >> This patch fixes (among other thing) following issue: > > > > >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > > > > >> > > > > >> hg diff created against recent IcedTea6 HEAD version is > > > > >> stored > > > > >> in > > > > >> an > > > > >> attachment > > > > >> in a BZIP archive (because I don't want to send quite big > > > > >> 1MB > > > > >> attachment to public mail list). > > > > >> > > > > >> Please note that it's not a direct backport because of > > > > >> (quite > > > > >> minor) > > > > >> differences > > > > >> between IT6 and OpenJDK7 sources. This patch applies cleanly > > > > >> and > > > > >> it > > > > >> does not > > > > >> seem to cause any compatibility issues. > > > > >> > > > > >> Here's ChangeLog entry: > > > > >> > > > > >> 2012-02-28 Pavel Tisnovsky > > > > >> > > > > >> * Makefile.am: Add new patch. > > > > >> * NEWS: Mention backport. > > > > >> * > > > > >> patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: > > > > >> Backport of S6469266: Integrate Apache XMLSec 1.4.2 into > > > > >> JDK > > > > >> 7 > > > > >> > > > > >> > > > > >> Can anybody please review this change? > > > > >> > > > > >> Thank you in advance, > > > > >> Pavel > > > > >> > > > > > > > > > > What's the motivation for this? Does the proprietary JDK 6 > > > > > use > > > > > this version? > > > > > > > > Can not say anything about JDK 6, but tests mentioned here: > > > > > > > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > > > > > > > > failed only on IcedTea6. IT7/O7 looks ok, the same for > > > > proprietary > > > > JDK6. > > > > > > > > Pavel > > > > > > > > > > > > > > Yes, but IcedTea6/OpenJDK6 has to meet the Java 6 specification. > > > > The problem is that we have set of tests in JBossWS TS for EAP6 > > which > > are working on OracleJDK 6/7, IBM JDK 6/7 and OpenJDK 7. > > Only OpenJDK 6 has problems ... > > > > What's the problem with Java 6 specification? > > > > There may not be one, but I need more details to approve this, in > case it > makes API or behavioural changes to an implementation of Java 6. > > Did you mean to move this reply to private e-mail and off the public > list? Or was > it accidental? Sorry, it was accidental. Rosta > > > Thanks. > > Rosta > > > > > IcedTea7/OpenJDK7 obviously don't. Do you have a link to the > > > original > > > changeset? > > > -- > > > Andrew :) > > > > > > Free Java Software Engineer > > > Red Hat, Inc. (http://www.redhat.com) > > > > > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > > > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > > > > > > > > > > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > > From bugzilla-daemon at icedtea.classpath.org Fri Mar 2 04:44:22 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 02 Mar 2012 12:44:22 +0000 Subject: [Bug 887] The bug for minecraft server on linux In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=887 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #669|application/octet-stream |text/plain mime type| | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Mar 2 04:45:16 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 02 Mar 2012 12:45:16 +0000 Subject: [Bug 887] The bug for minecraft server on linux In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=887 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea6 Version|unspecified |6-1.9.10 AssignedTo|ahughes at redhat.com |unassigned at icedtea.classpat | |h.org Severity|critical |normal -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Mar 2 04:46:08 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 02 Mar 2012 12:46:08 +0000 Subject: [Bug 659] IcedTea6 rejects partially-signed jar files In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=659 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com, | |unassigned at icedtea.classpat | |h.org Component|IcedTea6 |NetX (javaws) Version|6-1.9.5 |unspecified Product|IcedTea |IcedTea-Web -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Mar 2 04:47:20 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 02 Mar 2012 12:47:20 +0000 Subject: [Bug 868] Applying a GETFIELD instruction to an array causes a segmentation fault In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=868 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea6 Version|7-1.2 |6-1.10.4 AssignedTo|ahughes at redhat.com |unassigned at icedtea.classpat | |h.org -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Mar 2 04:47:55 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 02 Mar 2012 12:47:55 +0000 Subject: [Bug 875] Build fails with --enable-pulse-java In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=875 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Mar 2 04:48:14 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 02 Mar 2012 12:48:14 +0000 Subject: [Bug 875] Build fails with --enable-pulse-java In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=875 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |2.0.2 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Fri Mar 2 05:08:02 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Fri, 02 Mar 2012 08:08:02 -0500 (EST) Subject: RFC: Patch to fix error in jdk_generic_profile.sh In-Reply-To: <4F5003EA.8090204@RedHat.Com> Message-ID: <2fcf2934-64a6-4126-8035-97ce08928d75@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On 01/03/12 05:50 PM, Deepak Bhole wrote: > > Hi, > > > > This patch fixes a bug in the jdk_generic_profile.sh script. Fix is > > pretty self-evident. > > > > OK for 7 and 8 forest? > > > > Thanks, > > Deepak > Looks good to me ;-) , also for 2.1 ? > And 2.0 please. About time this was pushed upstream. > Cheers! > Chris > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at icedtea.classpath.org Fri Mar 2 05:09:24 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 02 Mar 2012 13:09:24 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/ClippingCircleByEllip... Message-ID: changeset d5442554d852 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=d5442554d852 author: Pavel Tisnovsky date: Fri Mar 02 14:11:58 2012 +0100 * src/org/gfxtest/testsuites/ClippingCircleByEllipseShape.java: Fixed typo. * src/org/gfxtest/testsuites/ClippingCircleByPolygonalShape.java: Added plenty of new tests. diffstat: ChangeLog | 7 + src/org/gfxtest/testsuites/ClippingCircleByEllipseShape.java | 2 +- src/org/gfxtest/testsuites/ClippingCircleByPolygonalShape.java | 511 ++++++++++ 3 files changed, 519 insertions(+), 1 deletions(-) diffs (truncated from 555 to 500 lines): diff -r 7742d8ac7ad4 -r d5442554d852 ChangeLog --- a/ChangeLog Thu Mar 01 11:07:48 2012 +0100 +++ b/ChangeLog Fri Mar 02 14:11:58 2012 +0100 @@ -1,3 +1,10 @@ +2012-03-02 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingCircleByEllipseShape.java: + Fixed typo. + * src/org/gfxtest/testsuites/ClippingCircleByPolygonalShape.java: + Added plenty of new tests. + 2012-03-01 Pavel Tisnovsky * src/org/gfxtest/ImageDiffer/Main.java: diff -r 7742d8ac7ad4 -r d5442554d852 src/org/gfxtest/testsuites/ClippingCircleByEllipseShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByEllipseShape.java Thu Mar 01 11:07:48 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingCircleByEllipseShape.java Fri Mar 02 14:11:58 2012 +0100 @@ -103,7 +103,7 @@ } /** - * Draw empty circle clipped by an ellipse shape. + * Draw filled circle clipped by an ellipse shape. * * @param image * work image diff -r 7742d8ac7ad4 -r d5442554d852 src/org/gfxtest/testsuites/ClippingCircleByPolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByPolygonalShape.java Thu Mar 01 11:07:48 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingCircleByPolygonalShape.java Fri Mar 02 14:11:58 2012 +0100 @@ -40,7 +40,16 @@ package org.gfxtest.testsuites; +import java.awt.Graphics2D; + + + +import org.gfxtest.framework.CommonClippingOperations; +import org.gfxtest.framework.CommonRenderingStyles; +import org.gfxtest.framework.CommonShapesRenderer; import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.TestImage; +import org.gfxtest.framework.TestResult; import org.gfxtest.framework.annotations.GraphicsPrimitive; import org.gfxtest.framework.annotations.GraphicsPrimitives; import org.gfxtest.framework.annotations.TestType; @@ -61,6 +70,508 @@ @Zoom(1) public class ClippingCircleByPolygonalShape extends GfxTest { + /** + * Prepare canvas for the rendering. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void basicSetupForRendering(TestImage image, Graphics2D graphics2d) + { + // create clip area which is constructed from the polygonal shape + CommonClippingOperations.createClipUsingPolygonalShape(image, graphics2d); + } + + /** + * Draw empty circle clipped by a polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void drawEmptyCircleClippedByPolygonalShape(TestImage image, Graphics2D graphics2d) + { + // prepare canvas for the rendering + basicSetupForRendering(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // draw the area + CommonShapesRenderer.drawCircle(image, graphics2d); + } + + /** + * Draw filled circle clipped by a polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void drawFilledCircleClippedByPolygonalShape(TestImage image, Graphics2D graphics2d) + { + // prepare canvas for the rendering + basicSetupForRendering(image, graphics2d); + // fill the area + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by an ellipse shape. Circle is drawn using alpha + * paint with red color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintRed(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillRedColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by an ellipse shape. Circle is drawn using alpha + * paint with green color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintGreen(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillGreenColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by an ellipse shape. Circle is drawn using alpha + * paint with blue color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintBlue(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillBlueColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderClipPolygon(image, graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderClipPolygon(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using extra wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeExtraWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderClipPolygon(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using zero wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeZeroWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderClipPolygon(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using color paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeColorPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setFillColor(graphics2d); + // create clip shape and fill the shape + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with red color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintRed000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by ellipse shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 0); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with red color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintRed025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 25); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with red color at 50% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintRed050(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 50% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 50); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with red color at 75% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintRed075(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 75% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 75); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with red color at 100% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintRed100(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 100% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 100); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with green color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintGreen000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 0); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with green color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintGreen025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 25); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with green color at 50% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintGreen050(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 50% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 50); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with green color at 75% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintGreen075(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 75% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 75); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with green color at 100% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintGreen100(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 100% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 100); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with blue color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintBlue000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintBlue(image, graphics2d, 0); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by an ellipse shape. Circle is + * rendered using alpha paint with blue color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByEllipseShapeAlphaPaintBlue025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintBlue(image, graphics2d, 25); + // test result + return TestResult.PASSED; + } + + /** From xranby at icedtea.classpath.org Fri Mar 2 06:12:28 2012 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Fri, 02 Mar 2012 14:12:28 +0000 Subject: /hg/icedtea6: Fix ARM SIGILL crash during BLX call to thumb comp... Message-ID: changeset b8d810f20366 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b8d810f20366 author: Xerxes Ranby date: Fri Mar 02 16:08:50 2012 +0100 Fix ARM SIGILL crash during BLX call to thumb compiled StrictMath intrinsics. 2012-03-02 Xerxes Ranby Andrew Haley * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: (handle_special_method): Fix a off by one byte SIGILL crash during BLX call to thumb compiled StrictMath intrinsics for --with-float=hard --with-mode=thumb ARM builds. diffstat: ChangeLog | 8 ++++++++ arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 3 ++- 2 files changed, 10 insertions(+), 1 deletions(-) diffs (28 lines): diff -r 54ceda20a02c -r b8d810f20366 ChangeLog --- a/ChangeLog Mon Feb 27 14:40:52 2012 +0100 +++ b/ChangeLog Fri Mar 02 16:08:50 2012 +0100 @@ -1,3 +1,11 @@ +2012-03-02 Xerxes R??nby + Andrew Haley + + * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: + (handle_special_method): Fix a off by one byte SIGILL crash + during BLX call to thumb compiled StrictMath intrinsics for + --with-float=hard --with-mode=thumb ARM builds. + 2012-02-27 Pavel Tisnovsky * Makefile.am: Add new patch. diff -r 54ceda20a02c -r b8d810f20366 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Mon Feb 27 14:40:52 2012 +0100 +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Mar 02 16:08:50 2012 +0100 @@ -5099,7 +5099,8 @@ // FIXME: The JNI StrictMath routines don't use the JNIEnv *env // parameter, so it's arguably pointless to pass it here. add_imm(jinfo->codebuf, ARM_R0, Rthread, THREAD_JNI_ENVIRONMENT); - blx(jinfo->codebuf, (unsigned)entry_point); + mov_imm(jinfo->codebuf, ARM_IP, (unsigned)entry_point); + blx_reg(jinfo->codebuf, ARM_IP); vfp_to_jstack(jinfo, VFP_D0); return true; From dbhole at redhat.com Fri Mar 2 06:44:33 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 2 Mar 2012 09:44:33 -0500 Subject: [rfc - concept][icedtea-web] plugin tests In-Reply-To: <4F509105.4040708@redhat.com> References: <4F39363F.6060107@redhat.com> <20120301202718.GL32730@redhat.com> <4F509105.4040708@redhat.com> Message-ID: <20120302144433.GK24599@redhat.com> * Jiri Vanek [2012-03-02 04:18]: > On 03/01/2012 09:27 PM, Deepak Bhole wrote: > >* Jiri Vanek [2012-02-13 11:09]: > >>Hi all! > >> > >>I think, that I can use current reproducers approach to test applets. > >>Current approch simple/signed src/resource/testcase and testing server with examination of stdin/out can and will be reused without any modification > > > >This won't catch certain issues, like drawing issues for example, or > >keyboard input related issues. > > Yap - drawing issues and mouse-clicking can be handled via awt robot an this is on the way. (with small observe-observable paradigm to be added into current engine to read stdout/err on the fly will be quit suitable for most interactivity tests) > For more sophisticated user inputs (can awt tobot do som typing in textfields? I have some misty memories it can - so no issue here!) we must stay away of JCK-graphics tests, when user (me!!!) is sitting infront of monitor and clicking nonsenses and watching wired results, confitming txtxt and shapes.... For this purposes I believe we already have the wikipage with compelx aplications. Unfortunately I don't know awt robot well enough to know if it can do that :/ However it is a feature we will need as we have seen bugs where the user was unable to type into a text field in the applet. Cheers, Deepak > > > >>Instead of jnlp files from resources will be used html file and instead of javaws will be used eg firefox (can use more testing browsers for testing, but can be hard to maintaining tests to all three mayor browsers). And I will always kill the browser before next test. > > > >I think then we will miss certain issues, since the VM is shared. The > >browser kill should be optional. > > True. As I have done this now, it is optional - firefox (browser..)is lunched and killed inside test calss. However TestClass should take care and kill him at least in @AfterClass > > > > >>On the other side I'm afraid I will lost advantage of -headless approach. And I'm not sure if I will be able to use awt robot (as I have failed once already, but some screen-capture approach will be possible for sure). But at least lunching of graphical apps must be solved, as firefox will always have gui! :) > >>Also I will lost possibility to run plain cron job , But I remeber that "gui" tasks can be run via cron too. > > > >Yes, you can use something like Xvfb and run it via cron. > > Ok. With awtrobot, screenshots analyze and and in- browser (do we want to try lynx? :D) tests no-graphic environment have definitely past away... > > > >>And it will be necessary to add code coverage for plugin.jar :) [some-when :D ] > >> > > > >Agreed! :) > LOooooNG run! > > J. > > > > >Thanks for taking this initiative! > > > >Cheers, > >Deepak > From ptisnovs at icedtea.classpath.org Fri Mar 2 07:48:43 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 02 Mar 2012 15:48:43 +0000 Subject: /hg/MauveTestCoverage: 2012-03-02 Pavel Tisnovsky changeset 5030a59cd546 in /hg/MauveTestCoverage details: http://icedtea.classpath.org/hg/MauveTestCoverage?cmd=changeset;node=5030a59cd546 author: Pavel Tisnovsky date: Fri Mar 02 16:51:17 2012 +0100 2012-03-02 Pavel Tisnovsky * src/ReportGenerator.java: * templates/package_template.html: Added new functionality of report generator: table with basic statistic is shown for each tested package. diffstat: ChangeLog | 8 ++++ src/ReportGenerator.java | 76 ++++++++++++++++++++++++++++++---------- templates/package_template.html | 6 +++ 3 files changed, 71 insertions(+), 19 deletions(-) diffs (168 lines): diff -r f010a4361c96 -r 5030a59cd546 ChangeLog --- a/ChangeLog Tue Feb 21 17:16:21 2012 +0100 +++ b/ChangeLog Fri Mar 02 16:51:17 2012 +0100 @@ -1,3 +1,11 @@ +2012-03-02 Pavel Tisnovsky + + * src/ReportGenerator.java: + * templates/package_template.html: + Added new functionality of report generator: + table with basic statistic is shown for + each tested package. + 2012-02-21 Pavel Tisnovsky * src/FileUtils.java: diff -r f010a4361c96 -r 5030a59cd546 src/ReportGenerator.java --- a/src/ReportGenerator.java Tue Feb 21 17:16:21 2012 +0100 +++ b/src/ReportGenerator.java Fri Mar 02 16:51:17 2012 +0100 @@ -136,7 +136,9 @@ private static void printReportForPackageToFile(String reportDirectory, String packageName, Set testedClasses) { + // read HTML template List template = FileUtils.readTextFile("templates/package_template.html"); + // list containing all lines of generated HTML file List out = new LinkedList(); // iterate through whole template for (String templateLine : template) @@ -144,7 +146,11 @@ // replace text in template where needed if ("${CLASS_LIST}".equals(templateLine)) { - addClassList(packageName, testedClasses, out); + addClassList(reportDirectory, packageName, testedClasses, out); + } + else if ("${PACKAGE_NAME}".equals(templateLine)) + { + out.add("Package " + packageName); } // normal line else @@ -282,7 +288,7 @@ * @param out * list of string which represents generated report */ - private static void addClassList(String packageName, Set testedClasses, List out) + private static void addClassList(String reportDirectory, String packageName, Set testedClasses, List out) { // iterate through all class names for (String className : testedClasses) @@ -290,7 +296,8 @@ // list only classes from given package if (className.startsWith(packageName)) { - out.add("" + className + "
"); + //out.add("" + className + "
"); + out.add(addOneRowToResultsTable(reportDirectory, className)); } } } @@ -321,22 +328,7 @@ { if (className.startsWith(packageName)) { - Set apiMethods = readApiMethods(reportDirectory, className); - Set testedMethods = readTestedMethods(reportDirectory, className); - // compute number of all methods in a class - final int allMethodsCnt = apiMethods.size(); - // compute number of methods covered by tests - final int testedMethodsCnt = testedMethods.size(); - // -> in percent - final float percentage = 100.0f*testedMethodsCnt / allMethodsCnt; - // table row background color is based on percentual test coverage ration - String backgroundColor = generateTableRowBackground(percentage); - String doc = DOC_BASE + "/" + className.replace('.', '/') + ".html"; - // format output string - String outStr = String.format("%s%d%d%5.1f %%ext", - backgroundColor, className, className, - allMethodsCnt, testedMethodsCnt, percentage, doc); - out.add(outStr); + out.add(addOneRowToResultsTable(reportDirectory, className)); } } out.add(""); @@ -344,6 +336,34 @@ } /** + * Add one row to a table containing test coverage for given class. + * + * @param reportDirectory + * directory where report is generated + * @param className + * name of tested class + */ + private static String addOneRowToResultsTable(String reportDirectory, String className) + { + Set apiMethods = readApiMethods(reportDirectory, className); + Set testedMethods = readTestedMethods(reportDirectory, className); + // compute number of all methods in a class + final int allMethodsCnt = apiMethods.size(); + // compute number of methods covered by tests + final int testedMethodsCnt = testedMethods.size(); + // -> in percent + final float percentage = 100.0f*testedMethodsCnt / allMethodsCnt; + // table row background color is based on percentual test coverage ration + String backgroundColor = generateTableRowBackground(percentage); + String doc = DOC_BASE + "/" + className.replace('.', '/') + ".html"; + // format output string + String outStr = String.format("%s%d%d%5.1f %%ext", + backgroundColor, className, className, + Integer.valueOf(allMethodsCnt), Integer.valueOf(testedMethodsCnt), Float.valueOf(percentage), doc); + return outStr; + } + + /** * Create new HTML file containing report for one tested class. * * @param reportDirectory @@ -479,6 +499,17 @@ return out; } + /** + * Create report for all packages. For each package, one package-name.html + * file is created containing table with basic coverage report. + * + * @param reportDirectory + * directory where report is generated + * @param usedPackageNames + * packages for which the report is generated + * @param testedClasses + * set of tested classes + */ private static void printReportForAllPackages(String reportDirectory, Set usedPackageNames, Set testedClasses) { @@ -625,6 +656,13 @@ return String.format("%.2f%%", ratio); } + /** + * Prepare whole report - HTML and txt one. + * + * @param allClassListFileName + * @param testedClassListFileName + * @param reportDirectory + */ private static void prepareReport(String allClassListFileName, String testedClassListFileName, String reportDirectory) { diff -r f010a4361c96 -r 5030a59cd546 templates/package_template.html --- a/templates/package_template.html Tue Feb 21 17:16:21 2012 +0100 +++ b/templates/package_template.html Fri Mar 02 16:51:17 2012 +0100 @@ -9,7 +9,13 @@

Class list

+

+${PACKAGE_NAME} +

+ + ${CLASS_LIST} +
classmethodscoveredratiodoc
From dbhole at icedtea.classpath.org Fri Mar 2 07:56:34 2012 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Fri, 02 Mar 2012 15:56:34 +0000 Subject: /hg/release/icedtea7-forest-2.0/jdk: Fix bug whereby JPEG_LIBS w... Message-ID: changeset b6d5d0ebd936 in /hg/release/icedtea7-forest-2.0/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.0/jdk?cmd=changeset;node=b6d5d0ebd936 author: Deepak Bhole date: Fri Mar 02 10:18:25 2012 -0500 Fix bug whereby JPEG_LIBS were not set by jdk_generic_profile.sh diffstat: make/jdk_generic_profile.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r 891fb0050add -r b6d5d0ebd936 make/jdk_generic_profile.sh --- a/make/jdk_generic_profile.sh Tue Feb 14 14:01:44 2012 +0000 +++ b/make/jdk_generic_profile.sh Fri Mar 02 10:18:25 2012 -0500 @@ -421,7 +421,7 @@ # JPEG_CFLAGS and JPEG_LIBS tell the compiler how to compile and # link against libjpeg if [ "${JPEG_LIBS}" = "" ] ; then - ZLIB_LIBS="-ljpeg" + JPEG_LIBS="-ljpeg" fi export JPEG_LIBS From dbhole at icedtea.classpath.org Fri Mar 2 07:56:48 2012 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Fri, 02 Mar 2012 15:56:48 +0000 Subject: /hg/release/icedtea7-forest-2.1/jdk: Fix bug whereby JPEG_LIBS w... Message-ID: changeset 2d8ad70a2243 in /hg/release/icedtea7-forest-2.1/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/jdk?cmd=changeset;node=2d8ad70a2243 author: Deepak Bhole date: Fri Mar 02 10:18:25 2012 -0500 Fix bug whereby JPEG_LIBS were not set by jdk_generic_profile.sh diffstat: make/jdk_generic_profile.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r 50f6f276a06c -r 2d8ad70a2243 make/jdk_generic_profile.sh --- a/make/jdk_generic_profile.sh Wed Feb 15 08:26:50 2012 +0000 +++ b/make/jdk_generic_profile.sh Fri Mar 02 10:18:25 2012 -0500 @@ -421,7 +421,7 @@ # JPEG_CFLAGS and JPEG_LIBS tell the compiler how to compile and # link against libjpeg if [ "${JPEG_LIBS}" = "" ] ; then - ZLIB_LIBS="-ljpeg" + JPEG_LIBS="-ljpeg" fi export JPEG_LIBS From ptisnovs at redhat.com Fri Mar 2 08:33:38 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 02 Mar 2012 17:33:38 +0100 Subject: Reviewer needed: fixed typos in JDK7 forest (ScriptEngineManager class) In-Reply-To: <716d4aae-f10e-4edd-94a1-84dcb0d28c9d@zmail17.collab.prod.int.phx2.redhat.com> References: <716d4aae-f10e-4edd-94a1-84dcb0d28c9d@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F50F662.6000308@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> ----- Original Message ----- >>> Hi, >>> >>> I'd like to fix JavaDoc typos in a class ScriptEngineManager. Patch >>> applicable >>> to jdk7 forest is stored in an attachment. >>> >>> Can anybody please review this change? >>> >>> Thank you in advance. >>> >>> Cheers, >>> Pavel >>> >>> (fix for upstream will follow). >>> >>> >>> >>> [Text Documents:hg_diff.patch] >>> >> Such a change to public javax.* classes needs to go upstream first. >> Although >> the changes are minor, this alters the API specification. >> -- >> Andrew :) >> >> Free Java Software Engineer >> Red Hat, Inc. (http://www.redhat.com) >> >> PGP Key: 248BDC07 (https://keys.indymedia.org/) >> Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 >> >> > > I see this was reviewed and pushed to 8: > > http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-February/009380.html > http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-March/009422.html > > Let's see if it makes it to 7u. If it does, we can add it to IcedTea7 too, ahead of u6. FYI: now this change is in 7u(6) too. Pavel From ahughes at redhat.com Fri Mar 2 09:02:52 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Fri, 02 Mar 2012 12:02:52 -0500 (EST) Subject: Reviewer needed: fixed typos in JDK7 forest (ScriptEngineManager class) In-Reply-To: <4F50F662.6000308@redhat.com> Message-ID: ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> ----- Original Message ----- > >>> Hi, > >>> > >>> I'd like to fix JavaDoc typos in a class ScriptEngineManager. > >>> Patch > >>> applicable > >>> to jdk7 forest is stored in an attachment. > >>> > >>> Can anybody please review this change? > >>> > >>> Thank you in advance. > >>> > >>> Cheers, > >>> Pavel > >>> > >>> (fix for upstream will follow). > >>> > >>> > >>> > >>> [Text Documents:hg_diff.patch] > >>> > >> Such a change to public javax.* classes needs to go upstream > >> first. > >> Although > >> the changes are minor, this alters the API specification. > >> -- > >> Andrew :) > >> > >> Free Java Software Engineer > >> Red Hat, Inc. (http://www.redhat.com) > >> > >> PGP Key: 248BDC07 (https://keys.indymedia.org/) > >> Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > >> > >> > > > > I see this was reviewed and pushed to 8: > > > > http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-February/009380.html > > http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-March/009422.html > > > > Let's see if it makes it to 7u. If it does, we can add it to > > IcedTea7 too, ahead of u6. > > FYI: now this change is in 7u(6) too. > > Pavel > What was the reason for not posting to u4? This doesn't seem to be have been discussed publicly. If it has, please point me to a link. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at redhat.com Fri Mar 2 09:16:45 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 02 Mar 2012 18:16:45 +0100 Subject: Reviewer needed: fixed typos in JDK7 forest (ScriptEngineManager class) In-Reply-To: References: Message-ID: <4F51007D.8030600@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Andrew Hughes wrote: >>> ----- Original Message ----- >>>> ----- Original Message ----- >>>>> Hi, >>>>> >>>>> I'd like to fix JavaDoc typos in a class ScriptEngineManager. >>>>> Patch >>>>> applicable >>>>> to jdk7 forest is stored in an attachment. >>>>> >>>>> Can anybody please review this change? >>>>> >>>>> Thank you in advance. >>>>> >>>>> Cheers, >>>>> Pavel >>>>> >>>>> (fix for upstream will follow). >>>>> >>>>> >>>>> >>>>> [Text Documents:hg_diff.patch] >>>>> >>>> Such a change to public javax.* classes needs to go upstream >>>> first. >>>> Although >>>> the changes are minor, this alters the API specification. >>>> -- >>>> Andrew :) >>>> >>>> Free Java Software Engineer >>>> Red Hat, Inc. (http://www.redhat.com) >>>> >>>> PGP Key: 248BDC07 (https://keys.indymedia.org/) >>>> Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 >>>> >>>> >>> I see this was reviewed and pushed to 8: >>> >>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-February/009380.html >>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-March/009422.html >>> >>> Let's see if it makes it to 7u. If it does, we can add it to >>> IcedTea7 too, ahead of u6. >> FYI: now this change is in 7u(6) too. >> >> Pavel >> > > What was the reason for not posting to u4? This doesn't seem to be have been discussed publicly. > If it has, please point me to a link. I received personal mail from Edvard Wendeling saying "JDK 7u4 is now ramping down and the inflow of bug fixes is more restricted...." Given this patch just changes JavaDoc and does not fix any real bug, I personally don't feel the need to hurry and push it to u4. From omajid at redhat.com Fri Mar 2 09:45:23 2012 From: omajid at redhat.com (Omair Majid) Date: Fri, 02 Mar 2012 12:45:23 -0500 Subject: [icedtea-web] RFC: fix L&F issues with swing applications In-Reply-To: <20120301211846.GC24599@redhat.com> References: <4F4FE495.900@redhat.com> <20120301211846.GC24599@redhat.com> Message-ID: <4F510733.6020008@redhat.com> On 03/01/2012 04:18 PM, Deepak Bhole wrote: > * Omair Majid [2012-03-01 16:07]: >> Hi, >> >> The attached patch fixes a regression in icedtea-web 1.2 that occurs >> with some jnlp applications (such as >> http://www.soapui.org/jnlp/soapui.jnlp) where they are unable to set the >> look and feel for dialogs. >> >> The actual problem was not just limited to that. It turns out that we >> were not setting the right classloader for EventQueue - this classloader >> is used by EventQueue to obtain Look-and-Feel related classes (among >> other things). The only time to set this classloader is when the >> EventQueue is being created. And the EventQueue is created when a new >> AppContext is created, and the current context classloader of the thread >> is used. >> >> The attached patch (I have tried to keep it minimal) tires to fix this >> problem by creating the JNLPClassLoader as early as possible and then >> sets it as the context ClassLoader for jnlp applications. >> >> I suspect applets may be affected by similar issues, but I don't have a >> reproducer showing a problem and this patch doesn't change anything for >> them. >> > > I am not sure how we could reproduce the problems with applets either. I > think we can overlook that situation for now. > > The patch looks good to me. Assuming you have tested it, please push to > 1.2 and HEAD. > While doing further testing, I discovered that this changes the order in which jars are downloaded and security prompts presented. It is possible for security prompts to appear before we check to see if the jnlp application needs a new VM - it is possible to show repeated security prompts and download indicators. I am not going to push this patch. Sorry for the noise. I tried changing the order so that the new AppContext is created after the JNLPClassLoader proper is intialized and this seems to be a slightly better approach (at least for a last-minute fix). Thoughts? Thanks, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: classloaders-and-appcontext-01.patch Type: text/x-patch Size: 4767 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120302/5e26d14a/classloaders-and-appcontext-01.patch From aph at redhat.com Fri Mar 2 10:07:23 2012 From: aph at redhat.com (Andrew Haley) Date: Fri, 02 Mar 2012 18:07:23 +0000 Subject: ARM: More intrinsics Message-ID: <4F510C5B.9090207@redhat.com> I've been adding _compareAndSwapInt and _compareAndSwapLong to the set of intrinsics. It's never that easy, of course, and while I was doing that I found a bug in the code for abs that would cause locals to be corrupted. I also realized that if the JIT does long atomic swaps, so must the interpreter, so this patch also provides a long atomic swap for Zero on ARM. It'll be used even if you don't have the JIT or the asm interpreter. There isn't a kernel builtin we can use to do 64-bit swaps because the operation is only provided by the very most recent Linux kernels. This means we can't use it, really. I also reorganized handle_special_method() a bit so that it uses VM intrinsic_id. This provides the opportunity for many more intrinsics than Interpreter::method_kind(). Andrew. 2012-03-02 Andrew Haley * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: New file. * patches/arm.patch (void get_processor_features): New function that enables compareAndSwap on jlongs. (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New function. (atomic_linux_zero.inline.hpp: Atomic::store): Use arm_val_compare_and_swap. * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT encodings. (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. (handle_special_method): Use intrinsic_id instead of method_kind. Add handlers for _compareAndSwapInt and _compareAndSwapLong. (Thumb2_codegen): Call handle_special_method() for invokevirtual. Pass stackdepth to handle_special_method(). diff -r 01123e3102cc arm_port/hotspot/src/cpu/zero/vm/arm_cas.S --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/arm_cas.S Fri Mar 02 17:52:08 2012 +0000 @@ -0,0 +1,30 @@ +#ifdef __ARM_ARCH_7A__ +@ jlong +@ arm_val_compare_and_swap_long(volatile void *ptr, +@ jlong oldval, +@ jlong newval) { + .pushsection .text + .global arm_val_compare_and_swap_long +#ifdef __thumb__ + .thumb_func +#endif + .type arm_val_compare_and_swap_long, %function +arm_val_compare_and_swap_long: + stmfd sp!, {r4, r5, r6, r7} + ldrd r4, [sp, #16] + dmb sy +0: ldrexd r6, [r0] + cmp r6, r2 + it eq + cmpeq r7, r3 + bne 1f + strexd r1, r4, [r0] + cmp r1, #0 + bne 0b + dmb sy +1: mov r0, r6 + mov r1, r7 + ldmfd sp!, {r4, r5, r6, r7} + bx lr + .popsection +#endif // __ARM_ARCH_7A__ diff -r 01123e3102cc arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Feb 22 15:36:29 2012 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Mar 02 17:52:08 2012 +0000 @@ -3042,6 +3042,10 @@ #define T_IT(cond, mask) (0xbf00 | (conds[cond] << 4) | (mask)) #define IT_MASK_T 8 +#define IT_MASK_TE 0x14 +#define IT_MASK_TT 0x1e +#define IT_MASK_TTT 0x1e +#define IT_MASK_TEE 0x12 #define PATCH(loc) do { \ unsigned oldidx = codebuf->idx; \ @@ -4233,7 +4237,8 @@ eor_imm(jinfo->codebuf, r_result, r, 0x80000000); } -void Thumb2_dNeg(Thumb2_Info *jinfo, u32 opc) +// arm_op is either DP_EOR (for dnegate) or DP_BIC (for dabs) +static void Thumb2_dUnaryOp(Thumb2_Info *jinfo, u32 arm_op) { Thumb2_Stack *jstack = jinfo->jstack; unsigned r_lo, r_hi, r_res_lo, r_res_hi; @@ -4248,7 +4253,17 @@ JASSERT(r_res_lo != r_res_hi, "oops"); JASSERT(r_res_lo != r_hi, "r_res_lo != r_hi"); mov_reg(jinfo->codebuf, r_res_lo, r_lo); - eor_imm(jinfo->codebuf, r_res_hi, r_hi, 0x80000000); + dop_imm(jinfo->codebuf, arm_op, r_res_hi, r_hi, 0x80000000); +} + +void Thumb2_dNeg(Thumb2_Info *jinfo) +{ + Thumb2_dUnaryOp(jinfo, DP_EOR); +} + +void Thumb2_dAbs(Thumb2_Info *jinfo) +{ + Thumb2_dUnaryOp(jinfo, DP_BIC); } void Thumb2_lOp(Thumb2_Info *jinfo, u32 opc) @@ -5008,42 +5023,34 @@ // Expand a call to a "special" method. These are usually inlines of // java.lang.Math methods. Return true if the inlining succeeded. -static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo) { +static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo, + unsigned stackdepth) { + Thumb2_Stack *jstack = jinfo->jstack; + CodeBuf *codebuf = jinfo->codebuf; + + const char *entry_name; + + switch (callee->intrinsic_id()) { + case vmIntrinsics::_dabs: + { + Thumb2_dAbs(jinfo); + return true; + } + #ifdef __ARM_PCS_VFP - Thumb2_Stack *jstack = jinfo->jstack; - - const char *entry_name; - - unsigned loc1 = 0; - - switch (Interpreter::method_kind(callee)) { - case Interpreter::java_lang_math_abs: - { - unsigned r_lo, r_hi; - - Thumb2_Fill(jinfo, 2); - r_lo = POP(jstack); - r_hi = POP(jstack); - dop_imm_s(jinfo->codebuf, DP_BIC, r_hi, r_hi, 0x80000000, 0); - PUSH(jstack, r_hi); - PUSH(jstack, r_lo); - - return true; - } - - case Interpreter::java_lang_math_sin: + case vmIntrinsics::_dsin: entry_name = "Java_java_lang_StrictMath_sin"; break; - case Interpreter::java_lang_math_cos: + case vmIntrinsics::_dcos: entry_name = "Java_java_lang_StrictMath_cos"; break; - case Interpreter::java_lang_math_tan: + case vmIntrinsics::_dtan: entry_name = "Java_java_lang_StrictMath_tan"; break; - case Interpreter::java_lang_math_sqrt: + case vmIntrinsics::_dsqrt: { void *entry_point = dlsym(NULL, "Java_java_lang_StrictMath_sqrt"); if (! entry_point) @@ -5077,13 +5084,104 @@ return true; } - case Interpreter::java_lang_math_log: + case vmIntrinsics::_dlog: entry_name = "Java_java_lang_StrictMath_log"; break; - case Interpreter::java_lang_math_log10: + case vmIntrinsics::_dlog10: entry_name = "Java_java_lang_StrictMath_log10"; break; +#endif // __ARM_PCS_VFP + + case vmIntrinsics::_compareAndSwapInt: + { + Thumb2_Fill(jinfo, 4); + + unsigned update = POP(jstack); + unsigned expect = POP(jstack); + unsigned offset = POP(jstack); + POP(jstack); // Actually the high part of the offset + + // unsigned object = POP(jstack); + // unsigned unsafe = POP(jstack); // Initially an instance of java.lang.Unsafe + + Thumb2_Flush(jinfo); + // Get ourself a result reg that's not one of the inputs + unsigned exclude = (1<codebuf, COND_NE, loc_failed); + + it(codebuf, COND_NE, IT_MASK_TEE); + mov_imm(codebuf, result, 0); + mov_imm(codebuf, result, 1); + fullBarrier(codebuf); + + PUSH(jstack, result); + } + return true; + + case vmIntrinsics::_compareAndSwapLong: + { + Thumb2_Fill(jinfo, 4); + + unsigned update_lo = POP(jstack); + unsigned update_hi = POP(jstack); + unsigned expect_lo = POP(jstack); + unsigned expect_hi = POP(jstack); + + Thumb2_Flush(jinfo); + Thumb2_save_locals(jinfo, stackdepth - 4); // 4 args popped above + + // instance of java.lang.Unsafe: + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 3 * wordSize, 1, 0); + ldr_imm(codebuf, ARM_LR, ARM_LR, 0, 0, 0); // Security check + + // Object: + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 2 * wordSize, 1, 0); + // Offset: + ldr_imm(jinfo->codebuf, ARM_IP, Rstack, 0 * wordSize, 1, 0); + add_reg(codebuf, ARM_LR, ARM_LR, ARM_IP); // ARM_LR now points to word + + fullBarrier(codebuf); + + int retry = out_loc(codebuf); + ldrexd(codebuf, JAZ_V2, JAZ_V3, ARM_LR); + cmp_reg(codebuf, JAZ_V2, expect_lo); + it(jinfo->codebuf, COND_EQ, IT_MASK_T); + cmp_reg(codebuf, JAZ_V3, expect_hi); + + int loc_failed = forward_16(codebuf); + strexd(codebuf, JAZ_V1, update_lo, update_hi, ARM_LR); + cmp_imm(codebuf, JAZ_V1, 0); + branch(codebuf, COND_NE, retry); + bcc_patch(jinfo->codebuf, COND_NE, loc_failed); + + unsigned result = JSTACK_REG(jinfo->jstack); + + it(codebuf, COND_NE, IT_MASK_TEE); + mov_imm(codebuf, result, 0); + mov_imm(codebuf, result, 1); + fullBarrier(codebuf); + + Thumb2_restore_locals(jinfo, stackdepth - 4); // 4 args popped above + add_imm(codebuf, Rstack, Rstack, 4 * wordSize); + PUSH(jstack, result); + } + return true; default: return false; @@ -5093,8 +5191,6 @@ if (! entry_point) return false; - unsigned r_lo, r_hi, r_res_lo, r_res_hi; - jstack_to_vfp(jinfo, VFP_D0); // FIXME: The JNI StrictMath routines don't use the JNIEnv *env // parameter, so it's arguably pointless to pass it here. @@ -5103,9 +5199,6 @@ vfp_to_jstack(jinfo, VFP_D0); return true; -#else - return false; -#endif // __ARM_PCS_VFP } void Thumb2_codegen(Thumb2_Info *jinfo, unsigned start) @@ -5766,7 +5859,7 @@ break; case opc_dneg: - Thumb2_dNeg(jinfo, opcode); + Thumb2_dNeg(jinfo); break; case opc_i2l: { @@ -6177,7 +6270,7 @@ callee = (methodOop)cache->f1(); - if (handle_special_method(callee, jinfo)) + if (handle_special_method(callee, jinfo, stackdepth)) break; if (callee->is_accessor()) { @@ -6302,6 +6395,10 @@ if (cache->is_vfinal()) { methodOop callee = (methodOop)cache->f2(); + + if (handle_special_method(callee, jinfo, stackdepth)) + break; + if (callee->is_accessor()) { u1 *code = callee->code_base(); int index = GET_NATIVE_U2(&code[2]); @@ -7857,7 +7954,7 @@ #define DEBUG_REGSET ((1< References: <4F4FE495.900@redhat.com> <20120301211846.GC24599@redhat.com> <4F510733.6020008@redhat.com> Message-ID: <20120302203718.GS24599@redhat.com> * Omair Majid [2012-03-02 12:45]: ... ... Hi Omair, > * > * @param enableCodeBase whether to add the code base URL to the classloader > */ > - protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > + protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont, boolean isPlugin) throws LaunchException { > try { > JNLPClassLoader loader = JNLPClassLoader.getInstance(file, updatePolicy); > > + // Do not create new AppContext if we're using NetX and icedteaplugin. > + // The plugin needs an AppContext too, but it has to be created earlier. > + if (context) { > + if (!isPlugin) { > + Thread.currentThread().setContextClassLoader(loader); > + SunToolkit.createNewAppContext(); > + } > + doPerApplicationAppContextHacks(); > + } > + Will there be a case where isPlugin == false but createApplet is called? Is this when applet-desc is used? Deepak From omajid at redhat.com Fri Mar 2 12:43:58 2012 From: omajid at redhat.com (Omair Majid) Date: Fri, 02 Mar 2012 15:43:58 -0500 Subject: [icedtea-web] RFC: fix L&F issues with swing applications In-Reply-To: <20120302203718.GS24599@redhat.com> References: <4F4FE495.900@redhat.com> <20120301211846.GC24599@redhat.com> <4F510733.6020008@redhat.com> <20120302203718.GS24599@redhat.com> Message-ID: <4F51310E.9040509@redhat.com> On 03/02/2012 03:37 PM, Deepak Bhole wrote: > * Omair Majid [2012-03-02 12:45]: > ... > ... > > Hi Omair, > >> * >> * @param enableCodeBase whether to add the code base URL to the classloader >> */ >> - protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { >> + protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont, boolean isPlugin) throws LaunchException { >> try { >> JNLPClassLoader loader = JNLPClassLoader.getInstance(file, updatePolicy); >> >> + // Do not create new AppContext if we're using NetX and icedteaplugin. >> + // The plugin needs an AppContext too, but it has to be created earlier. >> + if (context) { >> + if (!isPlugin) { >> + Thread.currentThread().setContextClassLoader(loader); >> + SunToolkit.createNewAppContext(); >> + } >> + doPerApplicationAppContextHacks(); >> + } >> + > > Will there be a case where isPlugin == false but createApplet is called? > Is this when applet-desc is used? > Yeah, an applet run using 'javaws /path/to/applet.jnlp' (where the jnlp file contains an applet-desc) will also result in createApplet() being invoked (or at least that's what the code paths indicate - see net.sourceforge.jnlp.Launcher.TgThread.run()). Cheers, Omair From dbhole at redhat.com Fri Mar 2 12:48:10 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 2 Mar 2012 15:48:10 -0500 Subject: [icedtea-web] RFC: fix L&F issues with swing applications In-Reply-To: <4F51310E.9040509@redhat.com> References: <4F4FE495.900@redhat.com> <20120301211846.GC24599@redhat.com> <4F510733.6020008@redhat.com> <20120302203718.GS24599@redhat.com> <4F51310E.9040509@redhat.com> Message-ID: <20120302204810.GT24599@redhat.com> * Omair Majid [2012-03-02 15:44]: > On 03/02/2012 03:37 PM, Deepak Bhole wrote: > > * Omair Majid [2012-03-02 12:45]: > > ... > > ... > > > > Hi Omair, > > > >> * > >> * @param enableCodeBase whether to add the code base URL to the classloader > >> */ > >> - protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > >> + protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont, boolean isPlugin) throws LaunchException { > >> try { > >> JNLPClassLoader loader = JNLPClassLoader.getInstance(file, updatePolicy); > >> > >> + // Do not create new AppContext if we're using NetX and icedteaplugin. > >> + // The plugin needs an AppContext too, but it has to be created earlier. > >> + if (context) { > >> + if (!isPlugin) { > >> + Thread.currentThread().setContextClassLoader(loader); > >> + SunToolkit.createNewAppContext(); > >> + } > >> + doPerApplicationAppContextHacks(); > >> + } > >> + > > > > Will there be a case where isPlugin == false but createApplet is called? > > Is this when applet-desc is used? > > > > Yeah, an applet run using 'javaws /path/to/applet.jnlp' (where the jnlp > file contains an applet-desc) will also result in createApplet() being > invoked (or at least that's what the code paths indicate - see > net.sourceforge.jnlp.Launcher.TgThread.run()). > Is there a link to such a jnlp? > Cheers, > Omair From omajid at redhat.com Fri Mar 2 13:00:06 2012 From: omajid at redhat.com (Omair Majid) Date: Fri, 02 Mar 2012 16:00:06 -0500 Subject: [icedtea-web] RFC: fix L&F issues with swing applications In-Reply-To: <20120302204810.GT24599@redhat.com> References: <4F4FE495.900@redhat.com> <20120301211846.GC24599@redhat.com> <4F510733.6020008@redhat.com> <20120302203718.GS24599@redhat.com> <4F51310E.9040509@redhat.com> <20120302204810.GT24599@redhat.com> Message-ID: <4F5134D6.5060807@redhat.com> On 03/02/2012 03:48 PM, Deepak Bhole wrote: > * Omair Majid [2012-03-02 15:44]: >> On 03/02/2012 03:37 PM, Deepak Bhole wrote: >>> * Omair Majid [2012-03-02 12:45]: >>> ... >>> ... >>> >>> Hi Omair, >>> >>>> * >>>> * @param enableCodeBase whether to add the code base URL to the classloader >>>> */ >>>> - protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { >>>> + protected AppletInstance createApplet(JNLPFile file, boolean enableCodeBase, Container cont, boolean isPlugin) throws LaunchException { >>>> try { >>>> JNLPClassLoader loader = JNLPClassLoader.getInstance(file, updatePolicy); >>>> >>>> + // Do not create new AppContext if we're using NetX and icedteaplugin. >>>> + // The plugin needs an AppContext too, but it has to be created earlier. >>>> + if (context) { >>>> + if (!isPlugin) { >>>> + Thread.currentThread().setContextClassLoader(loader); >>>> + SunToolkit.createNewAppContext(); >>>> + } >>>> + doPerApplicationAppContextHacks(); >>>> + } >>>> + >>> >>> Will there be a case where isPlugin == false but createApplet is called? >>> Is this when applet-desc is used? >>> >> >> Yeah, an applet run using 'javaws /path/to/applet.jnlp' (where the jnlp >> file contains an applet-desc) will also result in createApplet() being >> invoked (or at least that's what the code paths indicate - see >> net.sourceforge.jnlp.Launcher.TgThread.run()). >> > > Is there a link to such a jnlp? > I don't think I have actually ever tested this (so no idea how well this works at all). Try: http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/fft1DApp/1d_fast_fourier_transform_java_jnlp.jnlp Thanks, Omair From thomas at m3y3r.de Sat Mar 3 04:53:20 2012 From: thomas at m3y3r.de (Thomas Meyer) Date: Sat, 03 Mar 2012 13:53:20 +0100 Subject: [icedtea-web] Update .hgignore file Message-ID: <1330779200.1380.16.camel@localhost.localdomain> diff -r f1c6e1562fcf .hgignore --- a/.hgignore Wed Feb 29 15:13:14 2012 -0500 +++ b/.hgignore Sat Mar 03 13:51:52 2012 +0100 @@ -1,4 +1,7 @@ +syntax: glob + Makefile.in +Makefile aclocal.m4 autom4te.cache build @@ -7,3 +10,20 @@ missing config.guess config.sub +config.log +config.status +stamps/ +docs/ +bootstrap/ +liveconnect/ +extra-lib/ +*.desktop +build.properties +javac +jrunscript +netx.manifest +netx.build/ +launcher.build/ +plugin/icedteanp/*.o +plugin/icedteanp/*.so +*-source-files.txt From bugzilla-daemon at icedtea.classpath.org Sun Mar 4 04:41:14 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 04 Mar 2012 12:41:14 +0000 Subject: [Bug 867] https://bcee.snet.lu/ssogate/xlogin gives 'Array index out of range' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=867 --- Comment #4 from pcfe 2012-03-04 12:41:14 UTC --- (In reply to comment #3) > are you sure that the attached java.stderr matches the plugin.log? *sigh* if you are not interested in fixing this, just close the bug CLOSED WONTFIX. Reproducing is straight forward and requires no login on the site. If you have doubts about the logs being wrong, why do you not simply follow the instructions in the description? Currently you makes me feel like you are playing some kind of silly 'ball is in your court game'. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From jvanek at redhat.com Sun Mar 4 23:19:18 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 05 Mar 2012 08:19:18 +0100 Subject: [icedtea-web] Update .hgignore file In-Reply-To: <1330779200.1380.16.camel@localhost.localdomain> References: <1330779200.1380.16.camel@localhost.localdomain> Message-ID: <4F5468F6.8040802@redhat.com> On 03/03/2012 01:53 PM, Thomas Meyer wrote: > diff -r f1c6e1562fcf .hgignore > --- a/.hgignore Wed Feb 29 15:13:14 2012 -0500 > +++ b/.hgignore Sat Mar 03 13:51:52 2012 +0100 > @@ -1,4 +1,7 @@ > +syntax: glob > + > Makefile.in > +Makefile > aclocal.m4 > autom4te.cache > build > @@ -7,3 +10,20 @@ > missing > config.guess > config.sub > +config.log > +config.status > +stamps/ > +docs/ > +bootstrap/ > +liveconnect/ > +extra-lib/ > +*.desktop > +build.properties > +javac > +jrunscript > +netx.manifest > +netx.build/ > +launcher.build/ > +plugin/icedteanp/*.o > +plugin/icedteanp/*.so > +*-source-files.txt > > I agree that those files should be added to hgignore. ok for head. Thanx for patch! J. From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 02:06:21 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 10:06:21 +0000 Subject: [Bug 867] https://bcee.snet.lu/ssogate/xlogin gives 'Array index out of range' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=867 --- Comment #5 from Xerxes R?nby 2012-03-05 10:06:21 UTC --- Created attachment 670 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=670 plugin-1.2pre-debug.log When i run your testcase using icedtea plugin 1.2pre i see a different error, I hit an assertion inside firefox itself: Assertion failure: rt->onOwnerThread(), at /build/buildd/firefox-10.0.2+build1/build-tree/mozilla/js/src/jsapi.cpp:6316 And this cause firefox to exit. I am not sure if this bug are actually caused by icedtea-web or if it is a bug inside firefox. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 02:18:01 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 10:18:01 +0000 Subject: [Bug 867] https://bcee.snet.lu/ssogate/xlogin gives 'Array index out of range' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=867 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |https://www.nemid.nu/log_pa | |a_selvbetjening/index.html CC| |xerxes at zafena.se --- Comment #6 from Xerxes R?nby 2012-03-05 10:18:01 UTC --- I have been able to reproduce your 'Array index out of range' using the following nemid login page: https://www.nemid.nu/log_paa_selvbetjening/index.html -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at icedtea.classpath.org Mon Mar 5 03:08:06 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 05 Mar 2012 11:08:06 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/framework/CommonClippingOperatio... Message-ID: changeset b81083bcdff3 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=b81083bcdff3 author: Pavel Tisnovsky date: Mon Mar 05 12:10:42 2012 +0100 * src/org/gfxtest/framework/CommonClippingOperations.java: Added support for clipping path using convex, concave and self-intersecting polygonal shapes. * src/org/gfxtest/testsuites/ClippingCircleByPolygonalShape.java: * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: Renamed and refactored to call methods which work with convex polygons only. * src/org/gfxtest/testsuites/ClippingPathByPolygonalShape.java: * src/org/gfxtest/testsuites/ClippingPathByConvexPolygonalShape.java: Renamed and refactored to call methods which work with convex polygons only. * Makefile: updated diffstat: ChangeLog | 15 + Makefile | 8 +- src/org/gfxtest/framework/CommonClippingOperations.java | 157 ++- src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java | 586 ++++++++++ src/org/gfxtest/testsuites/ClippingCircleByPolygonalShape.java | 586 ---------- src/org/gfxtest/testsuites/ClippingPathByConvexPolygonalShape.java | 290 ++++ src/org/gfxtest/testsuites/ClippingPathByPolygonalShape.java | 290 ---- 7 files changed, 1043 insertions(+), 889 deletions(-) diffs (truncated from 2035 to 500 lines): diff -r d5442554d852 -r b81083bcdff3 ChangeLog --- a/ChangeLog Fri Mar 02 14:11:58 2012 +0100 +++ b/ChangeLog Mon Mar 05 12:10:42 2012 +0100 @@ -1,3 +1,18 @@ +2012-03-05 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonClippingOperations.java: + Added support for clipping path using convex, concave and + self-intersecting polygonal shapes. + * src/org/gfxtest/testsuites/ClippingCircleByPolygonalShape.java: + * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: + Renamed and refactored to call methods which work with convex polygons + only. + * src/org/gfxtest/testsuites/ClippingPathByPolygonalShape.java: + * src/org/gfxtest/testsuites/ClippingPathByConvexPolygonalShape.java: + Renamed and refactored to call methods which work with convex polygons + only. + * Makefile: updated + 2012-03-02 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingCircleByEllipseShape.java: diff -r d5442554d852 -r b81083bcdff3 Makefile --- a/Makefile Fri Mar 02 14:11:58 2012 +0100 +++ b/Makefile Mon Mar 05 12:10:42 2012 +0100 @@ -159,14 +159,14 @@ $(CLASSES)/$(TESTSUITE_DIR)/Clipping.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByRectangleArea.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByEllipseShape.class \ - $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByPolygonalShape.class \ + $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByConvexPolygonalShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByRectangleShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByRoundRectangleShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByRectangleArea.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByRectangleShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByArbitraryShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByEllipseShape.class \ - $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByPolygonalShape.class \ + $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByConvexPolygonalShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByRoundRectangleShape.class COMPARE_RESULTS = \ @@ -226,13 +226,13 @@ $(RESULTS)/Clipping \ $(RESULTS)/ClippingCircleByRectangleArea \ $(RESULTS)/ClippingCircleByEllipseShape \ - $(RESULTS)/ClippingCircleByPolygonalShape \ + $(RESULTS)/ClippingCircleByConvexPolygonalShape \ $(RESULTS)/ClippingCircleByRectangleShape \ $(RESULTS)/ClippingCircleByRoundRectangleShape \ $(RESULTS)/ClippingPathByRectangleArea \ $(RESULTS)/ClippingPathByArbitraryShape \ $(RESULTS)/ClippingPathByEllipseShape \ - $(RESULTS)/ClippingPathByPolygonalShape \ + $(RESULTS)/ClippingPathByConvexPolygonalShape \ $(RESULTS)/ClippingPathByRoundRectangleShape \ $(RESULTS)/ClippingPathByRectangleShape diff -r d5442554d852 -r b81083bcdff3 src/org/gfxtest/framework/CommonClippingOperations.java --- a/src/org/gfxtest/framework/CommonClippingOperations.java Fri Mar 02 14:11:58 2012 +0100 +++ b/src/org/gfxtest/framework/CommonClippingOperations.java Mon Mar 05 12:10:42 2012 +0100 @@ -160,23 +160,63 @@ } /** - * Render the polygon around the clip area. Clip area could have different - * shape but should be inside this ellipse. + * Render convex polygon around the clip area. Clip area could have different + * shape but should be inside this shape. * * @param image * work image * @param graphics2d * graphics canvas */ - public static void renderClipPolygon(TestImage image, Graphics2D graphics2d) + public static void renderConvexClipPolygon(TestImage image, Graphics2D graphics2d) { // compute size of clip area final int width = computeClipRegionWidth(image) + 1; final int height = computeClipRegionHeight(image) + 1; // color used for clipping areas graphics2d.setColor(CLIP_SHAPE_COLOR); - // draw ellipse around the clip area - graphics2d.drawPolygon(createClippingPolygon(width, height)); + // draw polygon around the clip area + graphics2d.drawPolygon(createConvexClippingPolygon(width, height)); + } + + /** + * Render concave polygon around the clip area. Clip area could have different + * shape but should be inside this shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + public static void renderConcaveClipPolygon(TestImage image, Graphics2D graphics2d) + { + // compute size of clip area + final int width = computeClipRegionWidth(image) + 1; + final int height = computeClipRegionHeight(image) + 1; + // color used for clipping areas + graphics2d.setColor(CLIP_SHAPE_COLOR); + // draw polygon around the clip area + graphics2d.drawPolygon(createConcaveClippingPolygon(width, height)); + } + + /** + * Render the polygon around the clip area. Clip area could have different + * shape but should be inside this shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + public static void renderSelfIntersectingClipPolygon(TestImage image, Graphics2D graphics2d) + { + // compute size of clip area + final int width = computeClipRegionWidth(image) + 1; + final int height = computeClipRegionHeight(image) + 1; + // color used for clipping areas + graphics2d.setColor(CLIP_SHAPE_COLOR); + // draw polygon around the clip area + graphics2d.drawPolygon(createSelfIntersectingClippingPolygon(width, height)); } /** @@ -254,25 +294,124 @@ } /** - * Create clip region using polygonal shape. + * Create clip region using convex polygonal shape. * * @param image * work image * @param graphics2d * graphics canvas */ - public static void createClipUsingPolygonalShape(TestImage image, Graphics2D graphics2d) + public static void createClipUsingConvexPolygonalShape(TestImage image, Graphics2D graphics2d) { // compute size of clip area final int width = computeClipRegionWidth(image); final int height = computeClipRegionHeight(image); // create clip shape - Polygon polygon = createClippingPolygon(width, height); + Polygon polygon = createConvexClippingPolygon(width, height); // and apply the created shape as clipping region graphics2d.setClip(polygon); } /** + * Create clip region using concave polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + public static void createClipUsingConcavePolygonalShape(TestImage image, Graphics2D graphics2d) + { + // compute size of clip area + final int width = computeClipRegionWidth(image); + final int height = computeClipRegionHeight(image); + // create clip shape + Polygon polygon = createConcaveClippingPolygon(width, height); + // and apply the created shape as clipping region + graphics2d.setClip(polygon); + } + + /** + * Create clip region using self-intersecting polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + public static void createClipUsingSelfIntersectingPolygonalShape(TestImage image, Graphics2D graphics2d) + { + // compute size of clip area + final int width = computeClipRegionWidth(image); + final int height = computeClipRegionHeight(image); + // create clip shape + Polygon polygon = createSelfIntersectingClippingPolygon(width, height); + // and apply the created shape as clipping region + graphics2d.setClip(polygon); + } + + /** + * Create clipping polygon with given width and height. Please note that the + * polygon has the following shape: + * + *
+     *    ____
+     *   /    \
+     *  /      \
+     *  \      /
+     *   \____/
+     * 
+ * + * @param width + * image width + * @param height + * image height + * @return new clipping polygon + */ + private static Polygon createConvexClippingPolygon(final int width, final int height) + { + Polygon polygon = new Polygon(); + // add five vertexes + polygon.addPoint(1, height >> 1); + polygon.addPoint(width / 3, 1); + polygon.addPoint(2 * width / 3, 1); + polygon.addPoint(width, height >> 1); + polygon.addPoint(2 * width / 3, height); + polygon.addPoint(width / 3, height); + return polygon; + } + + /** + * Create clipping polygon with given width and height. Please note that the + * polygon has the following shape: + * + *
+     *  ______
+     *  \    / 
+     *   \  /  
+     *   /  \
+     *  /____\ 
+     * 
+ * + * @param width + * image width + * @param height + * image height + * @return new clipping polygon + */ + private static Polygon createConcaveClippingPolygon(final int width, final int height) + { + Polygon polygon = new Polygon(); + // add five vertexes + polygon.addPoint(1, 1); + polygon.addPoint(width, 1); + polygon.addPoint(width, height); + polygon.addPoint(1, height); + polygon.addPoint(width >> 1, height >> 1); + return polygon; + } + + /** * Create clipping polygon with given width and height. Please note that the * polygon has the following shape: * @@ -290,7 +429,7 @@ * image height * @return new clipping polygon */ - private static Polygon createClippingPolygon(final int width, final int height) + private static Polygon createSelfIntersectingClippingPolygon(final int width, final int height) { Polygon polygon = new Polygon(); // add four vertexes diff -r d5442554d852 -r b81083bcdff3 src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java Mon Mar 05 12:10:42 2012 +0100 @@ -0,0 +1,586 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011, 2012 Red Hat + +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; either version 2, or (at your option) +any later version. + +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.gfxtest.testsuites; + +import java.awt.Graphics2D; + + + +import org.gfxtest.framework.CommonClippingOperations; +import org.gfxtest.framework.CommonRenderingStyles; +import org.gfxtest.framework.CommonShapesRenderer; +import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.TestImage; +import org.gfxtest.framework.TestResult; +import org.gfxtest.framework.annotations.GraphicsPrimitive; +import org.gfxtest.framework.annotations.GraphicsPrimitives; +import org.gfxtest.framework.annotations.TestType; +import org.gfxtest.framework.annotations.TestTypes; +import org.gfxtest.framework.annotations.Transformation; +import org.gfxtest.framework.annotations.Transformations; +import org.gfxtest.framework.annotations.Zoom; + +/** + * This test check if clipping is working correctly for an empty, filled + * and textured circle which is clipped by a polygonal shape. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at Transformation(Transformations.NONE) + at GraphicsPrimitive(GraphicsPrimitives.CIRCLE) + at Zoom(1) +public class ClippingCircleByConvexPolygonalShape extends GfxTest +{ + /** + * Prepare canvas for the rendering. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void basicSetupForRendering(TestImage image, Graphics2D graphics2d) + { + // create clip area which is constructed from the polygonal shape + CommonClippingOperations.createClipUsingConvexPolygonalShape(image, graphics2d); + } + + /** + * Draw empty circle clipped by a polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void drawEmptyCircleClippedByPolygonalShape(TestImage image, Graphics2D graphics2d) + { + // prepare canvas for the rendering + basicSetupForRendering(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // draw the area + CommonShapesRenderer.drawCircle(image, graphics2d); + } + + /** + * Draw filled circle clipped by a polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void drawFilledCircleClippedByPolygonalShape(TestImage image, Graphics2D graphics2d) + { + // prepare canvas for the rendering + basicSetupForRendering(image, graphics2d); + // fill the area + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a polygonal shape. Circle is drawn using alpha + * paint with red color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintRed(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillRedColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConvexPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a polygonal shape. Circle is drawn using alpha + * paint with green color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintGreen(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillGreenColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConvexPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a polygonal shape. Circle is drawn using alpha + * paint with blue color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintBlue(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillBlueColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConvexPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 03:31:45 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 11:31:45 +0000 Subject: [Bug 867] https://bcee.snet.lu/ssogate/xlogin gives 'Array index out of range' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=867 --- Comment #7 from Xerxes R?nby 2012-03-05 11:31:45 UTC --- The login applet produced by DanID are in many ways bad. It uses a lot of code obfuscation techniques to hide its inner workings. To start with the applet jar files are obfuscated. They are loading classes from compressed strings inside the applet. The applet downloads some "plugins" and unpacks these into a folders on the users hard-drive. Inside this folder you can find some .gif files these .gif files are actually JNI code for various platforms. Its really hard to know what went wrong since its almost impossible to trace the inner workings of these applets. Personally I would not trust these applets at all for any login, you basically give unrestricted access to your computers files to a applet that you have no way to check what it are doing. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 03:40:08 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 11:40:08 +0000 Subject: [Bug 889] New: A fatal error has been detected by the Java Runtime Environment Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=889 Bug #: 889 Summary: A fatal error has been detected by the Java Runtime Environment Classification: Unclassified Product: MIPS Port Version: unspecified Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: general AssignedTo: unassigned at icedtea.classpath.org ReportedBy: wolfishor at gmail.com Created attachment 671 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=671 A fatal error has been detected by the Java Runtime Environment -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 03:56:44 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 11:56:44 +0000 Subject: [Bug 867] https://bcee.snet.lu/ssogate/xlogin gives 'Array index out of range' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=867 --- Comment #8 from Xerxes R?nby 2012-03-05 11:56:44 UTC --- Created attachment 672 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=672 login ok using Firefox 11 and icedtea-web 1.2pre on ARM The https://bcee.snet.lu/ssogate/xlogin login page work on ARM using Firefox 11 and IcedTea-Web Plugin (using IcedTea-Web 1.2pre (1.2~pre3-1ubuntu2)) java version "1.6.0_24" OpenJDK Runtime Environment (IcedTea6 1.11.1) (6b24-1.11.1-3ubuntu3) OpenJDK Zero VM (build 20.0-b12, mixed mode) Can you re-try the bcee.snet.lu loginpage using Firefox 11? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 04:25:12 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 12:25:12 +0000 Subject: [Bug 889] A fatal error has been detected by the Java Runtime Environment In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=889 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xerxes at zafena.se Component|general |IcedTea6 Version|unspecified |6-1.11.1 Product|MIPS Port |IcedTea --- Comment #1 from Xerxes R?nby 2012-03-05 12:25:12 UTC --- Hi I assume you are compiling some sort of android application. Can you attach the java code that can triggers this bug while running javac? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From jvanek at redhat.com Mon Mar 5 04:55:02 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 05 Mar 2012 13:55:02 +0100 Subject: [rfc][icedtea-web] extended reflection tests Message-ID: <4F54B7A6.70102@redhat.com> Hi! Few more test to reflection What I'm surprised is, that unsigned application can use reflection at all. I tough they can not.... This text is expecting them unsigned ones using reflection as correct as it is current behaviour. But feel free to correct me if unsigned applications should have reflection forbidden. 2012-03-05 Jiri Vanek Improved reflection test: * /home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: This testcase was extended for three more unsigned reflection tries and four signed */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: now accepting class to be findByName as argument. Four new jnlp files in signed a four in simple are then passing those argument */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: removed * tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java signed variation of AccessClassInPackage, tescase is also in AccessClassInPackage * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp Best regards J. -------------- next part -------------- A non-text attachment was scrubbed... Name: extendedReflectionTests.diff Type: text/x-patch Size: 18228 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120305/e3e93f3b/extendedReflectionTests.diff From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 05:56:33 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 13:56:33 +0000 Subject: [Bug 867] https://bcee.snet.lu/ssogate/xlogin gives 'Array index out of range' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=867 --- Comment #9 from Xerxes R?nby 2012-03-05 13:56:33 UTC --- Both DanID/NemID and https://bcee.snet.lu/ssogate/xlogin work on x86 using ubuntu 12.04 using the icedtea-web plugin in combination with Firefox 11. IcedTea-Web Plugin (using IcedTea-Web 1.2pre (1.2~pre3-1ubuntu2)) Firefox 11 java version "1.6.0_24" OpenJDK Runtime Environment (IcedTea6 1.11.1) (6b24-1.11.1-3ubuntu3) OpenJDK Server VM (build 20.0-b12, mixed mode) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 07:03:30 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 15:03:30 +0000 Subject: [Bug 867] https://bcee.snet.lu/ssogate/xlogin gives 'Array index out of range' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=867 --- Comment #10 from pcfe 2012-03-05 15:03:30 UTC --- re comment 8 & 9: OK, let's close this bug then re comment 7: ugh, thanks for letting me know! I'll definitely continue using the site through a KVM guest (RHEL6, SUN jvm, sorry, it's already set up) that I only have for that one application. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From dbhole at redhat.com Mon Mar 5 07:37:04 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 5 Mar 2012 10:37:04 -0500 Subject: [icedtea-web] RFC: Backing out patch causing regressions Message-ID: <20120305153702.GD3103@redhat.com> Hi, http://icedtea.classpath.org/hg/icedtea-web/rev/6b46e55a8854 Is causing regressions and holding back release of 1.2. Omair has taken a deep look at the patch and concluded that backing out is the best option as fixing requires a significant change. I am in agreement -- posting here for the record. OK for back-out from 1.2? Deepak From omajid at redhat.com Mon Mar 5 07:52:32 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 05 Mar 2012 10:52:32 -0500 Subject: [icedtea-web] RFC: Backing out patch causing regressions In-Reply-To: <20120305153702.GD3103@redhat.com> References: <20120305153702.GD3103@redhat.com> Message-ID: <4F54E140.60700@redhat.com> On 03/05/2012 10:37 AM, Deepak Bhole wrote: > Hi, > > http://icedtea.classpath.org/hg/icedtea-web/rev/6b46e55a8854 > > Is causing regressions and holding back release of 1.2. Omair has taken > a deep look at the patch and concluded that backing out is the best > option as fixing requires a significant change. > > I am in agreement -- posting here for the record. > > OK for back-out from 1.2? > Given the regressions caused by this patch, I am okay with backing this out for now. I have two comments on this, though: 1. Synchronization of Swing code. This looks rather wrong. If all swing calls are happening on the EDT, there is nothing to synchronize. If calls are not happening on the EDT, then there is a deeper problem that we should solve instead. 2. The change from JFrame.setVisible(false) to JFrame.dispose() is causing the EDT to shutdown - which is what we want. The trouble is that when it starts back up, a lot of things can go wrong. There are two issues I am aware of. One is that the AppContext associated with the EDT has to be set properly (it's currently not being set, see the thread starting at [1]). The other is that we will try to query the ThreadGroup associated with the jnlp applets after they have stop()ed which causes an IllegalStateException (an assertion, really) in icedtea-web code. I think we can fix both of these issues properly in the long term. Thanks, Omair [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017500.html From dbhole at redhat.com Mon Mar 5 08:13:42 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 5 Mar 2012 11:13:42 -0500 Subject: [icedtea-web] Update .hgignore file In-Reply-To: <1330779200.1380.16.camel@localhost.localdomain> References: <1330779200.1380.16.camel@localhost.localdomain> Message-ID: <20120305161338.GE3103@redhat.com> * Thomas Meyer [2012-03-03 08:02]: > diff -r f1c6e1562fcf .hgignore > --- a/.hgignore Wed Feb 29 15:13:14 2012 -0500 > +++ b/.hgignore Sat Mar 03 13:51:52 2012 +0100 > @@ -1,4 +1,7 @@ > +syntax: glob > + [ ... ] Hi Thomas, I don't think this change should go on. I had proposed something similar in the past for IcedTea and it was not pushed. Please see this thread for explanation by Andrew Hughes: http://old.nabble.com/RFE%3A-Proposed-changes-to-.hgignore-td29290509.html Cheers, Deepak From jvanek at redhat.com Mon Mar 5 08:27:37 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 05 Mar 2012 17:27:37 +0100 Subject: [icedtea-web] Update .hgignore file In-Reply-To: <20120305161338.GE3103@redhat.com> References: <1330779200.1380.16.camel@localhost.localdomain> <20120305161338.GE3103@redhat.com> Message-ID: <4F54E979.6060309@redhat.com> On 03/05/2012 05:13 PM, Deepak Bhole wrote: > * Thomas Meyer [2012-03-03 08:02]: >> diff -r f1c6e1562fcf .hgignore >> --- a/.hgignore Wed Feb 29 15:13:14 2012 -0500 >> +++ b/.hgignore Sat Mar 03 13:51:52 2012 +0100 >> @@ -1,4 +1,7 @@ >> +syntax: glob >> + > > [ ... ] > > Hi Thomas, > > I don't think this change should go on. I had proposed something similar > in the past for IcedTea and it was not pushed. Please see this thread > for explanation by Andrew Hughes: > > http://old.nabble.com/RFE%3A-Proposed-changes-to-.hgignore-td29290509.html > Then you are suggesting to fix make clean? Those files were not left with purpose? What an shame :((( J. > Cheers, > Deepak From dbhole at redhat.com Mon Mar 5 08:29:50 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 5 Mar 2012 11:29:50 -0500 Subject: [icedtea-web] Update .hgignore file In-Reply-To: <4F54E979.6060309@redhat.com> References: <1330779200.1380.16.camel@localhost.localdomain> <20120305161338.GE3103@redhat.com> <4F54E979.6060309@redhat.com> Message-ID: <20120305162947.GF3103@redhat.com> * Jiri Vanek [2012-03-05 11:25]: > On 03/05/2012 05:13 PM, Deepak Bhole wrote: > >* Thomas Meyer [2012-03-03 08:02]: > >>diff -r f1c6e1562fcf .hgignore > >>--- a/.hgignore Wed Feb 29 15:13:14 2012 -0500 > >>+++ b/.hgignore Sat Mar 03 13:51:52 2012 +0100 > >>@@ -1,4 +1,7 @@ > >>+syntax: glob > >>+ > > > >[ ... ] > > > >Hi Thomas, > > > >I don't think this change should go on. I had proposed something similar > >in the past for IcedTea and it was not pushed. Please see this thread > >for explanation by Andrew Hughes: > > > >http://old.nabble.com/RFE%3A-Proposed-changes-to-.hgignore-td29290509.html > > > > Then you are suggesting to fix make clean? Those files were not left with purpose? > > What an shame :((( > make clean cleans most of it. make distclean clears everything Cheers, Deepak From omajid at redhat.com Mon Mar 5 08:38:28 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 05 Mar 2012 11:38:28 -0500 Subject: [icedtea-web] Update .hgignore file In-Reply-To: <20120305162947.GF3103@redhat.com> References: <1330779200.1380.16.camel@localhost.localdomain> <20120305161338.GE3103@redhat.com> <4F54E979.6060309@redhat.com> <20120305162947.GF3103@redhat.com> Message-ID: <4F54EC04.9020807@redhat.com> On 03/05/2012 11:29 AM, Deepak Bhole wrote: > * Jiri Vanek [2012-03-05 11:25]: >> On 03/05/2012 05:13 PM, Deepak Bhole wrote: >>> * Thomas Meyer [2012-03-03 08:02]: >>>> diff -r f1c6e1562fcf .hgignore >>>> --- a/.hgignore Wed Feb 29 15:13:14 2012 -0500 >>>> +++ b/.hgignore Sat Mar 03 13:51:52 2012 +0100 >>>> @@ -1,4 +1,7 @@ >>>> +syntax: glob >>>> + >>> >>> [ ... ] >>> >>> Hi Thomas, >>> >>> I don't think this change should go on. I had proposed something similar >>> in the past for IcedTea and it was not pushed. Please see this thread >>> for explanation by Andrew Hughes: >>> >>> http://old.nabble.com/RFE%3A-Proposed-changes-to-.hgignore-td29290509.html >>> >> >> Then you are suggesting to fix make clean? Those files were not left with purpose? >> >> What an shame :((( >> > > make clean cleans most of it. make distclean clears everything > There is a subtle difference though: make clean removes stuff you tell it to remove while make distclean removes everything you dont tell it to keep. When adding new files, make distclean can be disastrous. Looking back at Andrew Hughes' email, stuff not removed by 'make clean' is included in .hgignore. Cheers, Omair From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 10:24:23 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 18:24:23 +0000 Subject: [Bug 867] https://bcee.snet.lu/ssogate/xlogin gives 'Array index out of range' In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=867 --- Comment #11 from thomas at m3y3r.de 2012-03-05 18:24:23 UTC --- (In reply to comment #5) > Created attachment 670 [details] > plugin-1.2pre-debug.log > > When i run your testcase using icedtea plugin 1.2pre i see a different error, I > hit an assertion inside firefox itself: > Assertion failure: rt->onOwnerThread(), at > /build/buildd/firefox-10.0.2+build1/build-tree/mozilla/js/src/jsapi.cpp:6316 > And this cause firefox to exit. > > I am not sure if this bug are actually caused by icedtea-web or if it is a bug > inside firefox. It's a icedtea-web bug and it fixed in tip by: http://icedtea.classpath.org/hg/icedtea-web/rev/cfc64f21eaf1 http://icedtea.classpath.org/hg/icedtea-web/rev/325c021b1abc Starting from version 10 firefox get's *really* picky on what thread the NSAPI functions are called on. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 10:34:12 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 18:34:12 +0000 Subject: [Bug 890] New: Regressions caused by trying to shut down the swing EDT Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=890 Bug #: 890 Summary: Regressions caused by trying to shut down the swing EDT Classification: Unclassified Product: IcedTea-Web Version: hg Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: General AssignedTo: unassigned at icedtea.classpath.org ReportedBy: omajid at redhat.com CC: unassigned at icedtea.classpath.org The changeset 6b46e55a8854 [1] which was trying to fix a bug with crossftp [2] caused a number of regressions. This patch was reverted for 1.2, but kept for 1.3. We should fix this properly for 1.3. For more information, see the following threads: http://thread.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/17482 http://thread.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/17525 [1] http://icedtea.classpath.org/hg/icedtea-web/rev/6b46e55a8854 [2] http://www.crossftp.com/crossftp.jnlp -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. You are the assignee for the bug. From jvanek at redhat.com Mon Mar 5 11:29:02 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 05 Mar 2012 20:29:02 +0100 Subject: [rfc][icedtea-web] reprducers for main class specified in manifest instead in application descriptor Message-ID: <4F5513FE.2020704@redhat.com> 2012-03-05 Jiri Vanek Added test for main-class in manifest for jnlp * Makefile.am: (prepare-reproducers.stamp) fixed manifest handling. Till now was manifest copied as any other non java file, and so was rewritten by jar tool * tests/jnlp_tests/simple/ManifestedJar2/srcs: secondary jar file which should have manifest and so should help ManifestedJar1 with testing * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: manifest for ManifestedJar2.jar * tests/jnlp_tests/simple/ManifestedJar1/srcs: main testing jar * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: manifest for ManifestedJar1.jar * tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: testing class for this reproducers * tests/jnlp_tests/simple/ManifestedJar1/resources/: six reproducers jnlps Currently I'm testing: * if two jars with manifest specified, none is main and no main class, then first one is loaded * if one jar with manifest, is not main, and no main class then is lunched * if one jar with manifest, but not marked as main and no main class then is lunched * if one jar with manifest, marked as main and no main class then is lunched * Two jars, both with manifest, First is main, but specified mainclass belongs to second one, then second one should be lunched * Two jars, both with manifest, seconds is main, no mainclass, then the one marked as main is lunched Any idea for more (meaningfull :) ) combinations? (even as another patch...) Best regards, J -------------- next part -------------- A non-text attachment was scrubbed... Name: MainClassInManifestTest.diff Type: text/x-patch Size: 17070 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120305/c0e83c0e/MainClassInManifestTest.diff From dbhole at icedtea.classpath.org Mon Mar 5 12:07:26 2012 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Mon, 05 Mar 2012 20:07:26 +0000 Subject: /hg/release/icedtea-web-1.2: 4 new changesets Message-ID: changeset 89a1e512f12b in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=89a1e512f12b author: Deepak Bhole date: Mon Mar 05 12:03:38 2012 -0500 Backout changeset 6b46e55a8854 that was causing regressions changeset 58c02a3ace5d in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=58c02a3ace5d author: Deepak Bhole date: Mon Mar 05 12:04:34 2012 -0500 Prepare for 1.2 changeset fd7bcee7c8e9 in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=fd7bcee7c8e9 author: Deepak Bhole date: Mon Mar 05 12:05:28 2012 -0500 Added tag icedtea-web-1.2 for changeset 58c02a3ace5d changeset 55f1c09a5c5a in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=55f1c09a5c5a author: Deepak Bhole date: Mon Mar 05 12:05:41 2012 -0500 Prepare for 1.2.1 diffstat: .hgtags | 1 + ChangeLog | 22 ++++ NEWS | 4 +- configure.ac | 2 +- netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java | 58 ++++------ 5 files changed, 51 insertions(+), 36 deletions(-) diffs (154 lines): diff -r c93ef2cc3535 -r 55f1c09a5c5a .hgtags --- a/.hgtags Wed Feb 29 13:56:57 2012 -0500 +++ b/.hgtags Mon Mar 05 12:05:41 2012 -0500 @@ -1,2 +1,3 @@ 692d7e5b31039156aff1600fd7f5034fead2f258 icedtea-web-1.0-branchpoint b605505179459c9f2119e4dfde999fc6300e4c87 icedtea-web-1.1-branchpoint +58c02a3ace5dd11edc900d869b7c69186c54101d icedtea-web-1.2 diff -r c93ef2cc3535 -r 55f1c09a5c5a ChangeLog --- a/ChangeLog Wed Feb 29 13:56:57 2012 -0500 +++ b/ChangeLog Mon Mar 05 12:05:41 2012 -0500 @@ -1,3 +1,25 @@ +2012-03-05 Deepak Bhole + + * configure.ac: Prepare for 1.2.1 + * NEWS: Same. + +2012-03-05 Deepak Bhole + + * configure.ac: Prepare for 1.2 + * NEWS: Same. + +2012-03-05 Deepak Bhole + + Backout changeset 6b46e55a8854 that was causing regressions + + 2011-06-10 Denis Lila + * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java: + (frameMutex): New mutex to synchronize accesses to "frame". + (getListener): Make almost all of it synchronized on frameMutex. + (disposeListener): Sync hider's body around frameMutex and call + dispose on the frame so that the awt threads die when they should. + (addProgressPanel): Sync "frame" usage. + 2012-02-29 Deepak Bhole * netx/net/sourceforge/jnlp/security/CertificateUtils.java diff -r c93ef2cc3535 -r 55f1c09a5c5a NEWS --- a/NEWS Wed Feb 29 13:56:57 2012 -0500 +++ b/NEWS Mon Mar 05 12:05:41 2012 -0500 @@ -8,7 +8,9 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.2 (2011-XX-XX): +New in release 1.2.1 (2012-XX-XX): + +New in release 1.2 (2012-03-05): * Security updates: - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation diff -r c93ef2cc3535 -r 55f1c09a5c5a configure.ac --- a/configure.ac Wed Feb 29 13:56:57 2012 -0500 +++ b/configure.ac Mon Mar 05 12:05:41 2012 -0500 @@ -1,4 +1,4 @@ -AC_INIT([icedtea-web],[1.2pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) +AC_INIT([icedtea-web],[1.2.1],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile netx.manifest]) diff -r c93ef2cc3535 -r 55f1c09a5c5a netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Wed Feb 29 13:56:57 2012 -0500 +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Mon Mar 05 12:05:41 2012 -0500 @@ -57,7 +57,6 @@ /** the display window */ private static JFrame frame; - private static final Object frameMutex = new Object(); /** shared constraint */ static GridBagConstraints vertical; @@ -98,32 +97,30 @@ public DownloadServiceListener getListener(ApplicationInstance app, String downloadName, URL resources[]) { DownloadPanel result = new DownloadPanel(downloadName); - synchronized (frameMutex) { - if (frame == null) { - frame = new JFrame(downloading + "..."); - frame.getContentPane().setLayout(new GridBagLayout()); - } + if (frame == null) { + frame = new JFrame(downloading + "..."); + frame.getContentPane().setLayout(new GridBagLayout()); + } - if (resources != null) - for (int i = 0; i < resources.length; i++) - result.addProgressPanel(resources[i], null); + if (resources != null) + for (int i = 0; i < resources.length; i++) + result.addProgressPanel(resources[i], null); - frame.getContentPane().add(result, vertical); - frame.pack(); + frame.getContentPane().add(result, vertical); + frame.pack(); - if (!frame.isVisible()) { - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); - Dimension screen = new Dimension(screenSize.width - insets.left, - screenSize.height - insets.top); - frame.setLocation(screen.width - frame.getWidth(), - screen.height - frame.getHeight()); - } + if (!frame.isVisible()) { + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); + Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); + Dimension screen = new Dimension(screenSize.width - insets.left, + screenSize.height - insets.top); + frame.setLocation(screen.width - frame.getWidth(), + screen.height - frame.getHeight()); + } - frame.setVisible(true); + frame.setVisible(true); - return result; - } + return result; } /** @@ -137,16 +134,11 @@ ActionListener hider = new ActionListener() { public void actionPerformed(ActionEvent evt) { - synchronized(frameMutex) { - frame.getContentPane().remove((DownloadPanel) listener); - frame.pack(); + if (frame.getContentPane().getComponentCount() == 1) + frame.setVisible(false); - if (frame.getContentPane().getComponentCount() == 0) { - frame.setVisible(false); - frame.dispose(); - frame = null; - } - } + frame.getContentPane().remove((DownloadPanel) listener); + frame.pack(); } }; @@ -194,9 +186,7 @@ ProgressPanel panel = new ProgressPanel(url, version); add(panel, verticalIndent); - synchronized (frameMutex) { - frame.pack(); - } + frame.pack(); urls.add(url); panels.add(panel); From ahughes at redhat.com Mon Mar 5 12:14:50 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Mon, 05 Mar 2012 15:14:50 -0500 (EST) Subject: Reviewer needed: fixed typos in JDK7 forest (ScriptEngineManager class) In-Reply-To: <4F51007D.8030600@redhat.com> Message-ID: ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> Andrew Hughes wrote: > >>> ----- Original Message ----- > >>>> ----- Original Message ----- > >>>>> Hi, > >>>>> > >>>>> I'd like to fix JavaDoc typos in a class ScriptEngineManager. > >>>>> Patch > >>>>> applicable > >>>>> to jdk7 forest is stored in an attachment. > >>>>> > >>>>> Can anybody please review this change? > >>>>> > >>>>> Thank you in advance. > >>>>> > >>>>> Cheers, > >>>>> Pavel > >>>>> > >>>>> (fix for upstream will follow). > >>>>> > >>>>> > >>>>> > >>>>> [Text Documents:hg_diff.patch] > >>>>> > >>>> Such a change to public javax.* classes needs to go upstream > >>>> first. > >>>> Although > >>>> the changes are minor, this alters the API specification. > >>>> -- > >>>> Andrew :) > >>>> > >>>> Free Java Software Engineer > >>>> Red Hat, Inc. (http://www.redhat.com) > >>>> > >>>> PGP Key: 248BDC07 (https://keys.indymedia.org/) > >>>> Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > >>>> > >>>> > >>> I see this was reviewed and pushed to 8: > >>> > >>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-February/009380.html > >>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-March/009422.html > >>> > >>> Let's see if it makes it to 7u. If it does, we can add it to > >>> IcedTea7 too, ahead of u6. > >> FYI: now this change is in 7u(6) too. > >> > >> Pavel > >> > > > > What was the reason for not posting to u4? This doesn't seem to be > > have been discussed publicly. > > If it has, please point me to a link. > > I received personal mail from Edvard Wendeling saying "JDK 7u4 is now > ramping down and the inflow of bug fixes is more > restricted...." > > Given this patch just changes JavaDoc and does not fix any real bug, > I personally don't feel > the need to hurry and push it to u4. > Ok. I think this is fine for the forest, which will put it in IcedTea's ~u4 anyway. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From dbhole at redhat.com Mon Mar 5 12:17:51 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 5 Mar 2012 15:17:51 -0500 Subject: IcedTea-Web 1.2 released! Message-ID: <20120305201751.GC24564@redhat.com> IcedTea-Web 1.2 is finally out! My apologies for the delayed release. We found some regressions when testing the final candidate and decided to hold off until everything was fixed. New features and important bug fixes include: New features: Signed JNLP support Support for client authentication certificates Cache size enforcement now supported via itweb-settings Applet parameter passing through JNLP files now supported Better icons for access warning dialog Security Dialog UI revamped to make it look less threatening when appropriate Bug fixes: Common: Plug-in/Web Start can now handle corrupted cache PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. Plug-in: PR852: Classloader not being flushed after last applet from a site is closed PR820: Firefox 10 and above no longer crashes when LiveConnect is heavily used MIME descriptions for Java 7 are now defined Build against mozilla-plugin.pc is now supported Web Start: PR618: Can?t install OpenDJ, JavaWebStart fails with Input stream is null error. PR766: javaws fails to parse a node that contains CDATA PR765: JNLP file with all resource jars marked as ?lazy? fails to validate signature and stops the launch of application PR808: javaws is unable to start when missing jars are enumerated before main jar Close the splashscreen in case of error (not just successful launch). Full notes with bug ids are available in the NEWS file: http://icedtea.classpath.org/hg/release/icedtea-web-1.2/file/58c02a3ace5d/NEWS Available for download here: http://icedtea.classpath.org/download/source/icedtea-web-1.2.tar.gz Build instructions are here: http://icedtea.classpath.org/wiki/IcedTea-Web#Building_IcedTea-Web SHA256 sum: 3f8d22b655df207409dd3451ba02907f61a12ac051e4df4d44bb5ed47c4f778d icedtea-web-1.2.tar.gz Thanks to everyone who helped with this release: Danesh Dadachanji Lars Herschke Andrew Hughes Matthias Klose Denis Lila Omair Majid Thomas Meyer Saad Mohammad Andrew Su Jiri Vanek From a.radke at arcor.de Mon Mar 5 12:53:14 2012 From: a.radke at arcor.de (Andreas Radke) Date: Mon, 5 Mar 2012 21:53:14 +0100 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120305201751.GC24564@redhat.com> References: <20120305201751.GC24564@redhat.com> Message-ID: <20120305215314.63c71934@laptop64.home> Preparing packages for ArchLinux I run into this test issue with OpenJDK6: Passed: weekdayRange(TUE) Passed: weekdayRange(SUN) FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 31, JAN, 1, JAN) Expected 'true' but got 'false' FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 30, JAN, 1, JAN) Expected 'true' but got 'false' FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 30, JAN, 111, 1, JAN, 111) Expected 'true' but got 'false' FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 1, JAN, 111, 1, FEB, 112) Expected 'false' but got 'true' ... FAILED: isDateInRange(Thu Dec 01 2011 01:11:11 GMT-0000 (GMT), 31, DEC, 111, 2, DEC, 111) Expected 'true' but got 'false' Test results: passed: 220; failed: 64; Any idea? With Java 7 used I get this configure error: checking if sun.awt.X11.XEmbeddedFrame is available... no configure: error: sun.awt.X11.XEmbeddedFrame not found. ==> ERROR: A failure occurred in build(). What am I missing in our OpenJDK7 build? Thanks. -Andy From dbhole at redhat.com Mon Mar 5 13:10:23 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 5 Mar 2012 16:10:23 -0500 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120305215314.63c71934@laptop64.home> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> Message-ID: <20120305211023.GD24564@redhat.com> * Andreas Radke [2012-03-05 15:53]: > Preparing packages for ArchLinux I run into this test issue with > OpenJDK6: > > Passed: weekdayRange(TUE) > Passed: weekdayRange(SUN) > FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 31, JAN, 1, JAN) > Expected 'true' but got 'false' > FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 30, JAN, 1, JAN) > Expected 'true' but got 'false' > FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 30, JAN, 111, 1, JAN, 111) > Expected 'true' but got 'false' > FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 1, JAN, 111, 1, FEB, 112) > Expected 'false' but got 'true' > ... > FAILED: isDateInRange(Thu Dec 01 2011 01:11:11 GMT-0000 (GMT), 31, DEC, 111, 2, DEC, 111) > Expected 'true' but got 'false' > Test results: passed: 220; failed: 64; > The tests are still under development afaik and I haven't seen any flags raised by Jiri who wrote them initially despite the failures (I see them too) -- adding Jiri to cc. Jiri, can you please comment? > > Any idea? > > With Java 7 used I get this configure error: > > checking if sun.awt.X11.XEmbeddedFrame is available... no > configure: error: sun.awt.X11.XEmbeddedFrame not found. > ==> ERROR: A failure occurred in build(). > > What am I missing in our OpenJDK7 build? > Are you building against IcedTea forest based OpenJDK or upstream OpenJDK? If latter, you need this patch: http://icedtea.classpath.org/hg/icedtea7-forest/jdk/rev/e7fc51780596 Cheers, Deepak From dbhole at redhat.com Mon Mar 5 13:15:32 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 5 Mar 2012 16:15:32 -0500 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120305211023.GD24564@redhat.com> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> <20120305211023.GD24564@redhat.com> Message-ID: <20120305211532.GF24564@redhat.com> * Deepak Bhole [2012-03-05 16:11]: > * Andreas Radke [2012-03-05 15:53]: > > Preparing packages for ArchLinux I run into this test issue with > > OpenJDK6: > > > > Passed: weekdayRange(TUE) > > Passed: weekdayRange(SUN) > > FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 31, JAN, 1, JAN) > > Expected 'true' but got 'false' > > FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 30, JAN, 1, JAN) > > Expected 'true' but got 'false' > > FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 30, JAN, 111, 1, JAN, 111) > > Expected 'true' but got 'false' > > FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 1, JAN, 111, 1, FEB, 112) > > Expected 'false' but got 'true' > > ... > > FAILED: isDateInRange(Thu Dec 01 2011 01:11:11 GMT-0000 (GMT), 31, DEC, 111, 2, DEC, 111) > > Expected 'true' but got 'false' > > Test results: passed: 220; failed: 64; > > > > The tests are still under development afaik and I haven't seen any flags > raised by Jiri who wrote them initially despite the failures (I see them > too) -- adding Jiri to cc. Jiri, can you please comment? > > > > > Any idea? > > > > With Java 7 used I get this configure error: > > > > checking if sun.awt.X11.XEmbeddedFrame is available... no > > configure: error: sun.awt.X11.XEmbeddedFrame not found. > > ==> ERROR: A failure occurred in build(). > > Hmm, sorry. My suggestion will not solve the above. XEmbeddedFrame should be part of rt.jar with any OpenJDK build. Is it not in your rt.jar? Deepak From dbhole at icedtea.classpath.org Mon Mar 5 13:38:09 2012 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Mon, 05 Mar 2012 21:38:09 +0000 Subject: /hg/release/icedtea-web-1.2: Added missing 'pre' prefix to versi... Message-ID: changeset aac62fe468b1 in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=aac62fe468b1 author: Deepak Bhole date: Mon Mar 05 16:38:04 2012 -0500 Added missing 'pre' prefix to version in configure.ac diffstat: configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (9 lines): diff -r 55f1c09a5c5a -r aac62fe468b1 configure.ac --- a/configure.ac Mon Mar 05 12:05:41 2012 -0500 +++ b/configure.ac Mon Mar 05 16:38:04 2012 -0500 @@ -1,4 +1,4 @@ -AC_INIT([icedtea-web],[1.2.1],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) +AC_INIT([icedtea-web],[1.2.1pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile netx.manifest]) From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 13:43:49 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 21:43:49 +0000 Subject: [Bug 820] Firefox 10 and above crashes when LiveConnect is heavily used In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=820 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|IcedTea-Web 1.1.3 crashing |Firefox 10 and above |Firefox when loading Citrix |crashes when LiveConnect is |XenApp |heavily used -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Mar 5 13:44:36 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 05 Mar 2012 21:44:36 +0000 Subject: [Bug 838] IcedTea-Web plugin crashes with chrome browser when javascript is executed In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=838 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|IcedTeam plugin crashes |IcedTea-Web plugin crashes |with chrome browser when |with chrome browser when |javascript is executed |javascript is executed -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From dbhole at icedtea.classpath.org Mon Mar 5 13:45:18 2012 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Mon, 05 Mar 2012 21:45:18 +0000 Subject: /hg/release/icedtea-web-1.1: 3 new changesets Message-ID: changeset 4303e215188f in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=4303e215188f author: Deepak Bhole date: Mon Mar 05 16:36:26 2012 -0500 Prepare for 1.1.5 changeset ab7e8272d45d in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=ab7e8272d45d author: Deepak Bhole date: Mon Mar 05 16:36:33 2012 -0500 Added tag icedtea-web-1.1.5 for changeset 4303e215188f changeset 25af765297c6 in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=25af765297c6 author: Deepak Bhole date: Mon Mar 05 16:39:41 2012 -0500 Prepare for 1.1.6 diffstat: .hgtags | 1 + ChangeLog | 10 ++++++++++ NEWS | 4 +++- configure.ac | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) diffs (48 lines): diff -r 343ad2a1e216 -r 25af765297c6 .hgtags --- a/.hgtags Tue Feb 28 10:05:57 2012 -0500 +++ b/.hgtags Mon Mar 05 16:39:41 2012 -0500 @@ -4,3 +4,4 @@ 4443143761dbd3294bfd0d9096121ca55c035d1b icedtea-web-1.1.2 3352c0b0d9bb990ec4dd89baadc2ef11bc8eed28 icedtea-web-1.1.3 77cbf8633a7c63046eb70fbe89d594a8c7b116af icedtea-web-1.1.4 +4303e215188f1ae6ffd6ac639ea71b569c2ac7fb icedtea-web-1.1.5 diff -r 343ad2a1e216 -r 25af765297c6 ChangeLog --- a/ChangeLog Tue Feb 28 10:05:57 2012 -0500 +++ b/ChangeLog Mon Mar 05 16:39:41 2012 -0500 @@ -1,3 +1,13 @@ +2012-03-05 Deepak Bhole + + * configure.ac: Prepare for 1.1.6 + * NEWS: Same. + +2012-03-05 Deepak Bhole + + * configure.ac: Prepare for 1.1.5 + * NEWS: Same. + 2012-02-28 Deepak Bhole * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc diff -r 343ad2a1e216 -r 25af765297c6 NEWS --- a/NEWS Tue Feb 28 10:05:57 2012 -0500 +++ b/NEWS Mon Mar 05 16:39:41 2012 -0500 @@ -8,7 +8,9 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.1.5 (2011-XX-XX): +New in release 1.1.6 (2012-XX-XX): + +New in release 1.1.5 (2012-03-05): * Plugin - RH586194: Unable to connect to connect with Juniper VPN client - PR820: IcedTea-Web 1.1.3 crashing Firefox when loading Citrix XenApp diff -r 343ad2a1e216 -r 25af765297c6 configure.ac --- a/configure.ac Tue Feb 28 10:05:57 2012 -0500 +++ b/configure.ac Mon Mar 05 16:39:41 2012 -0500 @@ -1,4 +1,4 @@ -AC_INIT([icedtea-web],[1.1.5pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) +AC_INIT([icedtea-web],[1.1.6pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile netx.manifest]) From dbhole at redhat.com Mon Mar 5 13:49:21 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 5 Mar 2012 16:49:21 -0500 Subject: IcedTea-Web 1.1.5 released! Message-ID: <20120305214921.GJ24564@redhat.com> IcedTea-Web 1.1.5 is now out. It contains a couple of important bug fixes for those who wish to remain on the 1.1 line: Fixes: PR820: Firefox 10 and above crashes when LiveConnect is heavily used PR838: IcedTea-Web plugin crashes with chrome browser when javascript is executed Full notes with bug ids are available in the NEWS file: http://icedtea.classpath.org/hg/release/icedtea-web-1.1/file/ab7e8272d45d/NEWS Available for download here: http://icedtea.classpath.org/download/source/icedtea-web-1.1.5.tar.gz Build instructions are here: http://icedtea.classpath.org/wiki/IcedTea-Web#Building_IcedTea-Web SHA256 sum: ab5c34a9dc6bff48baf1f1d1a34bf54bfb954ad93ee9e7e44d642fa991bcc919 icedtea-web-1.1.5.tar.gz Thanks to everyone who helped with this release: Matthias Klose Denis Lila Omair Majid Thomas Meyer Jiri Vanek From dbhole at redhat.com Mon Mar 5 14:16:25 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 5 Mar 2012 17:16:25 -0500 Subject: [icedtea-web] RFC: Backing out patch causing regressions In-Reply-To: <4F54E140.60700@redhat.com> References: <20120305153702.GD3103@redhat.com> <4F54E140.60700@redhat.com> Message-ID: <20120305221625.GK24564@redhat.com> * Omair Majid [2012-03-05 10:52]: > On 03/05/2012 10:37 AM, Deepak Bhole wrote: > > Hi, > > > > http://icedtea.classpath.org/hg/icedtea-web/rev/6b46e55a8854 > > > > Is causing regressions and holding back release of 1.2. Omair has taken > > a deep look at the patch and concluded that backing out is the best > > option as fixing requires a significant change. > > > > I am in agreement -- posting here for the record. > > > > OK for back-out from 1.2? > > > > Given the regressions caused by this patch, I am okay with backing this > out for now. > > I have two comments on this, though: > > 1. Synchronization of Swing code. This looks rather wrong. If all swing > calls are happening on the EDT, there is nothing to synchronize. If > calls are not happening on the EDT, then there is a deeper problem that > we should solve instead. > > 2. The change from JFrame.setVisible(false) to JFrame.dispose() is > causing the EDT to shutdown - which is what we want. The trouble is that > when it starts back up, a lot of things can go wrong. There are two > issues I am aware of. One is that the AppContext associated with the EDT > has to be set properly (it's currently not being set, see the thread > starting at [1]). The other is that we will try to query the ThreadGroup > associated with the jnlp applets after they have stop()ed which causes > an IllegalStateException (an assertion, really) in icedtea-web code. > > I think we can fix both of these issues properly in the long term. > Thanks! Pushed. Deepak > Thanks, > Omair > > [1] > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017500.html From ddadacha at redhat.com Mon Mar 5 14:23:57 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 05 Mar 2012 17:23:57 -0500 Subject: [rfc][icedtea-web] extended reflection tests In-Reply-To: <4F54B7A6.70102@redhat.com> References: <4F54B7A6.70102@redhat.com> Message-ID: <4F553CFD.3040908@redhat.com> Hi Jiri, Thanks for the tests! On 05/03/12 07:55 AM, Jiri Vanek wrote: > Hi! Few more test to reflection > > What I'm surprised is, that unsigned application can use reflection at > all. I tough they can not.... I thought so too.. > This text is expecting them unsigned ones using reflection as correct as > it is current behaviour. But feel free to correct me if unsigned > applications should have reflection forbidden. I'll let someone who knows more comment on this. Until then, I have some comments on the patch below. > > 2012-03-05 Jiri Vanek > > Improved reflection test: > * > /home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: > > This testcase was extended for three more unsigned reflection tries > and four signed > */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: > now accepting class to be findByName as argument. Four new jnlp > files in > signed a four in simple are then passing those argument > */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: > */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: > */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: > */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: > */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: > removed Don't think we need your full path of "/home/jvanek/hg/icedtea-web/" ;) Please can you add to all the jnlp files. It'd work right now but once the changeset I have in review is accepted, it'll start failing to run javaws altogether. I believe you also need to add the copyright header for many of the files. > + private String[] badExceptions = { > + "accessClassInPackage.javax.jnlp.ServiceManager)", > + "accessClassInPackage.AccessClassInPackage)", > + "accessClassInPackage.net.sourceforge.jnlp)", > + "accessClassInPackage.sun.security.internal.spec)" [snip] > + private void testShouldFail(ServerAccess.ProcessResult pr, String s) { > + String c = "java.security.AccessControlException: access denied (java.lang.RuntimePermission " + s; > + Assert.assertTrue("stderr should contains `" + c + "`, but didn't ", pr.stderr.contains(c)); > + } > + private void testShouldNOTFail(ServerAccess.ProcessResult pr, String s) { > + String c = "java.security.AccessControlException: access denied (java.lang.RuntimePermission " + s; > + Assert.assertFalse("stderr should NOT contains `" + c + "`, but did ", pr.stderr.contains(c)); > + } I noticed testShouldFail asserts were always failing when the methods were being called. I believe you need to add double quotes around java.lang.RuntimePermission and s in order for contains() to pass. stderr.log outputted: [...] access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.security.internal.spec") Change the String c's to (\"java.lang.RuntimePermission\" and wrap each element of badExceptions similarly, that should take care of the problem. Once the above's sorted out, this looks good to me for pushing. Regards, Danesh From a.radke at arcor.de Mon Mar 5 22:04:23 2012 From: a.radke at arcor.de (Andreas Radke) Date: Tue, 6 Mar 2012 07:04:23 +0100 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120305211532.GF24564@redhat.com> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> <20120305211023.GD24564@redhat.com> <20120305211532.GF24564@redhat.com> Message-ID: <20120306070423.73714cb0@workstation64.home> Am Mon, 5 Mar 2012 16:15:32 -0500 schrieb Deepak Bhole : > > > With Java 7 used I get this configure error: > > > > > > checking if sun.awt.X11.XEmbeddedFrame is available... no > > > configure: error: sun.awt.X11.XEmbeddedFrame not found. > > > ==> ERROR: A failure occurred in build(). > > > > > Hmm, sorry. My suggestion will not solve the above. > > XEmbeddedFrame should be part of rt.jar with any OpenJDK build. Is it > not in your rt.jar? > > Deepak > [andyrtr at workstation64 tmp]$ grepjar XEmbeddedFrame /usr/lib/jvm/java-7-openjdk/jre/lib/rt.jar sun/awt/X11/XEmbedCanvasPeer.class: Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XEmbedCanvasPeer.class:sun/awt/X11/XEmbeddedFramePeer sun/awt/X11/XEmbedClientHelper$1.class:B(Lsun/awt/X11/XEmbedClientHelper;)Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XEmbedClientHelper$1.class:sun/awt/X11/XEmbeddedFramePeer sun/awt/X11/XEmbedClientHelper$2.class:B(Lsun/awt/X11/XEmbedClientHelper;)Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XEmbedClientHelper$2.class:sun/awt/X11/XEmbeddedFramePeer sun/awt/X11/XEmbedClientHelper.class: Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XEmbedClientHelper.class:#(Lsun/awt/X11/XEmbeddedFramePeer;)V sun/awt/X11/XEmbedClientHelper.class:B(Lsun/awt/X11/XEmbedClientHelper;)Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XEmbedClientHelper.class:sun/awt/X11/XEmbeddedFramePeer sun/awt/X11/XEmbeddedFrame.class:Lsun/awt/X11/XEmbeddedFrame; sun/awt/X11/XEmbeddedFrame.class: Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XEmbeddedFrame.class:XEmbeddedFrame.java sun/awt/X11/XEmbeddedFrame.class:sun/awt/X11/XEmbeddedFramePeer sun/awt/X11/XEmbeddedFrame.class:sun/awt/X11/XEmbeddedFrame sun/awt/X11/XEmbeddedFrame.class:>(Lsun/awt/X11/XEmbeddedFrame;)Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XTrayIconPeer$XTrayIconEmbeddedFrame.class:sun/awt/X11/XEmbeddedFrame sun/awt/X11/XTrayIconPeer.class:sun/awt/X11/XEmbeddedFramePeer sun/awt/X11/XlibUtil.class:sun/awt/X11/XEmbeddedFramePeer sun/awt/X11/XEmbeddedFramePeer.class: Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XEmbeddedFramePeer.class:XEmbeddedFramePeer.java sun/awt/X11/XEmbeddedFramePeer.class:sun/awt/X11/XEmbeddedFrame sun/awt/X11/XEmbeddedFramePeer.class:sun/awt/X11/XEmbeddedFramePeer sun/awt/X11/XEmbeddedFramePeer.class:%sun.awt.X11.xembed.XEmbeddedFramePeer sun/awt/X11/XEmbeddedFramePeer.class:#(Lsun/awt/X11/XEmbeddedFramePeer;)V sun/awt/X11/XDropTargetRegistry.class:sun/awt/X11/XEmbeddedFramePeer sun/awt/X11/XToolkit.class:>(Lsun/awt/X11/XEmbeddedFrame;)Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XToolkit.class:Lsun/awt/X11/XEmbeddedFrame; sun/awt/X11/XToolkit.class: Lsun/awt/X11/XEmbeddedFramePeer; sun/awt/X11/XToolkit.class:sun/awt/X11/XEmbeddedFramePeer [andyrtr at workstation64 tmp]$ java -version java version "1.7.0_03-icedtea" OpenJDK Runtime Environment (IcedTea7 2.1) (ArchLinux build 7.b147_2.1-1-x86_64) OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode) I could build icedtea-web well with IcedTea 2.0 based JRE/JDK here. Maybe 2.1 introduced some regression? -Andy From jvanek at redhat.com Tue Mar 6 00:18:26 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 06 Mar 2012 09:18:26 +0100 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120305211023.GD24564@redhat.com> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> <20120305211023.GD24564@redhat.com> Message-ID: <4F55C852.2080104@redhat.com> On 03/05/2012 10:10 PM, Deepak Bhole wrote: > * Andreas Radke [2012-03-05 15:53]: >> Preparing packages for ArchLinux I run into this test issue with >> OpenJDK6: >> >> Passed: weekdayRange(TUE) >> Passed: weekdayRange(SUN) >> FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 31, JAN, 1, JAN) >> Expected 'true' but got 'false' >> FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 30, JAN, 1, JAN) >> Expected 'true' but got 'false' >> FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 30, JAN, 111, 1, JAN, 111) >> Expected 'true' but got 'false' >> FAILED: isDateInRange(Mon Jan 31 2011 03:33:33 GMT-0000 (GMT), 1, JAN, 111, 1, FEB, 112) >> Expected 'false' but got 'true' >> ... >> FAILED: isDateInRange(Thu Dec 01 2011 01:11:11 GMT-0000 (GMT), 31, DEC, 111, 2, DEC, 111) >> Expected 'true' but got 'false' >> Test results: passed: 220; failed: 64; >> > > The tests are still under development afaik and I haven't seen any flags > raised by Jiri who wrote them initially despite the failures (I see them > too) -- adding Jiri to cc. Jiri, can you please comment? This is known issue. There are tests which are always falling during change of month. In last day of month some of them fails, in first day of month some of them fails, and some fails in both of those days. I believe it is error in tests themselves, rather then in code. There is several tests testing just this dates (so they are still failing). From the times in tests 3:33:333 and 1:11:11 I guess those are exactly the tests written for breaking of months, so they SHOULD fail. Enough? Best regards to Arch J. > >> >> Any idea? >> >> With Java 7 used I get this configure error: >> >> checking if sun.awt.X11.XEmbeddedFrame is available... no >> configure: error: sun.awt.X11.XEmbeddedFrame not found. >> ==> ERROR: A failure occurred in build(). >> >> What am I missing in our OpenJDK7 build? >> > > Are you building against IcedTea forest based OpenJDK or upstream > OpenJDK? > > If latter, you need this patch: > http://icedtea.classpath.org/hg/icedtea7-forest/jdk/rev/e7fc51780596 > > Cheers, > Deepak From ptisnovs at icedtea.classpath.org Tue Mar 6 01:58:07 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 06 Mar 2012 09:58:07 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/ClippingCircleByConve... Message-ID: changeset 818bef11d62c in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=818bef11d62c author: Pavel Tisnovsky date: Tue Mar 06 11:00:30 2012 +0100 * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: Added plenty of new tests. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java | 374 ++++++++++ 2 files changed, 379 insertions(+), 0 deletions(-) diffs (396 lines): diff -r b81083bcdff3 -r 818bef11d62c ChangeLog --- a/ChangeLog Mon Mar 05 12:10:42 2012 +0100 +++ b/ChangeLog Tue Mar 06 11:00:30 2012 +0100 @@ -1,3 +1,8 @@ +2012-03-06 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: + Added plenty of new tests. + 2012-03-05 Pavel Tisnovsky * src/org/gfxtest/framework/CommonClippingOperations.java: diff -r b81083bcdff3 -r 818bef11d62c src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java Mon Mar 05 12:10:42 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java Tue Mar 06 11:00:30 2012 +0100 @@ -574,6 +574,380 @@ } /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using horizontal gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeHorizontalGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set horizontal gradient paint + CommonRenderingStyles.setHorizontalGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using vertical gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeVerticalGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set vertical gradient paint + CommonRenderingStyles.setVerticalGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using diagonal gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set diagonal gradient paint + CommonRenderingStyles.setDiagonalGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using radial gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRadialGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set radial gradient paint + CommonRenderingStyles.setRadialGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeCheckerTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingCheckerTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalCheckerTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingDiagonalCheckerTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeGridTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingGridTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalGridTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingDiagonalGridTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeColorDotsTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingColorDotsTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeHorizontalStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingHorizontalStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeVerticalStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingVerticalStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingDiagonalStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeHorizontalColorStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingHorizontalColorStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeVerticalColorStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingVerticalColorStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRGB1TexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRGB2TexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingRGBTexture2(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRGB3TexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingRGBTexture3(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args From jvanek at redhat.com Tue Mar 6 02:41:55 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 06 Mar 2012 11:41:55 +0100 Subject: [rfc][icedtea-web] extended reflection tests In-Reply-To: <4F553CFD.3040908@redhat.com> References: <4F54B7A6.70102@redhat.com> <4F553CFD.3040908@redhat.com> Message-ID: <4F55E9F3.2030908@redhat.com> On 03/05/2012 11:23 PM, Danesh Dadachanji wrote: > Hi Jiri, > > Thanks for the tests! > > On 05/03/12 07:55 AM, Jiri Vanek wrote: >> Hi! Few more test to reflection >> >> What I'm surprised is, that unsigned application can use reflection at >> all. I tough they can not.... > > I thought so too.. Pavel have thoughts taht it should be correct..adding him to cc for case I'm lying. Also Omair cced as he had something to do with reflection too.. > >> This text is expecting them unsigned ones using reflection as correct as >> it is current behaviour. But feel free to correct me if unsigned >> applications should have reflection forbidden. > > I'll let someone who knows more comment on this. Until then, I have some comments on the patch below. see above > >> >> 2012-03-05 Jiri Vanek >> >> Improved reflection test: >> * >> /home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: >> >> This testcase was extended for three more unsigned reflection tries >> and four signed >> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: >> now accepting class to be findByName as argument. Four new jnlp >> files in >> signed a four in simple are then passing those argument >> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: >> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: >> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: >> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: >> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: >> removed > > Don't think we need your full path of "/home/jvanek/hg/icedtea-web/" ;) Damn, thanx for catch. > > Please can you add to all the jnlp files. It'd work right now but once the changeset I have in review is accepted, it'll start failing to run javaws altogether. Done for this case, But I'm afraid you will break more tests. Before commit of your changeset you should ensure (fix missing vendors in current tests) that no new failures appears. I will also add vendors in all current and future tests. > > I believe you also need to add the copyright header for many of the files. done. I always forgotr about jnlp files :-/ > >> + private String[] badExceptions = { >> + "accessClassInPackage.javax.jnlp.ServiceManager)", >> + "accessClassInPackage.AccessClassInPackage)", >> + "accessClassInPackage.net.sourceforge.jnlp)", >> + "accessClassInPackage.sun.security.internal.spec)" > > [snip] > >> + private void testShouldFail(ServerAccess.ProcessResult pr, String s) { >> + String c = "java.security.AccessControlException: access denied (java.lang.RuntimePermission " + s; >> + Assert.assertTrue("stderr should contains `" + c + "`, but didn't ", pr.stderr.contains(c)); >> + } >> + private void testShouldNOTFail(ServerAccess.ProcessResult pr, String s) { >> + String c = "java.security.AccessControlException: access denied (java.lang.RuntimePermission " + s; >> + Assert.assertFalse("stderr should NOT contains `" + c + "`, but did ", pr.stderr.contains(c)); >> + } > > > I noticed testShouldFail asserts were always failing when the methods were being called. I believe you need to add double quotes around java.lang.RuntimePermission and s in order for contains() to pass. > > stderr.log outputted: > [...] access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.security.internal.spec") > > Change the String c's to (\"java.lang.RuntimePermission\" and wrap each element of badExceptions similarly, that should take care of the problem. hmm.. this scares me a lot. I have changed catching from contains to match, to have more vague regex inside. But what scares me is that I have never seen this kind of exception in format you have described... Attached is my exception format (same on f14 and f16) and new patch. > > > Once the above's sorted out, this looks good to me for pushing. > > Regards, > Danesh 2012-03-06 Jiri Vanek Improved reflection test: * tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: This testcase was extended for three more unsigned reflection tries and four signed *tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: now accepting class to be findByName as argument. Four new jnlp files in signed a four in simple are then passing those argument *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: removed * tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java signed variation of AccessClassInPackage, tescase is also in AccessClassInPackage * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp -------------- next part -------------- A non-text attachment was scrubbed... Name: extendedReflectionTests.diff Type: text/x-patch Size: 33064 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120306/41b22053/extendedReflectionTests.diff -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: exceptionf16 Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120306/41b22053/exceptionf16.ksh From ahughes at redhat.com Tue Mar 6 03:00:04 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 06 Mar 2012 06:00:04 -0500 (EST) Subject: [patch/7] fix build failure with glib-2.0 2.31.x In-Reply-To: <16bf187b-c598-4ddb-a115-f95c0b94be8b@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <0e396967-888f-4e13-9ef0-f1480b188649@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > ----- Original Message ----- > > Recent glib-2.0/gtk-2.0 don't add -lgthread to the linker flags > > anymore. the > > gthread-2.0 module has to be checked explicitly (g_thread_init is > > not > > found). > > The gthread-2.0 module is available for some years, and should be > > available in > > all distros. > > > > I think it may be the other way round. 2.24.8 adds -lgthread and > that's just about the newest version (upgrading to 2.24.10 now but > I don't expect it to change). I presume it's thus actually older > versions that don't add it as the core didn't need it before. > > > Checked that a 2.1 build does succeed. > > This looks ok for HEAD. Are you asking to backport it to the > branches (2.0 and 2.1)? > > > > > Matthias > > > Ah I see 2.31 drops it; it was reported to Gentoo and the same fix posted: https://bugs.gentoo.org/show_bug.cgi?id=402481 Did you get this patch in? Thanks, -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From mark at klomp.org Tue Mar 6 03:37:51 2012 From: mark at klomp.org (Mark Wielaard) Date: Tue, 06 Mar 2012 12:37:51 +0100 Subject: autobuilders and redownloading all sources from classpath.org servers Message-ID: <1331033871.2928.35.camel@springer.wildebeest.org> Hi, If you are running an autobuilder against the sources of one of the classpath.org servers (especially icedtea.classpath.org) could you please double check that you are not unnecessarily redownloading download drops and/or whole forests when there have been no changes since the last time. The server is already over bandwidth limits and every unnecessary GB download costs us a little extra money. If you happen to operate an autobuilder on 93-38-70-169.ip69.fastwebnet.it (93.38.70.169) please contact me to see if we can setup something more efficient. I sadly had to disable downloads from this host since it was using up ~15%+ of all traffic on the server. Thanks, Mark From ahughes at redhat.com Tue Mar 6 03:43:45 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 06 Mar 2012 06:43:45 -0500 (EST) Subject: autobuilders and redownloading all sources from classpath.org servers In-Reply-To: <1331033871.2928.35.camel@springer.wildebeest.org> Message-ID: ----- Original Message ----- > Hi, > > If you are running an autobuilder against the sources of one of the > classpath.org servers (especially icedtea.classpath.org) could you > please double check that you are not unnecessarily redownloading > download drops and/or whole forests when there have been no changes > since the last time. The server is already over bandwidth limits and > every unnecessary GB download costs us a little extra money. > > If you happen to operate an autobuilder on > 93-38-70-169.ip69.fastwebnet.it (93.38.70.169) please contact me to > see > if we can setup something more efficient. I sadly had to disable > downloads from this host since it was using up ~15%+ of all traffic > on > the server. > > Thanks, > > Mark > Maybe it's worth looking at having a '--disable-downloading' option for the IcedTea build which can be used on autobuilders to make them fail instead? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From mark at klomp.org Tue Mar 6 04:28:36 2012 From: mark at klomp.org (Mark Wielaard) Date: Tue, 06 Mar 2012 13:28:36 +0100 Subject: autobuilders and redownloading all sources from classpath.org servers In-Reply-To: References: Message-ID: <1331036916.2928.40.camel@springer.wildebeest.org> On Tue, 2012-03-06 at 06:43 -0500, Andrew Hughes wrote: > Maybe it's worth looking at having a '--disable-downloading' option for > the IcedTea build which can be used on autobuilders to make them fail instead? What would that configure option do precisely? Autobuilders still need to fetch the sources don't they? All I am hoping is that they don't do it multiple times a day, even when there have been no changes since the last run, as some of them seem to do now for the whole forest and/or download/drops. Thanks, Mark From magnus.ihse.bursie at oracle.com Tue Mar 6 07:05:54 2012 From: magnus.ihse.bursie at oracle.com (Magnus Ihse Bursie) Date: Tue, 06 Mar 2012 16:05:54 +0100 Subject: Building Zero and/or Shark Message-ID: <4F5627D2.6030209@oracle.com> An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120306/6083dcf1/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: oracle_sig_logo.gif Type: image/gif Size: 658 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120306/6083dcf1/oracle_sig_logo.gif From aph at redhat.com Tue Mar 6 07:12:13 2012 From: aph at redhat.com (Andrew Haley) Date: Tue, 06 Mar 2012 15:12:13 +0000 Subject: Building Zero and/or Shark In-Reply-To: <4F5627D2.6030209@oracle.com> References: <4F5627D2.6030209@oracle.com> Message-ID: <4F56294D.1020908@redhat.com> On 03/06/2012 03:05 PM, Magnus Ihse Bursie wrote: > The build-infra team (we who are working on creating a new, faster build system > -- see e.g. > http://mail.openjdk.java.net/pipermail/build-dev/2011-May/004765.html) has > recently tried building Zero and Shark on a recent JDK8, both directly on > OpenJDK and using IcedTea. > > This has not been successful, resulting in a variety of errors. > > Does anybody know if Zero and/or Shark is "supposed to" be currently buildable > in JDK8? Has anyone else build it successfully? No. We're working on it. The biggest problem is invokedynamic support, which we're having trouble getting to work on Zero. As I understand it, ricochet frames are going to go away with a future release, which will make life much easier for us. > We'd like to make sure building Zero and Shark is kept viable when we modify the > build system; however if the sources does not compile then it's hard to check > that we don't break the build system, and unfortunately we don't have the > resources to fix compilation problems in Zero and Shark. Understood. Once we have all the fixes in, we'll get back to you. Andrew. From dbhole at redhat.com Tue Mar 6 08:58:37 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 6 Mar 2012 11:58:37 -0500 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120306070423.73714cb0@workstation64.home> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> <20120305211023.GD24564@redhat.com> <20120305211532.GF24564@redhat.com> <20120306070423.73714cb0@workstation64.home> Message-ID: <20120306165836.GH27555@redhat.com> * Andreas Radke [2012-03-06 01:04]: > Am Mon, 5 Mar 2012 16:15:32 -0500 > schrieb Deepak Bhole : > > > > > With Java 7 used I get this configure error: > > > > > > > > checking if sun.awt.X11.XEmbeddedFrame is available... no > > > > configure: error: sun.awt.X11.XEmbeddedFrame not found. > > > > ==> ERROR: A failure occurred in build(). > > > > > > > > Hmm, sorry. My suggestion will not solve the above. > > > > XEmbeddedFrame should be part of rt.jar with any OpenJDK build. Is it > > not in your rt.jar? > > > > Deepak > > > Can you please post your config.log file? Deepak > [andyrtr at workstation64 tmp]$ grepjar > XEmbeddedFrame /usr/lib/jvm/java-7-openjdk/jre/lib/rt.jar > sun/awt/X11/XEmbedCanvasPeer.class: Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XEmbedCanvasPeer.class:sun/awt/X11/XEmbeddedFramePeer > sun/awt/X11/XEmbedClientHelper$1.class:B(Lsun/awt/X11/XEmbedClientHelper;)Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XEmbedClientHelper$1.class:sun/awt/X11/XEmbeddedFramePeer > sun/awt/X11/XEmbedClientHelper$2.class:B(Lsun/awt/X11/XEmbedClientHelper;)Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XEmbedClientHelper$2.class:sun/awt/X11/XEmbeddedFramePeer > sun/awt/X11/XEmbedClientHelper.class: Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XEmbedClientHelper.class:#(Lsun/awt/X11/XEmbeddedFramePeer;)V > sun/awt/X11/XEmbedClientHelper.class:B(Lsun/awt/X11/XEmbedClientHelper;)Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XEmbedClientHelper.class:sun/awt/X11/XEmbeddedFramePeer > sun/awt/X11/XEmbeddedFrame.class:Lsun/awt/X11/XEmbeddedFrame; > sun/awt/X11/XEmbeddedFrame.class: Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XEmbeddedFrame.class:XEmbeddedFrame.java > sun/awt/X11/XEmbeddedFrame.class:sun/awt/X11/XEmbeddedFramePeer > sun/awt/X11/XEmbeddedFrame.class:sun/awt/X11/XEmbeddedFrame > sun/awt/X11/XEmbeddedFrame.class:>(Lsun/awt/X11/XEmbeddedFrame;)Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XTrayIconPeer$XTrayIconEmbeddedFrame.class:sun/awt/X11/XEmbeddedFrame > sun/awt/X11/XTrayIconPeer.class:sun/awt/X11/XEmbeddedFramePeer > sun/awt/X11/XlibUtil.class:sun/awt/X11/XEmbeddedFramePeer > sun/awt/X11/XEmbeddedFramePeer.class: Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XEmbeddedFramePeer.class:XEmbeddedFramePeer.java > sun/awt/X11/XEmbeddedFramePeer.class:sun/awt/X11/XEmbeddedFrame > sun/awt/X11/XEmbeddedFramePeer.class:sun/awt/X11/XEmbeddedFramePeer > sun/awt/X11/XEmbeddedFramePeer.class:%sun.awt.X11.xembed.XEmbeddedFramePeer > sun/awt/X11/XEmbeddedFramePeer.class:#(Lsun/awt/X11/XEmbeddedFramePeer;)V > sun/awt/X11/XDropTargetRegistry.class:sun/awt/X11/XEmbeddedFramePeer > sun/awt/X11/XToolkit.class:>(Lsun/awt/X11/XEmbeddedFrame;)Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XToolkit.class:Lsun/awt/X11/XEmbeddedFrame; > sun/awt/X11/XToolkit.class: Lsun/awt/X11/XEmbeddedFramePeer; > sun/awt/X11/XToolkit.class:sun/awt/X11/XEmbeddedFramePeer > > [andyrtr at workstation64 tmp]$ java -version > java version "1.7.0_03-icedtea" > OpenJDK Runtime Environment (IcedTea7 2.1) (ArchLinux build > 7.b147_2.1-1-x86_64) OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode) > > > I could build icedtea-web well with IcedTea 2.0 based JRE/JDK here. Maybe 2.1 introduced some regression? > > -Andy From ddadacha at redhat.com Tue Mar 6 08:59:00 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Tue, 06 Mar 2012 11:59:00 -0500 Subject: [rfc][icedtea-web] extended reflection tests In-Reply-To: <4F55E9F3.2030908@redhat.com> References: <4F54B7A6.70102@redhat.com> <4F553CFD.3040908@redhat.com> <4F55E9F3.2030908@redhat.com> Message-ID: <4F564254.9080209@redhat.com> On 06/03/12 05:41 AM, Jiri Vanek wrote: > On 03/05/2012 11:23 PM, Danesh Dadachanji wrote: >> Hi Jiri, >> >> Thanks for the tests! >> >> On 05/03/12 07:55 AM, Jiri Vanek wrote: >>> Hi! Few more test to reflection >>> >>> What I'm surprised is, that unsigned application can use reflection at >>> all. I tough they can not.... >> >> I thought so too.. > Pavel have thoughts taht it should be correct..adding him to cc for case > I'm lying. Also Omair cced as he had something to do with reflection too.. >> >>> This text is expecting them unsigned ones using reflection as correct as >>> it is current behaviour. But feel free to correct me if unsigned >>> applications should have reflection forbidden. >> >> I'll let someone who knows more comment on this. Until then, I have >> some comments on the patch below. > see above >> >>> >>> 2012-03-05 Jiri Vanek >>> >>> Improved reflection test: >>> * >>> /home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: >>> >>> >>> This testcase was extended for three more unsigned reflection tries >>> and four signed >>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: >>> >>> now accepting class to be findByName as argument. Four new jnlp >>> files in >>> signed a four in simple are then passing those argument >>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: >>> >>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: >>> >>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: >>> >>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: >>> >>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: >>> >>> removed >> >> Don't think we need your full path of "/home/jvanek/hg/icedtea-web/" ;) > Damn, thanx for catch. >> >> Please can you add to all the jnlp files. It'd work right now >> but once the changeset I have in review is accepted, it'll start >> failing to run javaws altogether. > > Done for this case, But I'm afraid you will break more tests. Before > commit of your changeset you should ensure (fix missing vendors in > current tests) that no new failures appears. > I will also add vendors in all current and future tests. Yeah I suspected that was the case. I'll update my patch to include fixes for all the current tests. >> >> I believe you also need to add the copyright header for many of the >> files. > done. I always forgotr about jnlp files :-/ >> >>> + private String[] badExceptions = { >>> + "accessClassInPackage.javax.jnlp.ServiceManager)", >>> + "accessClassInPackage.AccessClassInPackage)", >>> + "accessClassInPackage.net.sourceforge.jnlp)", >>> + "accessClassInPackage.sun.security.internal.spec)" >> >> [snip] >> >>> + private void testShouldFail(ServerAccess.ProcessResult pr, String s) { >>> + String c = "java.security.AccessControlException: access denied >>> (java.lang.RuntimePermission " + s; >>> + Assert.assertTrue("stderr should contains `" + c + "`, but didn't >>> ", pr.stderr.contains(c)); >>> + } >>> + private void testShouldNOTFail(ServerAccess.ProcessResult pr, >>> String s) { >>> + String c = "java.security.AccessControlException: access denied >>> (java.lang.RuntimePermission " + s; >>> + Assert.assertFalse("stderr should NOT contains `" + c + "`, but did >>> ", pr.stderr.contains(c)); >>> + } >> >> >> I noticed testShouldFail asserts were always failing when the methods >> were being called. I believe you need to add double quotes around >> java.lang.RuntimePermission and s in order for contains() to pass. >> >> stderr.log outputted: >> [...] access denied ("java.lang.RuntimePermission" >> "accessClassInPackage.sun.security.internal.spec") >> >> Change the String c's to (\"java.lang.RuntimePermission\" and wrap >> each element of badExceptions similarly, that should take care of the >> problem. > hmm.. this scares me a lot. I have changed catching from contains to > match, to have more vague regex inside. But what scares me is that I > have never seen this kind of exception in format you have described... > Attached is my exception format (same on f14 and f16) and new patch. Interesting, my F16 has "" around it. I built it with stock 6 (did not use --with-jdk-home). I don't think using matches with .* is the best idea. In this case, pr.stderr is a String, right? That means that if let's say stderr contains "java.security.AccessControlException" and then somewhere later on contains the other part we're searching for, it will return true. Perhaps an alternative solution for now is to match 0 or 1 '"' chars around the exceptions, instead of .* being used. Maybe leave a warning in comments saying stderr could be formatted differently. Then, if someone runs into this later on down the line, we can adjust to their output too. Attached is the exception I'm seeing. Hope this helps! >> >> >> Once the above's sorted out, this looks good to me for pushing. >> >> Regards, >> Danesh > > > 2012-03-06 Jiri Vanek > > Improved reflection test: > * > tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: > > This testcase was extended for three more unsigned reflection tries and > four signed > *tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: > > now accepting class to be findByName as argument. Four new jnlp files in > signed a four in simple are then passing those argument > *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: > > *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: > > *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: > > *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: > > *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: > > removed > * > tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java > > signed variation of AccessClassInPackage, tescase is also in > AccessClassInPackage > * > tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp > > * > tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp > > * > tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp > > * > tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp > > -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: exception-F16-danesh.txt Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120306/84f8d7a6/exception-F16-danesh.txt From a.radke at arcor.de Tue Mar 6 09:10:12 2012 From: a.radke at arcor.de (Andreas Radke) Date: Tue, 6 Mar 2012 18:10:12 +0100 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120306165836.GH27555@redhat.com> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> <20120305211023.GD24564@redhat.com> <20120305211532.GF24564@redhat.com> <20120306070423.73714cb0@workstation64.home> <20120306165836.GH27555@redhat.com> Message-ID: <20120306181012.0097eb5b@laptop64.home> Am Tue, 6 Mar 2012 11:58:37 -0500 schrieb Deepak Bhole : > > Can you please post your config.log file? > > Deepak attached. -Andy -------------- next part -------------- A non-text attachment was scrubbed... Name: config.log Type: text/x-log Size: 28533 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120306/6456a392/config.log From dbhole at redhat.com Tue Mar 6 09:25:02 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 6 Mar 2012 12:25:02 -0500 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120306181012.0097eb5b@laptop64.home> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> <20120305211023.GD24564@redhat.com> <20120305211532.GF24564@redhat.com> <20120306070423.73714cb0@workstation64.home> <20120306165836.GH27555@redhat.com> <20120306181012.0097eb5b@laptop64.home> Message-ID: <20120306172501.GI27555@redhat.com> * Andreas Radke [2012-03-06 12:10]: > Am Tue, 6 Mar 2012 11:58:37 -0500 > schrieb Deepak Bhole : > > > > Can you please post your config.log file? > > > > Deepak > > attached. > Ah, here is the problem: ... ... import sun.awt.X11.XEmbeddedFrame; ^ 1 warning Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory ... ... the configure script cannot compile the test code successfully due to the above error and therefore things XEmbeddedFrame is not there. After fixing the above issue, it should work again. Cheers, Deepak > -Andy > This file contains any messages produced by compilers while > running configure, to aid debugging if configure makes a mistake. > > It was created by icedtea-web configure 1.1.5, which was > generated by GNU Autoconf 2.68. Invocation command line was > > $ ./configure --prefix=/usr/lib/jvm/java-7-openjdk --datarootdir=/usr/share --with-jdk-home=/usr/lib/jvm/java-7-openjdk > > ## --------- ## > ## Platform. ## > ## --------- ## > > hostname = workstation64 > uname -m = x86_64 > uname -r = 3.2.9-1-ARCH > uname -s = Linux > uname -v = #1 SMP PREEMPT Thu Mar 1 09:31:13 CET 2012 > > /usr/bin/uname -p = unknown > /bin/uname -X = unknown > > /bin/arch = x86_64 > /usr/bin/arch -k = unknown > /usr/convex/getsysinfo = unknown > /usr/bin/hostinfo = unknown > /bin/machine = unknown > /usr/bin/oslevel = unknown > /bin/universe = unknown > > PATH: /usr/local/bin > PATH: /usr/bin > PATH: /bin > PATH: /usr/local/sbin > PATH: /usr/sbin > PATH: /sbin > PATH: /usr/bin/core_perl > > > ## ----------- ## > ## Core tests. ## > ## ----------- ## > > configure:2034: checking for a BSD-compatible install > configure:2102: result: /bin/install -c > configure:2113: checking whether build environment is sane > configure:2163: result: yes > configure:2304: checking for a thread-safe mkdir -p > configure:2343: result: /bin/mkdir -p > configure:2356: checking for gawk > configure:2372: found /usr/bin/gawk > configure:2383: result: gawk > configure:2394: checking whether make sets $(MAKE) > configure:2416: result: yes > configure:2491: checking how to create a pax tar archive > configure:2504: tar --version > tar (GNU tar) 1.26 > Copyright (C) 2011 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later . > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > > Written by John Gilmore and Jay Fenlason. > configure:2507: $? = 0 > configure:2547: tardir=conftest.dir && eval tar --format=posix -chf - "$tardir" >conftest.tar > configure:2550: $? = 0 > configure:2554: tar -xf - configure:2557: $? = 0 > configure:2570: result: gnutar > configure:2593: checking build system type > configure:2607: result: x86_64-unknown-linux-gnu > configure:2627: checking host system type > configure:2640: result: x86_64-unknown-linux-gnu > configure:2708: checking for gcc > configure:2724: found /usr/bin/gcc > configure:2735: result: gcc > configure:2964: checking for C compiler version > configure:2973: gcc --version >&5 > gcc (GCC) 4.6.3 > Copyright (C) 2011 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. > > configure:2984: $? = 0 > configure:2973: gcc -v >&5 > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.3/lto-wrapper > Target: x86_64-unknown-linux-gnu > Configured with: /build/src/gcc-4.6.3/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --enable-libstdcxx-time --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libssp --enable-checking=release > Thread model: posix > gcc version 4.6.3 (GCC) > configure:2984: $? = 0 > configure:2973: gcc -V >&5 > gcc: error: unrecognized option '-V' > gcc: fatal error: no input files > compilation terminated. > configure:2984: $? = 1 > configure:2973: gcc -qversion >&5 > gcc: error: unrecognized option '-qversion' > gcc: fatal error: no input files > compilation terminated. > configure:2984: $? = 1 > configure:3004: checking whether the C compiler works > configure:3026: gcc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu conftest.c >&5 > configure:3030: $? = 0 > configure:3078: result: yes > configure:3081: checking for C compiler default output file name > configure:3083: result: a.out > configure:3089: checking for suffix of executables > configure:3096: gcc -o conftest -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu conftest.c >&5 > configure:3100: $? = 0 > configure:3122: result: > configure:3144: checking whether we are cross compiling > configure:3152: gcc -o conftest -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu conftest.c >&5 > configure:3156: $? = 0 > configure:3163: ./conftest > configure:3167: $? = 0 > configure:3182: result: no > configure:3187: checking for suffix of object files > configure:3209: gcc -c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 conftest.c >&5 > configure:3213: $? = 0 > configure:3234: result: o > configure:3238: checking whether we are using the GNU C compiler > configure:3257: gcc -c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 conftest.c >&5 > configure:3257: $? = 0 > configure:3266: result: yes > configure:3275: checking whether gcc accepts -g > configure:3295: gcc -c -g conftest.c >&5 > configure:3295: $? = 0 > configure:3336: result: yes > configure:3353: checking for gcc option to accept ISO C89 > configure:3417: gcc -c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 conftest.c >&5 > configure:3417: $? = 0 > configure:3430: result: none needed > configure:3461: checking for style of include used by make > configure:3489: result: GNU > configure:3514: checking dependency style of gcc > configure:3624: result: none > configure:3697: checking for g++ > configure:3713: found /usr/bin/g++ > configure:3724: result: g++ > configure:3751: checking for C++ compiler version > configure:3760: g++ --version >&5 > g++ (GCC) 4.6.3 > Copyright (C) 2011 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. > > configure:3771: $? = 0 > configure:3760: g++ -v >&5 > Using built-in specs. > COLLECT_GCC=g++ > COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.3/lto-wrapper > Target: x86_64-unknown-linux-gnu > Configured with: /build/src/gcc-4.6.3/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --enable-libstdcxx-time --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libssp --enable-checking=release > Thread model: posix > gcc version 4.6.3 (GCC) > configure:3771: $? = 0 > configure:3760: g++ -V >&5 > g++: error: unrecognized option '-V' > g++: fatal error: no input files > compilation terminated. > configure:3771: $? = 1 > configure:3760: g++ -qversion >&5 > g++: error: unrecognized option '-qversion' > g++: fatal error: no input files > compilation terminated. > configure:3771: $? = 1 > configure:3775: checking whether we are using the GNU C++ compiler > configure:3794: g++ -c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 conftest.cpp >&5 > configure:3794: $? = 0 > configure:3803: result: yes > configure:3812: checking whether g++ accepts -g > configure:3832: g++ -c -g conftest.cpp >&5 > configure:3832: $? = 0 > configure:3873: result: yes > configure:3898: checking dependency style of g++ > configure:4008: result: none > configure:4116: checking if cp supports --reflink > configure:4131: result: yes > configure:4143: checking if we can hard link rather than copy from /build/src/icedtea-web-1.1.5 > configure:4157: result: yes > configure:4169: checking whether to build documentation > configure:4186: result: yes > configure:4190: checking whether to compile ecj natively > configure:4204: result: no > configure:4354: checking for zip > configure:4372: found /usr/bin/zip > configure:4384: result: /usr/bin/zip > configure:4412: checking for a JDK home directory > configure:4445: result: /usr/lib/jvm/java-7-openjdk > configure:4707: checking for javac > configure:4737: result: /usr/lib/jvm/java-7-openjdk/bin/javac > configure:5255: checking for ecj > configure:5288: result: no > configure:5296: checking for ecj-3.1 > configure:5329: result: no > configure:5338: checking for ecj-3.2 > configure:5371: result: no > configure:5380: checking for ecj-3.3 > configure:5413: result: no > configure:5431: checking if we are using ecj as javac > configure:5444: result: no > configure:5454: checking for jar > configure:5597: result: /usr/lib/jvm/java-7-openjdk/bin/jar > configure:5599: checking whether jar supports @ argument > configure:5607: result: yes > configure:5614: checking whether jar supports stdin file arguments > Illegal option: @ > Usage: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ... > Options: > -c create new archive > -t list table of contents for archive > -x extract named (or all) files from archive > -u update existing archive > -v generate verbose output on standard output > -f specify archive file name > -m include manifest information from specified manifest file > -e specify application entry point for stand-alone application > bundled into an executable jar file > -0 store only; use no ZIP compression > -M do not create a manifest file for the entries > -i generate index information for the specified jar files > -C change to the specified directory and include the following file > If any file is a directory then it is processed recursively. > The manifest file name, the archive file name and the entry point name are > specified in the same order as the 'm', 'f' and 'e' flags. > > Example 1: to archive two class files into an archive called classes.jar: > jar cvf classes.jar Foo.class Bar.class > Example 2: use an existing manifest file 'mymanifest' and archive all the > files in the foo/ directory into 'classes.jar': > jar cvfm classes.jar mymanifest -C foo/ . > > configure:5622: result: no > configure:5626: checking whether jar supports -J options at the end > configure:5630: result: yes > configure:5645: checking for an ecj JAR file > configure:5674: result: no > configure:5683: checking for javadoc > configure:5826: result: /usr/lib/jvm/java-7-openjdk/bin/javadoc > configure:5828: checking whether javadoc supports -J options > Loading source files for package pkg... > Constructing Javadoc information... > Standard Doclet version 1.7.0_03-icedtea > Building tree for all the packages and classes... > Generating /pkg/Test.html... > Generating /pkg/package-frame.html... > Generating /pkg/package-summary.html... > Generating /pkg/package-tree.html... > Generating /constant-values.html... > Building index for all the packages and classes... > Generating /overview-tree.html... > Generating /index-all.html... > Generating /deprecated-list.html... > Building index for all classes... > Generating /allclasses-frame.html... > Generating /allclasses-noframe.html... > Generating /index.html... > Generating /help-doc.html... > configure:5860: result: yes > configure:5923: checking for hg > configure:5956: result: no > Usage: which [options] [--] COMMAND [...] > Write the full path of COMMAND(s) to standard output. > > --version, -[vV] Print version and exit successfully. > --help, Print this help and exit successfully. > --skip-dot Skip directories in PATH that start with a dot. > --skip-tilde Skip directories in PATH that start with a tilde. > --show-dot Don't expand a dot to current directory in output. > --show-tilde Output a tilde for HOME directory for non-root. > --tty-only Stop processing options on the right if not on tty. > --all, -a Print all matches in PATH, not just the first > --read-alias, -i Read list of aliases from stdin. > --skip-alias Ignore option --read-alias; don't read stdin. > --read-functions Read shell functions from stdin. > --skip-functions Ignore option --read-functions; don't read stdin. > > Recommended use is to write the output of (alias; declare -f) to standard > input, so that which can show aliases and shell functions. See which(1) for > examples. > > If the options --read-alias and/or --read-functions are specified then the > output can be a full alias or function definition, optionally followed by > the full path of each command used inside of those. > > Report bugs to . > configure:6000: checking for distribution package version > configure:6014: result: none > configure:6029: checking what version string to use > configure:6038: result: 1.1.5 > configure:6043: checking whether to build the browser plugin > configure:6052: result: yes > configure:6108: checking for pkg-config > configure:6126: found /usr/bin/pkg-config > configure:6138: result: /usr/bin/pkg-config > configure:6163: checking pkg-config is at least version 0.9.0 > configure:6166: result: yes > configure:6179: checking for GTK > configure:6186: $PKG_CONFIG --exists --print-errors "gtk+-2.0" > configure:6189: $? = 0 > configure:6202: $PKG_CONFIG --exists --print-errors "gtk+-2.0" > configure:6205: $? = 0 > configure:6264: result: yes > configure:6270: checking for GLIB > configure:6277: $PKG_CONFIG --exists --print-errors "glib-2.0" > configure:6280: $? = 0 > configure:6293: $PKG_CONFIG --exists --print-errors "glib-2.0" > configure:6296: $? = 0 > configure:6355: result: yes > configure:6366: checking for MOZILLA > configure:6373: $PKG_CONFIG --exists --print-errors "npapi-sdk" > configure:6376: $? = 0 > configure:6389: $PKG_CONFIG --exists --print-errors "npapi-sdk" > configure:6392: $? = 0 > configure:6613: result: yes > configure:6616: checking for xulrunner version > configure:6626: result: 20000000 > configure:6647: checking for xulrunner version > configure:6666: result: 20000000 > configure:6674: checking for main in -lz > configure:6693: gcc -o conftest -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu conftest.c -lz >&5 > configure:6693: $? = 0 > configure:6702: result: yes > configure:6717: checking for X11 > configure:6724: $PKG_CONFIG --exists --print-errors "x11" > configure:6727: $? = 0 > configure:6740: $PKG_CONFIG --exists --print-errors "x11" > configure:6743: $? = 0 > configure:6780: result: yes > configure:6794: checking for a JRE home directory > configure:6813: result: /usr/lib/jvm/java-7-openjdk/jre > configure:6822: checking for a Java virtual machine > configure:6965: result: /usr/lib/jvm/java-7-openjdk/jre/bin/java > configure:6977: checking if java.util.jar.Pack200 is available > class java.util.jar.Pack200 > configure:7014: result: yes > configure:7027: checking if java.net.CookieManager is available > class java.net.CookieManager > configure:7064: result: yes > configure:7077: checking if java.net.HttpCookie is available > class java.net.HttpCookie > configure:7114: result: yes > configure:7127: checking if java.net.CookieHandler is available > class java.net.CookieHandler > configure:7164: result: yes > configure:7177: checking if sun.security.provider.X509Factory is available > sun/applet/Test.java:4: warning: X509Factory is internal proprietary API and may be removed in a future release > import sun.security.provider.X509Factory; > ^ > 1 warning > class sun.security.provider.X509Factory > configure:7214: result: yes > configure:7227: checking if sun.security.util.SecurityConstants is available > sun/applet/Test.java:4: warning: SecurityConstants is internal proprietary API and may be removed in a future release > import sun.security.util.SecurityConstants; > ^ > 1 warning > class sun.security.util.SecurityConstants > configure:7264: result: yes > configure:7277: checking if sun.security.util.HostnameChecker is available > sun/applet/Test.java:4: warning: HostnameChecker is internal proprietary API and may be removed in a future release > import sun.security.util.HostnameChecker; > ^ > 1 warning > class sun.security.util.HostnameChecker > configure:7314: result: yes > configure:7327: checking if sun.security.x509.X500Name is available > sun/applet/Test.java:4: warning: X500Name is internal proprietary API and may be removed in a future release > import sun.security.x509.X500Name; > ^ > 1 warning > class sun.security.x509.X500Name > configure:7364: result: yes > configure:7377: checking if sun.misc.BASE64Encoder is available > sun/applet/Test.java:4: warning: BASE64Encoder is internal proprietary API and may be removed in a future release > import sun.misc.BASE64Encoder; > ^ > 1 warning > class sun.misc.BASE64Encoder > configure:7414: result: yes > configure:7427: checking if sun.misc.HexDumpEncoder is available > sun/applet/Test.java:4: warning: HexDumpEncoder is internal proprietary API and may be removed in a future release > import sun.misc.HexDumpEncoder; > ^ > 1 warning > class sun.misc.HexDumpEncoder > configure:7464: result: yes > configure:7477: checking if sun.security.validator.ValidatorException is available > sun/applet/Test.java:4: warning: ValidatorException is internal proprietary API and may be removed in a future release > import sun.security.validator.ValidatorException; > ^ > 1 warning > class sun.security.validator.ValidatorException > configure:7514: result: yes > configure:7527: checking if com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager is available > class com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager > configure:7564: result: yes > configure:7577: checking if sun.awt.X11.XEmbeddedFrame is available > sun/applet/Test.java:4: warning: XEmbeddedFrame is internal proprietary API and may be removed in a future release > import sun.awt.X11.XEmbeddedFrame; > ^ > 1 warning > Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory > at java.lang.ClassLoader$NativeLibrary.load(Native Method) > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928) > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825) > at java.lang.Runtime.load0(Runtime.java:792) > at java.lang.System.load(System.java:1059) > at java.lang.ClassLoader$NativeLibrary.load(Native Method) > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928) > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1846) > at java.lang.Runtime.loadLibrary0(Runtime.java:845) > at java.lang.System.loadLibrary(System.java:1084) > at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67) > at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47) > at java.security.AccessController.doPrivileged(Native Method) > at java.awt.Toolkit.loadLibraries(Toolkit.java:1648) > at java.awt.Toolkit.(Toolkit.java:1670) > at java.awt.Component.(Component.java:595) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:186) > at sun.applet.Test.main(Test.java:11) > configure:7614: result: no > configure:7621: error: sun.awt.X11.XEmbeddedFrame not found. > > ## ---------------- ## > ## Cache variables. ## > ## ---------------- ## > > ac_cv_build=x86_64-unknown-linux-gnu > ac_cv_c_compiler_gnu=yes > ac_cv_cxx_compiler_gnu=yes > ac_cv_env_CCC_set= > ac_cv_env_CCC_value= > ac_cv_env_CC_set= > ac_cv_env_CC_value= > ac_cv_env_CFLAGS_set=set > ac_cv_env_CFLAGS_value='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2' > ac_cv_env_CPPFLAGS_set= > ac_cv_env_CPPFLAGS_value= > ac_cv_env_CXXFLAGS_set=set > ac_cv_env_CXXFLAGS_value='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2' > ac_cv_env_CXX_set= > ac_cv_env_CXX_value= > ac_cv_env_GLIB_CFLAGS_set= > ac_cv_env_GLIB_CFLAGS_value= > ac_cv_env_GLIB_LIBS_set= > ac_cv_env_GLIB_LIBS_value= > ac_cv_env_GTK_CFLAGS_set= > ac_cv_env_GTK_CFLAGS_value= > ac_cv_env_GTK_LIBS_set= > ac_cv_env_GTK_LIBS_value= > ac_cv_env_LDFLAGS_set=set > ac_cv_env_LDFLAGS_value=-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu > ac_cv_env_LIBS_set= > ac_cv_env_LIBS_value= > ac_cv_env_MOZILLA_CFLAGS_set= > ac_cv_env_MOZILLA_CFLAGS_value= > ac_cv_env_MOZILLA_LIBS_set= > ac_cv_env_MOZILLA_LIBS_value= > ac_cv_env_PKG_CONFIG_LIBDIR_set= > ac_cv_env_PKG_CONFIG_LIBDIR_value= > ac_cv_env_PKG_CONFIG_PATH_set= > ac_cv_env_PKG_CONFIG_PATH_value= > ac_cv_env_PKG_CONFIG_set= > ac_cv_env_PKG_CONFIG_value= > ac_cv_env_X11_CFLAGS_set= > ac_cv_env_X11_CFLAGS_value= > ac_cv_env_X11_LIBS_set= > ac_cv_env_X11_LIBS_value= > ac_cv_env_build_alias_set= > ac_cv_env_build_alias_value= > ac_cv_env_host_alias_set= > ac_cv_env_host_alias_value= > ac_cv_env_target_alias_set= > ac_cv_env_target_alias_value= > ac_cv_host=x86_64-unknown-linux-gnu > ac_cv_lib_z_main=yes > ac_cv_objext=o > ac_cv_path_JAVAC=/usr/lib/jvm/java-7-openjdk/bin/javac > ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config > ac_cv_path_ac_pt_ZIP=/usr/bin/zip > ac_cv_path_install='/bin/install -c' > ac_cv_path_mkdir=/bin/mkdir > ac_cv_prog_AWK=gawk > ac_cv_prog_ac_ct_CC=gcc > ac_cv_prog_ac_ct_CXX=g++ > ac_cv_prog_cc_c89= > ac_cv_prog_cc_g=yes > ac_cv_prog_cxx_g=yes > ac_cv_prog_make_make_set=yes > am_cv_CC_dependencies_compiler_type=none > am_cv_CXX_dependencies_compiler_type=none > am_cv_prog_tar_pax=gnutar > it_cv_COM_SUN_NET_SSL_INTERNAL_SSL_X509EXTENDEDTRUSTMANAGER=yes > it_cv_JAVA_NET_COOKIEHANDLER=yes > it_cv_JAVA_NET_COOKIEMANAGER=yes > it_cv_JAVA_NET_HTTPCOOKIE=yes > it_cv_JAVA_UTIL_JAR_PACK200=yes > it_cv_SUN_AWT_X11_XEMBEDDEDFRAME=no > it_cv_SUN_MISC_BASE64ENCODER=yes > it_cv_SUN_MISC_HEXDUMPENCODER=yes > it_cv_SUN_SECURITY_PROVIDER_X509FACTORY=yes > it_cv_SUN_SECURITY_UTIL_HOSTNAMECHECKER=yes > it_cv_SUN_SECURITY_UTIL_SECURITYCONSTANTS=yes > it_cv_SUN_SECURITY_VALIDATOR_VALIDATOREXCEPTION=yes > it_cv_SUN_SECURITY_X509_X500NAME=yes > it_cv_ecj=no > it_cv_hardlink_src=yes > it_cv_reflink=yes > pkg_cv_GLIB_CFLAGS='-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include ' > pkg_cv_GLIB_LIBS='-lglib-2.0 ' > pkg_cv_GTK_CFLAGS='-pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15 ' > pkg_cv_GTK_LIBS='-pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 ' > pkg_cv_MOZILLA_CFLAGS='-DXP_UNIX -I/usr/include/npapi-sdk ' > pkg_cv_MOZILLA_LIBS=' ' > pkg_cv_X11_CFLAGS=' ' > pkg_cv_X11_LIBS='-lX11 ' > xulrunner_cv_collapsed_version=20000000 > > ## ----------------- ## > ## Output variables. ## > ## ----------------- ## > > ACLOCAL='${SHELL} /build/src/icedtea-web-1.1.5/missing --run aclocal-1.11' > AMDEPBACKSLASH='\' > AMDEP_FALSE='#' > AMDEP_TRUE='' > AMTAR='${SHELL} /build/src/icedtea-web-1.1.5/missing --run tar' > ARCHFLAG='-m64' > ARCH_PREFIX='' > AUTOCONF='${SHELL} /build/src/icedtea-web-1.1.5/missing --run autoconf' > AUTOHEADER='${SHELL} /build/src/icedtea-web-1.1.5/missing --run autoheader' > AUTOMAKE='${SHELL} /build/src/icedtea-web-1.1.5/missing --run automake-1.11' > AWK='gawk' > BUILD_ARCH_DIR='amd64' > CC='gcc' > CCDEPMODE='depmode=none' > CFLAGS='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2' > CPPFLAGS='' > CP_SUPPORTS_REFLINK_FALSE='#' > CP_SUPPORTS_REFLINK_TRUE='' > CXX='g++' > CXXDEPMODE='depmode=none' > CXXFLAGS='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2' > CYGPATH_W='echo' > DEFS='' > DEPDIR='.deps' > ECHO_C='' > ECHO_N='-n' > ECHO_T='' > ECJ='' > ECJ_JAR='no' > ENABLE_DOCS_FALSE='#' > ENABLE_DOCS_TRUE='' > ENABLE_PLUGIN_FALSE='#' > ENABLE_PLUGIN_TRUE='' > EXEEXT='' > FULL_VERSION='1.1.5' > GCJ='no' > GLIB_CFLAGS='-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include ' > GLIB_LIBS='-lglib-2.0 ' > GTK_CFLAGS='-pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15 ' > GTK_LIBS='-pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 ' > HAS_ICEDTEA_REVISION_FALSE='' > HAS_ICEDTEA_REVISION_TRUE='#' > HAS_PKGVERSION_FALSE='' > HAS_PKGVERSION_TRUE='#' > HG='' > ICEDTEA_REVISION='none' > INSTALL_ARCH_DIR='amd64' > INSTALL_DATA='${INSTALL} -m 644' > INSTALL_PROGRAM='${INSTALL}' > INSTALL_SCRIPT='${INSTALL}' > INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' > JAR='/usr/lib/jvm/java-7-openjdk/bin/jar' > JAR_ACCEPTS_STDIN_LIST='' > JAR_KNOWS_ATFILE='1' > JAR_KNOWS_J_OPTIONS='1' > JAVA='/usr/lib/jvm/java-7-openjdk/jre/bin/java' > JAVAC='/usr/lib/jvm/java-7-openjdk/bin/javac' > JAVADOC='/usr/lib/jvm/java-7-openjdk/bin/javadoc' > JAVADOC_KNOWS_J_OPTIONS='yes' > JAVADOC_SUPPORTS_J_OPTIONS_FALSE='#' > JAVADOC_SUPPORTS_J_OPTIONS_TRUE='' > JRE_ARCH_DIR='amd64' > JUNIT_AVAILABLE='' > JUNIT_JAR='' > LDFLAGS='-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu' > LIBOBJS='' > LIBS='-lz ' > LTLIBOBJS='' > MAKEINFO='${SHELL} /build/src/icedtea-web-1.1.5/missing --run makeinfo' > MKDIR_P='/bin/mkdir -p' > MOZILLA_CFLAGS='-DXP_UNIX -I/usr/include/npapi-sdk ' > MOZILLA_LIBS=' ' > MOZILLA_VERSION_COLLAPSED='20000000' > OBJEXT='o' > PACKAGE='icedtea-web' > PACKAGE_BUGREPORT='distro-pkg-dev at openjdk.java.net' > PACKAGE_NAME='icedtea-web' > PACKAGE_STRING='icedtea-web 1.1.5' > PACKAGE_TARNAME='icedtea-web' > PACKAGE_URL='http://icedtea.classpath.org/wiki/IcedTea-Web' > PACKAGE_VERSION='1.1.5' > PATH_SEPARATOR=':' > PKGVERSION='none' > PKG_CONFIG='/usr/bin/pkg-config' > PKG_CONFIG_LIBDIR='' > PKG_CONFIG_PATH='' > RHINO_AVAILABLE='' > RHINO_JAR='' > SET_MAKE='' > SHELL='/bin/sh' > SRC_DIR_HARDLINKABLE_FALSE='#' > SRC_DIR_HARDLINKABLE_TRUE='' > STRIP='' > SYSTEM_JDK_DIR='/usr/lib/jvm/java-7-openjdk' > SYSTEM_JRE_DIR='/usr/lib/jvm/java-7-openjdk/jre' > USING_ECJ='no' > VERSION='1.1.5' > VERSION_DEFS='-DHAVE_JAVA7' > WITH_JUNIT_FALSE='' > WITH_JUNIT_TRUE='' > WITH_RHINO_FALSE='' > WITH_RHINO_TRUE='' > X11_CFLAGS=' ' > X11_LIBS='-lX11 ' > ZIP='/usr/bin/zip' > abs_top_builddir='/build/src/icedtea-web-1.1.5' > abs_top_srcdir='/build/src/icedtea-web-1.1.5' > ac_ct_CC='gcc' > ac_ct_CXX='g++' > am__EXEEXT_FALSE='' > am__EXEEXT_TRUE='' > am__fastdepCC_FALSE='' > am__fastdepCC_TRUE='#' > am__fastdepCXX_FALSE='' > am__fastdepCXX_TRUE='#' > am__include='include' > am__isrc='' > am__leading_dot='.' > am__quote='' > am__tar='tar --format=posix -chf - "$$tardir"' > am__untar='tar -xf -' > bindir='${exec_prefix}/bin' > build='x86_64-unknown-linux-gnu' > build_alias='' > build_cpu='x86_64' > build_os='linux-gnu' > build_vendor='unknown' > datadir='${datarootdir}' > datarootdir='/usr/share' > docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' > dvidir='${docdir}' > exec_prefix='NONE' > host='x86_64-unknown-linux-gnu' > host_alias='' > host_cpu='x86_64' > host_os='linux-gnu' > host_vendor='unknown' > htmldir='${docdir}' > includedir='${prefix}/include' > infodir='${datarootdir}/info' > install_sh='${SHELL} /build/src/icedtea-web-1.1.5/install-sh' > libdir='${exec_prefix}/lib' > libexecdir='${exec_prefix}/libexec' > localedir='${datarootdir}/locale' > localstatedir='${prefix}/var' > mandir='${datarootdir}/man' > mkdir_p='/bin/mkdir -p' > oldincludedir='/usr/include' > pdfdir='${docdir}' > prefix='/usr/lib/jvm/java-7-openjdk' > program_transform_name='s,x,x,' > psdir='${docdir}' > sbindir='${exec_prefix}/sbin' > sharedstatedir='${prefix}/com' > sysconfdir='${prefix}/etc' > target_alias='' > > ## ----------- ## > ## confdefs.h. ## > ## ----------- ## > > /* confdefs.h */ > #define PACKAGE_NAME "icedtea-web" > #define PACKAGE_TARNAME "icedtea-web" > #define PACKAGE_VERSION "1.1.5" > #define PACKAGE_STRING "icedtea-web 1.1.5" > #define PACKAGE_BUGREPORT "distro-pkg-dev at openjdk.java.net" > #define PACKAGE_URL "http://icedtea.classpath.org/wiki/IcedTea-Web" > #define PACKAGE "icedtea-web" > #define VERSION "1.1.5" > #define HAVE_LIBZ 1 > > configure: exit 1 From a.radke at arcor.de Tue Mar 6 09:45:53 2012 From: a.radke at arcor.de (Andreas Radke) Date: Tue, 6 Mar 2012 18:45:53 +0100 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120306172501.GI27555@redhat.com> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> <20120305211023.GD24564@redhat.com> <20120305211532.GF24564@redhat.com> <20120306070423.73714cb0@workstation64.home> <20120306165836.GH27555@redhat.com> <20120306181012.0097eb5b@laptop64.home> <20120306172501.GI27555@redhat.com> Message-ID: <20120306184553.28cd7c67@laptop64.home> Am Tue, 6 Mar 2012 12:25:02 -0500 schrieb Deepak Bhole : > Ah, here is the problem: > > ... > ... > > import sun.awt.X11.XEmbeddedFrame; > ^ > 1 warning > Exception in thread "main" > java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/xawt/libmawt.so: > libXtst.so.6: cannot open shared object file: No such file or > directory > > ... > ... > > > the configure script cannot compile the test code successfully due to > the above error and therefore things XEmbeddedFrame is not there. > After fixing the above issue, it should work again. > > Cheers, > Deepak Thanks for pointing me there. Our optional dependency on gtk2 doesn't pull in automatically libxtst in our build environment. This is fixed now here and icedtea-web passes now configure. -Andy From dbhole at redhat.com Tue Mar 6 09:27:04 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 6 Mar 2012 12:27:04 -0500 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120306172501.GI27555@redhat.com> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> <20120305211023.GD24564@redhat.com> <20120305211532.GF24564@redhat.com> <20120306070423.73714cb0@workstation64.home> <20120306165836.GH27555@redhat.com> <20120306181012.0097eb5b@laptop64.home> <20120306172501.GI27555@redhat.com> Message-ID: <20120306172703.GJ27555@redhat.com> * Deepak Bhole [2012-03-06 12:26]: > * Andreas Radke [2012-03-06 12:10]: > > Am Tue, 6 Mar 2012 11:58:37 -0500 > > schrieb Deepak Bhole : > > > > > > Can you please post your config.log file? > > > > > > Deepak > > > > attached. > > > > Ah, here is the problem: > > ... > ... > > import sun.awt.X11.XEmbeddedFrame; > ^ > 1 warning > Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory > > ... > ... > > > the configure script cannot compile the test code successfully due to the above > error and therefore things XEmbeddedFrame is not there. After fixing the above s/things/thinks > issue, it should work again. > > Cheers, > Deepak > > > -Andy > > > This file contains any messages produced by compilers while > > running configure, to aid debugging if configure makes a mistake. > > > > It was created by icedtea-web configure 1.1.5, which was > > generated by GNU Autoconf 2.68. Invocation command line was > > > > $ ./configure --prefix=/usr/lib/jvm/java-7-openjdk --datarootdir=/usr/share --with-jdk-home=/usr/lib/jvm/java-7-openjdk > > > > ## --------- ## > > ## Platform. ## > > ## --------- ## > > > > hostname = workstation64 > > uname -m = x86_64 > > uname -r = 3.2.9-1-ARCH > > uname -s = Linux > > uname -v = #1 SMP PREEMPT Thu Mar 1 09:31:13 CET 2012 > > > > /usr/bin/uname -p = unknown > > /bin/uname -X = unknown > > > > /bin/arch = x86_64 > > /usr/bin/arch -k = unknown > > /usr/convex/getsysinfo = unknown > > /usr/bin/hostinfo = unknown > > /bin/machine = unknown > > /usr/bin/oslevel = unknown > > /bin/universe = unknown > > > > PATH: /usr/local/bin > > PATH: /usr/bin > > PATH: /bin > > PATH: /usr/local/sbin > > PATH: /usr/sbin > > PATH: /sbin > > PATH: /usr/bin/core_perl > > > > > > ## ----------- ## > > ## Core tests. ## > > ## ----------- ## > > > > configure:2034: checking for a BSD-compatible install > > configure:2102: result: /bin/install -c > > configure:2113: checking whether build environment is sane > > configure:2163: result: yes > > configure:2304: checking for a thread-safe mkdir -p > > configure:2343: result: /bin/mkdir -p > > configure:2356: checking for gawk > > configure:2372: found /usr/bin/gawk > > configure:2383: result: gawk > > configure:2394: checking whether make sets $(MAKE) > > configure:2416: result: yes > > configure:2491: checking how to create a pax tar archive > > configure:2504: tar --version > > tar (GNU tar) 1.26 > > Copyright (C) 2011 Free Software Foundation, Inc. > > License GPLv3+: GNU GPL version 3 or later . > > This is free software: you are free to change and redistribute it. > > There is NO WARRANTY, to the extent permitted by law. > > > > Written by John Gilmore and Jay Fenlason. > > configure:2507: $? = 0 > > configure:2547: tardir=conftest.dir && eval tar --format=posix -chf - "$tardir" >conftest.tar > > configure:2550: $? = 0 > > configure:2554: tar -xf - > configure:2557: $? = 0 > > configure:2570: result: gnutar > > configure:2593: checking build system type > > configure:2607: result: x86_64-unknown-linux-gnu > > configure:2627: checking host system type > > configure:2640: result: x86_64-unknown-linux-gnu > > configure:2708: checking for gcc > > configure:2724: found /usr/bin/gcc > > configure:2735: result: gcc > > configure:2964: checking for C compiler version > > configure:2973: gcc --version >&5 > > gcc (GCC) 4.6.3 > > Copyright (C) 2011 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. > > > > configure:2984: $? = 0 > > configure:2973: gcc -v >&5 > > Using built-in specs. > > COLLECT_GCC=gcc > > COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.3/lto-wrapper > > Target: x86_64-unknown-linux-gnu > > Configured with: /build/src/gcc-4.6.3/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --enable-libstdcxx-time --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libssp --enable-checking=release > > Thread model: posix > > gcc version 4.6.3 (GCC) > > configure:2984: $? = 0 > > configure:2973: gcc -V >&5 > > gcc: error: unrecognized option '-V' > > gcc: fatal error: no input files > > compilation terminated. > > configure:2984: $? = 1 > > configure:2973: gcc -qversion >&5 > > gcc: error: unrecognized option '-qversion' > > gcc: fatal error: no input files > > compilation terminated. > > configure:2984: $? = 1 > > configure:3004: checking whether the C compiler works > > configure:3026: gcc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu conftest.c >&5 > > configure:3030: $? = 0 > > configure:3078: result: yes > > configure:3081: checking for C compiler default output file name > > configure:3083: result: a.out > > configure:3089: checking for suffix of executables > > configure:3096: gcc -o conftest -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu conftest.c >&5 > > configure:3100: $? = 0 > > configure:3122: result: > > configure:3144: checking whether we are cross compiling > > configure:3152: gcc -o conftest -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu conftest.c >&5 > > configure:3156: $? = 0 > > configure:3163: ./conftest > > configure:3167: $? = 0 > > configure:3182: result: no > > configure:3187: checking for suffix of object files > > configure:3209: gcc -c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 conftest.c >&5 > > configure:3213: $? = 0 > > configure:3234: result: o > > configure:3238: checking whether we are using the GNU C compiler > > configure:3257: gcc -c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 conftest.c >&5 > > configure:3257: $? = 0 > > configure:3266: result: yes > > configure:3275: checking whether gcc accepts -g > > configure:3295: gcc -c -g conftest.c >&5 > > configure:3295: $? = 0 > > configure:3336: result: yes > > configure:3353: checking for gcc option to accept ISO C89 > > configure:3417: gcc -c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 conftest.c >&5 > > configure:3417: $? = 0 > > configure:3430: result: none needed > > configure:3461: checking for style of include used by make > > configure:3489: result: GNU > > configure:3514: checking dependency style of gcc > > configure:3624: result: none > > configure:3697: checking for g++ > > configure:3713: found /usr/bin/g++ > > configure:3724: result: g++ > > configure:3751: checking for C++ compiler version > > configure:3760: g++ --version >&5 > > g++ (GCC) 4.6.3 > > Copyright (C) 2011 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. > > > > configure:3771: $? = 0 > > configure:3760: g++ -v >&5 > > Using built-in specs. > > COLLECT_GCC=g++ > > COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.3/lto-wrapper > > Target: x86_64-unknown-linux-gnu > > Configured with: /build/src/gcc-4.6.3/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --enable-libstdcxx-time --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libssp --enable-checking=release > > Thread model: posix > > gcc version 4.6.3 (GCC) > > configure:3771: $? = 0 > > configure:3760: g++ -V >&5 > > g++: error: unrecognized option '-V' > > g++: fatal error: no input files > > compilation terminated. > > configure:3771: $? = 1 > > configure:3760: g++ -qversion >&5 > > g++: error: unrecognized option '-qversion' > > g++: fatal error: no input files > > compilation terminated. > > configure:3771: $? = 1 > > configure:3775: checking whether we are using the GNU C++ compiler > > configure:3794: g++ -c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 conftest.cpp >&5 > > configure:3794: $? = 0 > > configure:3803: result: yes > > configure:3812: checking whether g++ accepts -g > > configure:3832: g++ -c -g conftest.cpp >&5 > > configure:3832: $? = 0 > > configure:3873: result: yes > > configure:3898: checking dependency style of g++ > > configure:4008: result: none > > configure:4116: checking if cp supports --reflink > > configure:4131: result: yes > > configure:4143: checking if we can hard link rather than copy from /build/src/icedtea-web-1.1.5 > > configure:4157: result: yes > > configure:4169: checking whether to build documentation > > configure:4186: result: yes > > configure:4190: checking whether to compile ecj natively > > configure:4204: result: no > > configure:4354: checking for zip > > configure:4372: found /usr/bin/zip > > configure:4384: result: /usr/bin/zip > > configure:4412: checking for a JDK home directory > > configure:4445: result: /usr/lib/jvm/java-7-openjdk > > configure:4707: checking for javac > > configure:4737: result: /usr/lib/jvm/java-7-openjdk/bin/javac > > configure:5255: checking for ecj > > configure:5288: result: no > > configure:5296: checking for ecj-3.1 > > configure:5329: result: no > > configure:5338: checking for ecj-3.2 > > configure:5371: result: no > > configure:5380: checking for ecj-3.3 > > configure:5413: result: no > > configure:5431: checking if we are using ecj as javac > > configure:5444: result: no > > configure:5454: checking for jar > > configure:5597: result: /usr/lib/jvm/java-7-openjdk/bin/jar > > configure:5599: checking whether jar supports @ argument > > configure:5607: result: yes > > configure:5614: checking whether jar supports stdin file arguments > > Illegal option: @ > > Usage: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ... > > Options: > > -c create new archive > > -t list table of contents for archive > > -x extract named (or all) files from archive > > -u update existing archive > > -v generate verbose output on standard output > > -f specify archive file name > > -m include manifest information from specified manifest file > > -e specify application entry point for stand-alone application > > bundled into an executable jar file > > -0 store only; use no ZIP compression > > -M do not create a manifest file for the entries > > -i generate index information for the specified jar files > > -C change to the specified directory and include the following file > > If any file is a directory then it is processed recursively. > > The manifest file name, the archive file name and the entry point name are > > specified in the same order as the 'm', 'f' and 'e' flags. > > > > Example 1: to archive two class files into an archive called classes.jar: > > jar cvf classes.jar Foo.class Bar.class > > Example 2: use an existing manifest file 'mymanifest' and archive all the > > files in the foo/ directory into 'classes.jar': > > jar cvfm classes.jar mymanifest -C foo/ . > > > > configure:5622: result: no > > configure:5626: checking whether jar supports -J options at the end > > configure:5630: result: yes > > configure:5645: checking for an ecj JAR file > > configure:5674: result: no > > configure:5683: checking for javadoc > > configure:5826: result: /usr/lib/jvm/java-7-openjdk/bin/javadoc > > configure:5828: checking whether javadoc supports -J options > > Loading source files for package pkg... > > Constructing Javadoc information... > > Standard Doclet version 1.7.0_03-icedtea > > Building tree for all the packages and classes... > > Generating /pkg/Test.html... > > Generating /pkg/package-frame.html... > > Generating /pkg/package-summary.html... > > Generating /pkg/package-tree.html... > > Generating /constant-values.html... > > Building index for all the packages and classes... > > Generating /overview-tree.html... > > Generating /index-all.html... > > Generating /deprecated-list.html... > > Building index for all classes... > > Generating /allclasses-frame.html... > > Generating /allclasses-noframe.html... > > Generating /index.html... > > Generating /help-doc.html... > > configure:5860: result: yes > > configure:5923: checking for hg > > configure:5956: result: no > > Usage: which [options] [--] COMMAND [...] > > Write the full path of COMMAND(s) to standard output. > > > > --version, -[vV] Print version and exit successfully. > > --help, Print this help and exit successfully. > > --skip-dot Skip directories in PATH that start with a dot. > > --skip-tilde Skip directories in PATH that start with a tilde. > > --show-dot Don't expand a dot to current directory in output. > > --show-tilde Output a tilde for HOME directory for non-root. > > --tty-only Stop processing options on the right if not on tty. > > --all, -a Print all matches in PATH, not just the first > > --read-alias, -i Read list of aliases from stdin. > > --skip-alias Ignore option --read-alias; don't read stdin. > > --read-functions Read shell functions from stdin. > > --skip-functions Ignore option --read-functions; don't read stdin. > > > > Recommended use is to write the output of (alias; declare -f) to standard > > input, so that which can show aliases and shell functions. See which(1) for > > examples. > > > > If the options --read-alias and/or --read-functions are specified then the > > output can be a full alias or function definition, optionally followed by > > the full path of each command used inside of those. > > > > Report bugs to . > > configure:6000: checking for distribution package version > > configure:6014: result: none > > configure:6029: checking what version string to use > > configure:6038: result: 1.1.5 > > configure:6043: checking whether to build the browser plugin > > configure:6052: result: yes > > configure:6108: checking for pkg-config > > configure:6126: found /usr/bin/pkg-config > > configure:6138: result: /usr/bin/pkg-config > > configure:6163: checking pkg-config is at least version 0.9.0 > > configure:6166: result: yes > > configure:6179: checking for GTK > > configure:6186: $PKG_CONFIG --exists --print-errors "gtk+-2.0" > > configure:6189: $? = 0 > > configure:6202: $PKG_CONFIG --exists --print-errors "gtk+-2.0" > > configure:6205: $? = 0 > > configure:6264: result: yes > > configure:6270: checking for GLIB > > configure:6277: $PKG_CONFIG --exists --print-errors "glib-2.0" > > configure:6280: $? = 0 > > configure:6293: $PKG_CONFIG --exists --print-errors "glib-2.0" > > configure:6296: $? = 0 > > configure:6355: result: yes > > configure:6366: checking for MOZILLA > > configure:6373: $PKG_CONFIG --exists --print-errors "npapi-sdk" > > configure:6376: $? = 0 > > configure:6389: $PKG_CONFIG --exists --print-errors "npapi-sdk" > > configure:6392: $? = 0 > > configure:6613: result: yes > > configure:6616: checking for xulrunner version > > configure:6626: result: 20000000 > > configure:6647: checking for xulrunner version > > configure:6666: result: 20000000 > > configure:6674: checking for main in -lz > > configure:6693: gcc -o conftest -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu conftest.c -lz >&5 > > configure:6693: $? = 0 > > configure:6702: result: yes > > configure:6717: checking for X11 > > configure:6724: $PKG_CONFIG --exists --print-errors "x11" > > configure:6727: $? = 0 > > configure:6740: $PKG_CONFIG --exists --print-errors "x11" > > configure:6743: $? = 0 > > configure:6780: result: yes > > configure:6794: checking for a JRE home directory > > configure:6813: result: /usr/lib/jvm/java-7-openjdk/jre > > configure:6822: checking for a Java virtual machine > > configure:6965: result: /usr/lib/jvm/java-7-openjdk/jre/bin/java > > configure:6977: checking if java.util.jar.Pack200 is available > > class java.util.jar.Pack200 > > configure:7014: result: yes > > configure:7027: checking if java.net.CookieManager is available > > class java.net.CookieManager > > configure:7064: result: yes > > configure:7077: checking if java.net.HttpCookie is available > > class java.net.HttpCookie > > configure:7114: result: yes > > configure:7127: checking if java.net.CookieHandler is available > > class java.net.CookieHandler > > configure:7164: result: yes > > configure:7177: checking if sun.security.provider.X509Factory is available > > sun/applet/Test.java:4: warning: X509Factory is internal proprietary API and may be removed in a future release > > import sun.security.provider.X509Factory; > > ^ > > 1 warning > > class sun.security.provider.X509Factory > > configure:7214: result: yes > > configure:7227: checking if sun.security.util.SecurityConstants is available > > sun/applet/Test.java:4: warning: SecurityConstants is internal proprietary API and may be removed in a future release > > import sun.security.util.SecurityConstants; > > ^ > > 1 warning > > class sun.security.util.SecurityConstants > > configure:7264: result: yes > > configure:7277: checking if sun.security.util.HostnameChecker is available > > sun/applet/Test.java:4: warning: HostnameChecker is internal proprietary API and may be removed in a future release > > import sun.security.util.HostnameChecker; > > ^ > > 1 warning > > class sun.security.util.HostnameChecker > > configure:7314: result: yes > > configure:7327: checking if sun.security.x509.X500Name is available > > sun/applet/Test.java:4: warning: X500Name is internal proprietary API and may be removed in a future release > > import sun.security.x509.X500Name; > > ^ > > 1 warning > > class sun.security.x509.X500Name > > configure:7364: result: yes > > configure:7377: checking if sun.misc.BASE64Encoder is available > > sun/applet/Test.java:4: warning: BASE64Encoder is internal proprietary API and may be removed in a future release > > import sun.misc.BASE64Encoder; > > ^ > > 1 warning > > class sun.misc.BASE64Encoder > > configure:7414: result: yes > > configure:7427: checking if sun.misc.HexDumpEncoder is available > > sun/applet/Test.java:4: warning: HexDumpEncoder is internal proprietary API and may be removed in a future release > > import sun.misc.HexDumpEncoder; > > ^ > > 1 warning > > class sun.misc.HexDumpEncoder > > configure:7464: result: yes > > configure:7477: checking if sun.security.validator.ValidatorException is available > > sun/applet/Test.java:4: warning: ValidatorException is internal proprietary API and may be removed in a future release > > import sun.security.validator.ValidatorException; > > ^ > > 1 warning > > class sun.security.validator.ValidatorException > > configure:7514: result: yes > > configure:7527: checking if com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager is available > > class com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager > > configure:7564: result: yes > > configure:7577: checking if sun.awt.X11.XEmbeddedFrame is available > > sun/applet/Test.java:4: warning: XEmbeddedFrame is internal proprietary API and may be removed in a future release > > import sun.awt.X11.XEmbeddedFrame; > > ^ > > 1 warning > > Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/xawt/libmawt.so: libXtst.so.6: cannot open shared object file: No such file or directory > > at java.lang.ClassLoader$NativeLibrary.load(Native Method) > > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928) > > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825) > > at java.lang.Runtime.load0(Runtime.java:792) > > at java.lang.System.load(System.java:1059) > > at java.lang.ClassLoader$NativeLibrary.load(Native Method) > > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928) > > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1846) > > at java.lang.Runtime.loadLibrary0(Runtime.java:845) > > at java.lang.System.loadLibrary(System.java:1084) > > at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67) > > at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47) > > at java.security.AccessController.doPrivileged(Native Method) > > at java.awt.Toolkit.loadLibraries(Toolkit.java:1648) > > at java.awt.Toolkit.(Toolkit.java:1670) > > at java.awt.Component.(Component.java:595) > > at java.lang.Class.forName0(Native Method) > > at java.lang.Class.forName(Class.java:186) > > at sun.applet.Test.main(Test.java:11) > > configure:7614: result: no > > configure:7621: error: sun.awt.X11.XEmbeddedFrame not found. > > > > ## ---------------- ## > > ## Cache variables. ## > > ## ---------------- ## > > > > ac_cv_build=x86_64-unknown-linux-gnu > > ac_cv_c_compiler_gnu=yes > > ac_cv_cxx_compiler_gnu=yes > > ac_cv_env_CCC_set= > > ac_cv_env_CCC_value= > > ac_cv_env_CC_set= > > ac_cv_env_CC_value= > > ac_cv_env_CFLAGS_set=set > > ac_cv_env_CFLAGS_value='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2' > > ac_cv_env_CPPFLAGS_set= > > ac_cv_env_CPPFLAGS_value= > > ac_cv_env_CXXFLAGS_set=set > > ac_cv_env_CXXFLAGS_value='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2' > > ac_cv_env_CXX_set= > > ac_cv_env_CXX_value= > > ac_cv_env_GLIB_CFLAGS_set= > > ac_cv_env_GLIB_CFLAGS_value= > > ac_cv_env_GLIB_LIBS_set= > > ac_cv_env_GLIB_LIBS_value= > > ac_cv_env_GTK_CFLAGS_set= > > ac_cv_env_GTK_CFLAGS_value= > > ac_cv_env_GTK_LIBS_set= > > ac_cv_env_GTK_LIBS_value= > > ac_cv_env_LDFLAGS_set=set > > ac_cv_env_LDFLAGS_value=-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu > > ac_cv_env_LIBS_set= > > ac_cv_env_LIBS_value= > > ac_cv_env_MOZILLA_CFLAGS_set= > > ac_cv_env_MOZILLA_CFLAGS_value= > > ac_cv_env_MOZILLA_LIBS_set= > > ac_cv_env_MOZILLA_LIBS_value= > > ac_cv_env_PKG_CONFIG_LIBDIR_set= > > ac_cv_env_PKG_CONFIG_LIBDIR_value= > > ac_cv_env_PKG_CONFIG_PATH_set= > > ac_cv_env_PKG_CONFIG_PATH_value= > > ac_cv_env_PKG_CONFIG_set= > > ac_cv_env_PKG_CONFIG_value= > > ac_cv_env_X11_CFLAGS_set= > > ac_cv_env_X11_CFLAGS_value= > > ac_cv_env_X11_LIBS_set= > > ac_cv_env_X11_LIBS_value= > > ac_cv_env_build_alias_set= > > ac_cv_env_build_alias_value= > > ac_cv_env_host_alias_set= > > ac_cv_env_host_alias_value= > > ac_cv_env_target_alias_set= > > ac_cv_env_target_alias_value= > > ac_cv_host=x86_64-unknown-linux-gnu > > ac_cv_lib_z_main=yes > > ac_cv_objext=o > > ac_cv_path_JAVAC=/usr/lib/jvm/java-7-openjdk/bin/javac > > ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config > > ac_cv_path_ac_pt_ZIP=/usr/bin/zip > > ac_cv_path_install='/bin/install -c' > > ac_cv_path_mkdir=/bin/mkdir > > ac_cv_prog_AWK=gawk > > ac_cv_prog_ac_ct_CC=gcc > > ac_cv_prog_ac_ct_CXX=g++ > > ac_cv_prog_cc_c89= > > ac_cv_prog_cc_g=yes > > ac_cv_prog_cxx_g=yes > > ac_cv_prog_make_make_set=yes > > am_cv_CC_dependencies_compiler_type=none > > am_cv_CXX_dependencies_compiler_type=none > > am_cv_prog_tar_pax=gnutar > > it_cv_COM_SUN_NET_SSL_INTERNAL_SSL_X509EXTENDEDTRUSTMANAGER=yes > > it_cv_JAVA_NET_COOKIEHANDLER=yes > > it_cv_JAVA_NET_COOKIEMANAGER=yes > > it_cv_JAVA_NET_HTTPCOOKIE=yes > > it_cv_JAVA_UTIL_JAR_PACK200=yes > > it_cv_SUN_AWT_X11_XEMBEDDEDFRAME=no > > it_cv_SUN_MISC_BASE64ENCODER=yes > > it_cv_SUN_MISC_HEXDUMPENCODER=yes > > it_cv_SUN_SECURITY_PROVIDER_X509FACTORY=yes > > it_cv_SUN_SECURITY_UTIL_HOSTNAMECHECKER=yes > > it_cv_SUN_SECURITY_UTIL_SECURITYCONSTANTS=yes > > it_cv_SUN_SECURITY_VALIDATOR_VALIDATOREXCEPTION=yes > > it_cv_SUN_SECURITY_X509_X500NAME=yes > > it_cv_ecj=no > > it_cv_hardlink_src=yes > > it_cv_reflink=yes > > pkg_cv_GLIB_CFLAGS='-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include ' > > pkg_cv_GLIB_LIBS='-lglib-2.0 ' > > pkg_cv_GTK_CFLAGS='-pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15 ' > > pkg_cv_GTK_LIBS='-pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 ' > > pkg_cv_MOZILLA_CFLAGS='-DXP_UNIX -I/usr/include/npapi-sdk ' > > pkg_cv_MOZILLA_LIBS=' ' > > pkg_cv_X11_CFLAGS=' ' > > pkg_cv_X11_LIBS='-lX11 ' > > xulrunner_cv_collapsed_version=20000000 > > > > ## ----------------- ## > > ## Output variables. ## > > ## ----------------- ## > > > > ACLOCAL='${SHELL} /build/src/icedtea-web-1.1.5/missing --run aclocal-1.11' > > AMDEPBACKSLASH='\' > > AMDEP_FALSE='#' > > AMDEP_TRUE='' > > AMTAR='${SHELL} /build/src/icedtea-web-1.1.5/missing --run tar' > > ARCHFLAG='-m64' > > ARCH_PREFIX='' > > AUTOCONF='${SHELL} /build/src/icedtea-web-1.1.5/missing --run autoconf' > > AUTOHEADER='${SHELL} /build/src/icedtea-web-1.1.5/missing --run autoheader' > > AUTOMAKE='${SHELL} /build/src/icedtea-web-1.1.5/missing --run automake-1.11' > > AWK='gawk' > > BUILD_ARCH_DIR='amd64' > > CC='gcc' > > CCDEPMODE='depmode=none' > > CFLAGS='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2' > > CPPFLAGS='' > > CP_SUPPORTS_REFLINK_FALSE='#' > > CP_SUPPORTS_REFLINK_TRUE='' > > CXX='g++' > > CXXDEPMODE='depmode=none' > > CXXFLAGS='-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2' > > CYGPATH_W='echo' > > DEFS='' > > DEPDIR='.deps' > > ECHO_C='' > > ECHO_N='-n' > > ECHO_T='' > > ECJ='' > > ECJ_JAR='no' > > ENABLE_DOCS_FALSE='#' > > ENABLE_DOCS_TRUE='' > > ENABLE_PLUGIN_FALSE='#' > > ENABLE_PLUGIN_TRUE='' > > EXEEXT='' > > FULL_VERSION='1.1.5' > > GCJ='no' > > GLIB_CFLAGS='-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include ' > > GLIB_LIBS='-lglib-2.0 ' > > GTK_CFLAGS='-pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15 ' > > GTK_LIBS='-pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 ' > > HAS_ICEDTEA_REVISION_FALSE='' > > HAS_ICEDTEA_REVISION_TRUE='#' > > HAS_PKGVERSION_FALSE='' > > HAS_PKGVERSION_TRUE='#' > > HG='' > > ICEDTEA_REVISION='none' > > INSTALL_ARCH_DIR='amd64' > > INSTALL_DATA='${INSTALL} -m 644' > > INSTALL_PROGRAM='${INSTALL}' > > INSTALL_SCRIPT='${INSTALL}' > > INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' > > JAR='/usr/lib/jvm/java-7-openjdk/bin/jar' > > JAR_ACCEPTS_STDIN_LIST='' > > JAR_KNOWS_ATFILE='1' > > JAR_KNOWS_J_OPTIONS='1' > > JAVA='/usr/lib/jvm/java-7-openjdk/jre/bin/java' > > JAVAC='/usr/lib/jvm/java-7-openjdk/bin/javac' > > JAVADOC='/usr/lib/jvm/java-7-openjdk/bin/javadoc' > > JAVADOC_KNOWS_J_OPTIONS='yes' > > JAVADOC_SUPPORTS_J_OPTIONS_FALSE='#' > > JAVADOC_SUPPORTS_J_OPTIONS_TRUE='' > > JRE_ARCH_DIR='amd64' > > JUNIT_AVAILABLE='' > > JUNIT_JAR='' > > LDFLAGS='-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu' > > LIBOBJS='' > > LIBS='-lz ' > > LTLIBOBJS='' > > MAKEINFO='${SHELL} /build/src/icedtea-web-1.1.5/missing --run makeinfo' > > MKDIR_P='/bin/mkdir -p' > > MOZILLA_CFLAGS='-DXP_UNIX -I/usr/include/npapi-sdk ' > > MOZILLA_LIBS=' ' > > MOZILLA_VERSION_COLLAPSED='20000000' > > OBJEXT='o' > > PACKAGE='icedtea-web' > > PACKAGE_BUGREPORT='distro-pkg-dev at openjdk.java.net' > > PACKAGE_NAME='icedtea-web' > > PACKAGE_STRING='icedtea-web 1.1.5' > > PACKAGE_TARNAME='icedtea-web' > > PACKAGE_URL='http://icedtea.classpath.org/wiki/IcedTea-Web' > > PACKAGE_VERSION='1.1.5' > > PATH_SEPARATOR=':' > > PKGVERSION='none' > > PKG_CONFIG='/usr/bin/pkg-config' > > PKG_CONFIG_LIBDIR='' > > PKG_CONFIG_PATH='' > > RHINO_AVAILABLE='' > > RHINO_JAR='' > > SET_MAKE='' > > SHELL='/bin/sh' > > SRC_DIR_HARDLINKABLE_FALSE='#' > > SRC_DIR_HARDLINKABLE_TRUE='' > > STRIP='' > > SYSTEM_JDK_DIR='/usr/lib/jvm/java-7-openjdk' > > SYSTEM_JRE_DIR='/usr/lib/jvm/java-7-openjdk/jre' > > USING_ECJ='no' > > VERSION='1.1.5' > > VERSION_DEFS='-DHAVE_JAVA7' > > WITH_JUNIT_FALSE='' > > WITH_JUNIT_TRUE='' > > WITH_RHINO_FALSE='' > > WITH_RHINO_TRUE='' > > X11_CFLAGS=' ' > > X11_LIBS='-lX11 ' > > ZIP='/usr/bin/zip' > > abs_top_builddir='/build/src/icedtea-web-1.1.5' > > abs_top_srcdir='/build/src/icedtea-web-1.1.5' > > ac_ct_CC='gcc' > > ac_ct_CXX='g++' > > am__EXEEXT_FALSE='' > > am__EXEEXT_TRUE='' > > am__fastdepCC_FALSE='' > > am__fastdepCC_TRUE='#' > > am__fastdepCXX_FALSE='' > > am__fastdepCXX_TRUE='#' > > am__include='include' > > am__isrc='' > > am__leading_dot='.' > > am__quote='' > > am__tar='tar --format=posix -chf - "$$tardir"' > > am__untar='tar -xf -' > > bindir='${exec_prefix}/bin' > > build='x86_64-unknown-linux-gnu' > > build_alias='' > > build_cpu='x86_64' > > build_os='linux-gnu' > > build_vendor='unknown' > > datadir='${datarootdir}' > > datarootdir='/usr/share' > > docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' > > dvidir='${docdir}' > > exec_prefix='NONE' > > host='x86_64-unknown-linux-gnu' > > host_alias='' > > host_cpu='x86_64' > > host_os='linux-gnu' > > host_vendor='unknown' > > htmldir='${docdir}' > > includedir='${prefix}/include' > > infodir='${datarootdir}/info' > > install_sh='${SHELL} /build/src/icedtea-web-1.1.5/install-sh' > > libdir='${exec_prefix}/lib' > > libexecdir='${exec_prefix}/libexec' > > localedir='${datarootdir}/locale' > > localstatedir='${prefix}/var' > > mandir='${datarootdir}/man' > > mkdir_p='/bin/mkdir -p' > > oldincludedir='/usr/include' > > pdfdir='${docdir}' > > prefix='/usr/lib/jvm/java-7-openjdk' > > program_transform_name='s,x,x,' > > psdir='${docdir}' > > sbindir='${exec_prefix}/sbin' > > sharedstatedir='${prefix}/com' > > sysconfdir='${prefix}/etc' > > target_alias='' > > > > ## ----------- ## > > ## confdefs.h. ## > > ## ----------- ## > > > > /* confdefs.h */ > > #define PACKAGE_NAME "icedtea-web" > > #define PACKAGE_TARNAME "icedtea-web" > > #define PACKAGE_VERSION "1.1.5" > > #define PACKAGE_STRING "icedtea-web 1.1.5" > > #define PACKAGE_BUGREPORT "distro-pkg-dev at openjdk.java.net" > > #define PACKAGE_URL "http://icedtea.classpath.org/wiki/IcedTea-Web" > > #define PACKAGE "icedtea-web" > > #define VERSION "1.1.5" > > #define HAVE_LIBZ 1 > > > > configure: exit 1 > From dbhole at redhat.com Tue Mar 6 10:21:19 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 6 Mar 2012 13:21:19 -0500 Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120306184553.28cd7c67@laptop64.home> References: <20120305201751.GC24564@redhat.com> <20120305215314.63c71934@laptop64.home> <20120305211023.GD24564@redhat.com> <20120305211532.GF24564@redhat.com> <20120306070423.73714cb0@workstation64.home> <20120306165836.GH27555@redhat.com> <20120306181012.0097eb5b@laptop64.home> <20120306172501.GI27555@redhat.com> <20120306184553.28cd7c67@laptop64.home> Message-ID: <20120306182119.GK27555@redhat.com> * Andreas Radke [2012-03-06 12:46]: > Am Tue, 6 Mar 2012 12:25:02 -0500 > schrieb Deepak Bhole : > > > Ah, here is the problem: > > > > ... > > ... > > > > import sun.awt.X11.XEmbeddedFrame; > > ^ > > 1 warning > > Exception in thread "main" > > java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/xawt/libmawt.so: > > libXtst.so.6: cannot open shared object file: No such file or > > directory > > > > ... > > ... > > > > > > the configure script cannot compile the test code successfully due to > > the above error and therefore things XEmbeddedFrame is not there. > > After fixing the above issue, it should work again. > > > > Cheers, > > Deepak > > Thanks for pointing me there. Our optional dependency on gtk2 doesn't > pull in automatically libxtst in our build environment. This is fixed > now here and icedtea-web passes now configure. > Great, no problem! Cheers, Deepak > -Andy From bugzilla-daemon at icedtea.classpath.org Tue Mar 6 13:40:08 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 06 Mar 2012 21:40:08 +0000 Subject: [Bug 840] ClassLoader.getResourceAsStream returning null where sunjdk returns the resource In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=840 StefG changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |stefg.bz at gmail.com --- Comment #5 from StefG 2012-03-06 21:40:08 UTC --- This bug happens here : http://www.minecraft.net/classic/play I'm using ubuntu-11.10-desktop-amd64 java version "1.6.0_23" OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2) OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From omajid at redhat.com Tue Mar 6 14:11:59 2012 From: omajid at redhat.com (Omair Majid) Date: Tue, 06 Mar 2012 17:11:59 -0500 Subject: [rfc][icedtea-web] extended reflection tests In-Reply-To: <4F54B7A6.70102@redhat.com> References: <4F54B7A6.70102@redhat.com> Message-ID: <4F568BAF.2060402@redhat.com> On 03/05/2012 07:55 AM, Jiri Vanek wrote: > Hi! Few more test to reflection > > What I'm surprised is, that unsigned application can use reflection at > all. I tough they can not.... So the existing test which was testing that unsigned applications can not use reflection was failing? I don't remember that being the case, but perhaps I am mistaken. > This text is expecting them unsigned ones using reflection as correct as > it is current behaviour. By "this test" you mean the ones you attached? Or the existing one(s)? Thanks, Omair From jvanek at redhat.com Tue Mar 6 23:58:34 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 07 Mar 2012 08:58:34 +0100 Subject: [rfc][icedtea-web] extended reflection tests In-Reply-To: <4F568BAF.2060402@redhat.com> References: <4F54B7A6.70102@redhat.com> <4F568BAF.2060402@redhat.com> Message-ID: <4F57152A.1020708@redhat.com> On 03/06/2012 11:11 PM, Omair Majid wrote: > On 03/05/2012 07:55 AM, Jiri Vanek wrote: >> Hi! Few more test to reflection >> >> What I'm surprised is, that unsigned application can use reflection at >> all. I tough they can not.... > > So the existing test which was testing that unsigned applications can > not use reflection was failing? I don't remember that being the case, > but perhaps I am mistaken. Till now there was just one test with reflection, unsigned app which was trying to access sun.security* restricted package so it should fail anyway. > >> This text is expecting them unsigned ones using reflection as correct as >> it is current behaviour. > > By "this test" you mean the ones you attached? Or the existing one(s)? The new ones (especially unsigned entering self package and javax.jnlp.*) attached. in last two emails. Thanx for checking! J. > > Thanks, > Omair From jvanek at redhat.com Wed Mar 7 00:09:51 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 07 Mar 2012 09:09:51 +0100 Subject: Fwd: today icedtea-web report In-Reply-To: <1201491826.01331097747901.JavaMail.jvanek@redhat.com> References: <1201491826.01331097747901.JavaMail.jvanek@redhat.com> Message-ID: <4F5717CF.3070303@redhat.com> Just fyi - today's morning icedte-web daily report have this result for all branches with tests: Regressions Unit tests: Reproducers tests: Rhino tests: Newly falling tests: 0 Newly falling tests: 0 Newly falling tests: 0 Newly fixed tests: 0 Newly fixed tests: 12 Newly fixed tests: 0 New tests: 0 AppletTest New tests: 0 Just removed test: 0 cacheIsWorkingTest Just removed test: 0 cacheIsWorkingTestSigned clearCacheUnsucessfully coruptAndRunCache1 coruptAndRunCache1Signed coruptAndRunCache2 coruptAndRunCache2Signed testAlreadyLoadedCached1 testAlreadyLoadedCached11 testAlreadyLoadedCached2 testAlreadyLoadedCached21 New tests: 0 Just removed test: 0 Yesterday I have done nothing more then export dispaly for test running, Fixed applet test is clear - it is raising window so it was not able to run properly. But the cache ones are more interesting - I have already tried to track why they are falling on my testing machine(and not on my own environment or from ide), but I was not successful (well I have not tried hard enough...). Now I know javaws -Xcelarcache is not workking without display without -headless... (witho -headless works fine) Just fyi.. as I was surprised.... Best regards and more green morning (more green like http://10.34.2.200/icedtea-web-dailyreport/ICWDR_1331097037/tests.build/index_reproducers.html O:) J. From bugzilla-daemon at icedtea.classpath.org Wed Mar 7 02:06:38 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 07 Mar 2012 10:06:38 +0000 Subject: [Bug 892] New: Can't start GeoGebra 3D Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=892 Bug #: 892 Summary: Can't start GeoGebra 3D Classification: Unclassified Product: IcedTea Version: 8-hg Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: ermate at yahoo.es # # A fatal error has been detected by the Java Runtime Environment: # # SIGILL (0x4) at pc=0xb3ad97c9, pid=2334, tid=2296798064 # # JRE version: 6.0_18-b18 # Java VM: OpenJDK Server VM (14.0-b16 mixed mode linux-x86 ) # Derivative: IcedTea6 1.8.13 # Distribution: Debian GNU/Linux 6.0.3 (squeeze), package 6b18-1.8.13-0+squeeze1 # Problematic frame: # j java.util.TaskQueue.getMin()Ljava/util/TimerTask;+0 # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # --------------- T H R E A D --------------- Current thread (0x0a452c00): JavaThread "Timer-1" [_thread_in_Java, id=2358, stack(0x88e15000,0x88e66000)] siginfo:si_signo=SIGILL: si_errno=0, si_code=2 (ILL_ILLOPN), si_addr=0xb3ad97c9 Registers: EAX=0x93efa358, EBX=0x8c3009f0, ECX=0x00000000, EDX=0x93efa148 ESP=0x88e64e44, EBP=0x88e64e64, ESI=0x8c3009da, EDI=0x000000b0 EIP=0xb3ad97c9, CR2=0x00000000, EFLAGS=0x00010246 Top of Stack: (sp=0x88e64e44) 0x88e64e44: 88e64e44 8c3009d4 88e64e6c 8c3013e8 0x88e64e54: 00000000 8c3009f0 00000000 88e64e6c 0x88e64e64: 88e64ea0 b3acafc7 93efa138 00000001 0x88e64e74: 00000000 00000003 93efa138 88e64e70 0x88e64e84: 8c302329 88e64ed0 8c3026c0 00000000 0x88e64e94: 8c302450 88e64e6c 88e64ed0 88e64ef4 0x88e64ea4: b3acae61 00000000 00000000 93efa380 0x88e64eb4: ec991e30 00000135 ec991e20 00000135 Instructions: (pc=0xb3ad97c9) 0xb3ad97b9: 08 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0xb3ad97c9: f0 d4 55 85 03 40 00 00 00 00 00 00 00 80 1e c0 Stack: [0x88e15000,0x88e66000], sp=0x88e64e44, free space=319k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) j java.util.TaskQueue.getMin()Ljava/util/TimerTask;+0 j java.util.TimerThread.mainLoop()V+53 j java.util.TimerThread.run()V+1 v ~StubRoutines::call_stub V [libjvm.so+0x33cfd5] V [libjvm.so+0x4ab589] V [libjvm.so+0x33be6f] V [libjvm.so+0x33ca2a] V [libjvm.so+0x33cbba] V [libjvm.so+0x386321] V [libjvm.so+0x590dbc] V [libjvm.so+0x590e7a] V [libjvm.so+0x4b15b1] C [libpthread.so.0+0x5955] --------------- P R O C E S S --------------- Java Threads: ( => current thread ) 0x09fbdc00 JavaThread "MPReduce" [_thread_in_Java, id=2368, stack(0x8a290000,0x8a2e1000)] 0x89e81800 JavaThread "TimerQueue" daemon [_thread_blocked, id=2367, stack(0x8a35f000,0x8a3b0000)] 0x09eee000 JavaThread "DestroyJavaVM" [_thread_blocked, id=2335, stack(0xb6b45000,0xb6b96000)] 0x0a174c00 JavaThread "Thread-6" [_thread_blocked, id=2360, stack(0x8a56b000,0x8a5bc000)] =>0x0a452c00 JavaThread "Timer-1" [_thread_in_Java, id=2358, stack(0x88e15000,0x88e66000)] 0x0a290400 JavaThread "Image Fetcher 2" daemon [_thread_blocked, id=2357, stack(0x896af000,0x89700000)] 0x0a251800 JavaThread "Image Fetcher 3" daemon [_thread_blocked, id=2356, stack(0x89848000,0x89899000)] 0x0a1d3800 JavaThread "Timer-0" daemon [_thread_blocked, id=2355, stack(0x8a5bc000,0x8a60d000)] 0x8ace7800 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=2354, stack(0x8a60d000,0x8a65e000)] 0x8acf8400 JavaThread "AWT-Shutdown" [_thread_blocked, id=2353, stack(0x8a6af000,0x8a700000)] 0x0a0f5800 JavaThread "Image Fetcher 1" daemon [_thread_blocked, id=2352, stack(0x8a65e000,0x8a6af000)] 0x0a0f2000 JavaThread "AWT-XAWT" daemon [_thread_in_native, id=2347, stack(0x8a82b000,0x8a87c000)] 0x8ac93400 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=2346, stack(0x8a94b000,0x8a99c000)] 0x8b516800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=2344, stack(0x8af82000,0x8afd3000)] 0x8b514400 JavaThread "CompilerThread1" daemon [_thread_blocked, id=2343, stack(0x8afd3000,0x8b054000)] 0x8b512800 JavaThread "CompilerThread0" daemon [_thread_in_native, id=2342, stack(0x8b054000,0x8b0d5000)] 0x8b511000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2341, stack(0x8b0d5000,0x8b126000)] 0x8b500800 JavaThread "Finalizer" daemon [_thread_blocked, id=2340, stack(0x8b615000,0x8b666000)] 0x09f78c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=2339, stack(0x8b29b000,0x8b2ec000)] Other Threads: 0x09f74400 VMThread [stack: 0x8b2ec000,0x8b36d000] [id=2338] 0x8b518800 WatcherThread [stack: 0x8af01000,0x8af82000] [id=2345] VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: None Heap PSYoungGen total 27840K, used 7512K [0xb0120000, 0xb3800000, 0xb3a00000) eden space 23552K, 18% used [0xb0120000,0xb054ae28,0xb1820000) from space 4288K, 75% used [0xb1820000,0xb1b4b3c0,0xb1c50000) to space 4544K, 0% used [0xb3390000,0xb3390000,0xb3800000) PSOldGen total 29184K, used 15378K [0x93a00000, 0x95680000, 0xb0120000) object space 29184K, 52% used [0x93a00000,0x94904b68,0x95680000) PSPermGen total 42368K, used 27872K [0x8ba00000, 0x8e360000, 0x93a00000) object space 42368K, 65% used [0x8ba00000,0x8d5383b8,0x8e360000) Dynamic libraries: 08048000-08050000 r-xp 00000000 08:05 1186015 /usr/lib/jvm/java-6-openjdk/jre/bin/java 08050000-08051000 rw-p 00008000 08:05 1186015 /usr/lib/jvm/java-6-openjdk/jre/bin/java 09ee8000-0c4b1000 rw-p 00000000 00:00 0 [heap] 88e15000-88e18000 ---p 00000000 00:00 0 88e18000-88e66000 rw-p 00000000 00:00 0 88e66000-890eb000 r-xp 00000000 08:05 1182271 /usr/lib/dri/i915_dri.so 890eb000-890f1000 rw-p 00285000 08:05 1182271 /usr/lib/dri/i915_dri.so 890f1000-89100000 rw-p 00000000 00:00 0 89100000-891fa000 rw-p 00000000 00:00 0 891fa000-89200000 ---p 00000000 00:00 0 89300000-893da000 rw-p 00000000 00:00 0 893da000-89400000 ---p 00000000 00:00 0 89420000-894ff000 r-xp 00000000 08:05 1186352 /usr/lib/jni/libjogl.so 894ff000-89500000 rw-p 000df000 08:05 1186352 /usr/lib/jni/libjogl.so 89500000-895dc000 rw-p 00000000 00:00 0 895dc000-89600000 ---p 00000000 00:00 0 8964a000-896a4000 r-xp 00000000 08:05 1184061 /usr/lib/libGL.so.1.2 896a4000-896ad000 rwxp 00059000 08:05 1184061 /usr/lib/libGL.so.1.2 896ad000-896af000 rwxp 00000000 00:00 0 896af000-896b2000 ---p 00000000 00:00 0 896b2000-89700000 rw-p 00000000 00:00 0 89700000-897c6000 rw-p 00000000 00:00 0 897c6000-89800000 ---p 00000000 00:00 0 89811000-89835000 r-xp 00000000 08:05 1184425 /usr/lib/libexpat.so.1.5.2 89835000-89837000 rw-p 00023000 08:05 1184425 /usr/lib/libexpat.so.1.5.2 89848000-8984b000 ---p 00000000 00:00 0 8984b000-89899000 rw-p 00000000 00:00 0 89908000-89a00000 rw-s 00000000 00:04 1146897 /SYSV00000000 (deleted) 89a00000-89afc000 rw-p 00000000 00:00 0 89afc000-89b00000 ---p 00000000 00:00 0 89b00000-89b29000 rw-p 00000000 00:00 0 89b29000-89c00000 ---p 00000000 00:00 0 89c00000-89cc3000 rw-p 00000000 00:00 0 89cc3000-89d00000 ---p 00000000 00:00 0 89d00000-89dc4000 rw-p 00000000 00:00 0 89dc4000-89e00000 ---p 00000000 00:00 0 89e00000-89efa000 rw-p 00000000 00:00 0 89efa000-89f00000 ---p 00000000 00:00 0 89f09000-89f12000 r-xp 00000000 08:05 1183206 /usr/lib/libdrm.so.2.4.0 89f12000-89f13000 rw-p 00008000 08:05 1183206 /usr/lib/libdrm.so.2.4.0 8a000000-8a0d7000 rw-p 00000000 00:00 0 8a0d7000-8a100000 ---p 00000000 00:00 0 8a290000-8a293000 ---p 00000000 00:00 0 8a293000-8a2e1000 rw-p 00000000 00:00 0 8a2e1000-8a2e4000 rwxp 00000000 00:00 0 8a2e4000-8a332000 rw-p 00000000 00:00 0 8a35f000-8a362000 ---p 00000000 00:00 0 8a362000-8a3b0000 rw-p 00000000 00:00 0 8a3b0000-8a56b000 rw-s 00000000 00:04 1081362 /SYSV00000000 (deleted) 8a56b000-8a56e000 ---p 00000000 00:00 0 8a56e000-8a5bc000 rw-p 00000000 00:00 0 8a5bc000-8a5bf000 ---p 00000000 00:00 0 8a5bf000-8a60d000 rw-p 00000000 00:00 0 8a60d000-8a610000 ---p 00000000 00:00 0 8a610000-8a65e000 rw-p 00000000 00:00 0 8a65e000-8a661000 ---p 00000000 00:00 0 8a661000-8a6af000 rw-p 00000000 00:00 0 8a6af000-8a6b2000 ---p 00000000 00:00 0 8a6b2000-8a700000 rw-p 00000000 00:00 0 8a700000-8a7fe000 rw-p 00000000 00:00 0 8a7fe000-8a800000 ---p 00000000 00:00 0 8a805000-8a80e000 r-xp 00000000 08:05 1183243 /usr/lib/libdrm_intel.so.1.0.0 8a80e000-8a80f000 rw-p 00008000 08:05 1183243 /usr/lib/libdrm_intel.so.1.0.0 8a80f000-8a816000 r--s 00000000 08:05 1186864 /usr/lib/gconv/gconv-modules.cache 8a816000-8a82a000 r-xp 00000000 08:05 1186031 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libnet.so 8a82a000-8a82b000 rw-p 00013000 08:05 1186031 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libnet.so 8a82b000-8a82e000 ---p 00000000 00:00 0 8a82e000-8a87c000 rw-p 00000000 00:00 0 8a87c000-8a87d000 r--s 00000000 08:05 286931 /var/cache/fontconfig/c05880de57d1f5e948fdfacc138775d9-le32d4.cache-3 8a87d000-8a883000 r--s 00000000 08:05 286940 /var/cache/fontconfig/945677eb7aeaf62f1d50efc3fb3ec7d8-le32d4.cache-3 8a883000-8a885000 r--s 00000000 08:05 286939 /var/cache/fontconfig/ea47318ec9849e1a71e80a5d69d13859-le32d4.cache-3 8a885000-8a886000 r--s 00000000 08:05 286932 /var/cache/fontconfig/e3fa16a14183b06aa45b3e009278fd14-le32d4.cache-3 8a886000-8a888000 r--s 00000000 08:05 286928 /var/cache/fontconfig/b5ea634b0fb353b8ea17632d1f9ef766-le32d4.cache-3 8a888000-8a88c000 r--s 00000000 08:05 289281 /var/cache/fontconfig/926e794c3d5e5dffcaf2fa83ef8d36c2-le32d4.cache-3 8a88c000-8a88f000 r--s 00000000 08:05 286927 /var/cache/fontconfig/6eb3985aa4124903f6ff08ba781cd364-le32d4.cache-3 8a88f000-8a896000 r--s 00000000 08:05 286924 /var/cache/fontconfig/6d41288fd70b0be22e8c3a91e032eec0-le32d4.cache-3 8a896000-8a897000 r--s 00000000 08:05 286936 /var/cache/fontconfig/4794a0821666d79190d59a36cb4f44b5-le32d4.cache-3 8a897000-8a89f000 r--s 00000000 08:05 286942 /var/cache/fontconfig/d52a8644073d54c13679302ca1180695-le32d4.cache-3 8a8a1000-8a8a2000 r-xp 00000000 08:05 1186350 /usr/lib/jni/libjogl_awt.so 8a8a2000-8a8a3000 rw-p 00000000 08:05 1186350 /usr/lib/jni/libjogl_awt.so 8a8c5000-8a8c6000 r--s 00000000 08:05 286931 /var/cache/fontconfig/c05880de57d1f5e948fdfacc138775d9-le32d4.cache-3 8a8c6000-8a8cc000 r--s 00000000 08:05 286940 /var/cache/fontconfig/945677eb7aeaf62f1d50efc3fb3ec7d8-le32d4.cache-3 8a8cc000-8a8ce000 r--s 00000000 08:05 286939 /var/cache/fontconfig/ea47318ec9849e1a71e80a5d69d13859-le32d4.cache-3 8a8ce000-8a8cf000 r--s 00000000 08:05 286932 /var/cache/fontconfig/e3fa16a14183b06aa45b3e009278fd14-le32d4.cache-3 8a8cf000-8a8d1000 r--s 00000000 08:05 286928 /var/cache/fontconfig/b5ea634b0fb353b8ea17632d1f9ef766-le32d4.cache-3 8a8d1000-8a8d5000 r--s 00000000 08:05 289281 /var/cache/fontconfig/926e794c3d5e5dffcaf2fa83ef8d36c2-le32d4.cache-3 8a8d5000-8a8d8000 r--s 00000000 08:05 286927 /var/cache/fontconfig/6eb3985aa4124903f6ff08ba781cd364-le32d4.cache-3 8a8d8000-8a8df000 r--s 00000000 08:05 286924 /var/cache/fontconfig/6d41288fd70b0be22e8c3a91e032eec0-le32d4.cache-3 8a8df000-8a8e0000 r--s 00000000 08:05 286936 /var/cache/fontconfig/4794a0821666d79190d59a36cb4f44b5-le32d4.cache-3 8a8e0000-8a8e8000 r--s 00000000 08:05 286942 /var/cache/fontconfig/d52a8644073d54c13679302ca1180695-le32d4.cache-3 8a8e8000-8a8f6000 r--s 00000000 08:05 289279 /var/cache/fontconfig/e13b20fdb08344e0e664864cc2ede53d-le32d4.cache-3 8a8f6000-8a8f7000 r-xp 00000000 08:05 1186041 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libjawt.so 8a8f7000-8a8f8000 rw-p 00000000 08:05 1186041 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libjawt.so 8a8f8000-8a8fc000 r-xp 00000000 08:05 1184166 /usr/lib/libXxf86vm.so.1.0.0 8a8fc000-8a8fd000 rw-p 00003000 08:05 1184166 /usr/lib/libXxf86vm.so.1.0.0 8a8fd000-8a90b000 r--s 00000000 08:05 289279 /var/cache/fontconfig/e13b20fdb08344e0e664864cc2ede53d-le32d4.cache-3 8a90c000-8a90e000 r-xp 00000000 08:05 1184126 /usr/lib/libXdamage.so.1.1.0 8a90e000-8a90f000 rw-p 00001000 08:05 1184126 /usr/lib/libXdamage.so.1.1.0 8a91e000-8a922000 r-xp 00000000 08:05 1184132 /usr/lib/libXfixes.so.3.1.0 8a922000-8a923000 rw-p 00003000 08:05 1184132 /usr/lib/libXfixes.so.3.1.0 8a923000-8a92b000 r-xp 00000000 08:05 1184124 /usr/lib/libXcursor.so.1.0.2 8a92b000-8a92c000 rw-p 00007000 08:05 1184124 /usr/lib/libXcursor.so.1.0.2 8a932000-8a935000 r--s 00077000 08:05 1185967 /usr/lib/jvm/java-6-openjdk/jre/lib/ext/localedata.jar 8a935000-8a93c000 r-xp 00000000 08:05 1186052 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libnio.so 8a93c000-8a93d000 rw-p 00006000 08:05 1186052 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libnio.so 8a93d000-8a94b000 r--s 00000000 08:05 289175 /var/cache/fontconfig/865f88548240fee46819705c6468c165-le32d4.cache-3 8a94b000-8a94e000 ---p 00000000 00:00 0 8a94e000-8a99c000 rw-p 00000000 00:00 0 8a99c000-8a9b9000 r-xp 00000000 08:05 393345 /lib/libgcc_s.so.1 8a9b9000-8a9ba000 rw-p 0001c000 08:05 393345 /lib/libgcc_s.so.1 8a9ba000-8aa2e000 r-xp 00000000 08:05 1179817 /usr/lib/libfreetype.so.6.6.0 8aa2e000-8aa32000 rw-p 00073000 08:05 1179817 /usr/lib/libfreetype.so.6.6.0 8aa32000-8aa76000 r-xp 00000000 08:05 1186032 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libfontmanager.so 8aa76000-8aa78000 rw-p 00043000 08:05 1186032 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libfontmanager.so 8aa78000-8aa7d000 rw-p 00000000 00:00 0 8aa7d000-8aa81000 r-xp 00000000 08:05 1184128 /usr/lib/libXdmcp.so.6.0.0 8aa81000-8aa82000 rw-p 00003000 08:05 1184128 /usr/lib/libXdmcp.so.6.0.0 8aa82000-8aa9a000 r-xp 00000000 08:05 1185415 /usr/lib/libxcb.so.1.1.0 8aa9a000-8aa9b000 rw-p 00017000 08:05 1185415 /usr/lib/libxcb.so.1.1.0 8aa9b000-8abb4000 r-xp 00000000 08:05 1184113 /usr/lib/libX11.so.6.3.0 8abb4000-8abb8000 rw-p 00118000 08:05 1184113 /usr/lib/libX11.so.6.3.0 8abb8000-8abfd000 r-xp 00000000 08:05 1186141 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/xawt/libmawt.so 8abfd000-8abff000 rw-p 00044000 08:05 1186141 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/xawt/libmawt.so 8abff000-8ac00000 rw-p 00000000 00:00 0 8ac00000-8acf9000 rw-p 00000000 00:00 0 8acf9000-8ad00000 ---p 00000000 00:00 0 8ad01000-8ad0d000 r-xp 00000000 08:05 1184138 /usr/lib/libXi.so.6.1.0 8ad0d000-8ad0e000 rw-p 0000c000 08:05 1184138 /usr/lib/libXi.so.6.1.0 8ad0e000-8ad16000 r-xp 00000000 08:05 1184150 /usr/lib/libXrender.so.1.3.0 8ad16000-8ad17000 rw-p 00007000 08:05 1184150 /usr/lib/libXrender.so.1.3.0 8ad17000-8ad25000 r-xp 00000000 08:05 1184130 /usr/lib/libXext.so.6.4.0 8ad25000-8ad26000 rw-p 0000d000 08:05 1184130 /usr/lib/libXext.so.6.4.0 8ad27000-8ad28000 r-xp 00000000 08:05 1186351 /usr/lib/jni/libgluegen-rt.so 8ad28000-8ad29000 rw-p 00000000 08:05 1186351 /usr/lib/jni/libgluegen-rt.so 8ad29000-8ad37000 r--s 00000000 08:05 289175 /var/cache/fontconfig/865f88548240fee46819705c6468c165-le32d4.cache-3 8ad37000-8adbc000 r-xp 00000000 08:05 1186037 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libawt.so 8adbc000-8adc3000 rw-p 00084000 08:05 1186037 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libawt.so 8adc3000-8ade7000 rw-p 00000000 00:00 0 8ade7000-8adf3000 r--s 0010f000 08:06 2623224 /home/programas/GeoGebra5.2/jogl.jar 8adf3000-8ae97000 r--s 00bef000 08:06 2623227 /home/programas/GeoGebra5.2/jython.jar 8ae97000-8ae9f000 r--s 00085000 08:06 2623220 /home/programas/GeoGebra5.2/jlatexmath.jar 8ae9f000-8aea4000 r--s 00028000 08:06 2623217 /home/programas/GeoGebra5.2/geogebra_usb.jar 8aea4000-8aea9000 r--s 00074000 08:06 2623213 /home/programas/GeoGebra5.2/geogebra_javascript.jar 8aea9000-8aeaf000 r--s 00056000 08:06 2623208 /home/programas/GeoGebra5.2/geogebra_3d.jar 8aeaf000-8aeb6000 r--s 00061000 08:06 2623209 /home/programas/GeoGebra5.2/geogebra_algos.jar 8aeb6000-8aec3000 r--s 001e4000 08:06 2623210 /home/programas/GeoGebra5.2/geogebra_cas.jar 8aec3000-8aeca000 r--s 00062000 08:06 2623211 /home/programas/GeoGebra5.2/geogebra_export.jar 8aeca000-8aed5000 r--s 00154000 08:06 2623216 /home/programas/GeoGebra5.2/geogebra_properties.jar 8aed5000-8aee6000 r--s 0010c000 08:06 2623212 /home/programas/GeoGebra5.2/geogebra_gui.jar 8aee6000-8af01000 r--s 00197000 08:06 2623214 /home/programas/GeoGebra5.2/geogebra_main.jar 8af01000-8af02000 ---p 00000000 00:00 0 8af02000-8af82000 rw-p 00000000 00:00 0 8af82000-8af85000 ---p 00000000 00:00 0 8af85000-8afd3000 rw-p 00000000 00:00 0 8afd3000-8afd6000 ---p 00000000 00:00 0 8afd6000-8b054000 rw-p 00000000 00:00 0 8b054000-8b057000 ---p 00000000 00:00 0 8b057000-8b0d5000 rw-p 00000000 00:00 0 8b0d5000-8b0d8000 ---p 00000000 00:00 0 8b0d8000-8b126000 rw-p 00000000 00:00 0 8b126000-8b29b000 r--p 00000000 08:05 1179663 /usr/lib/locale/locale-archive 8b29b000-8b29e000 ---p 00000000 00:00 0 8b29e000-8b2ec000 rw-p 00000000 00:00 0 8b2ec000-8b2ed000 ---p 00000000 00:00 0 8b2ed000-8b36d000 rw-p 00000000 00:00 0 8b36d000-8b500000 r--s 0392f000 08:05 1186021 /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar 8b500000-8b5eb000 rw-p 00000000 00:00 0 8b5eb000-8b600000 ---p 00000000 00:00 0 8b600000-8b602000 r-xp 00000000 08:05 1184117 /usr/lib/libXau.so.6.0.0 8b602000-8b603000 rw-p 00001000 08:05 1184117 /usr/lib/libXau.so.6.0.0 8b603000-8b607000 r-xp 00000000 08:05 1184156 /usr/lib/libXtst.so.6.1.0 8b607000-8b608000 rw-p 00004000 08:05 1184156 /usr/lib/libXtst.so.6.1.0 8b608000-8b60f000 r--s 00102000 08:05 1185946 /usr/lib/jvm/java-6-openjdk/jre/lib/resources.jar 8b60f000-8b612000 r--s 0007d000 08:05 1185950 /usr/lib/jvm/java-6-openjdk/jre/lib/jsse.jar 8b612000-8b615000 r--s 0000f000 08:05 1185965 /usr/lib/jvm/java-6-openjdk/jre/lib/ext/pulse-java.jar 8b615000-8b618000 ---p 00000000 00:00 0 8b618000-8b699000 rw-p 00000000 00:00 0 8b699000-8b69a000 ---p 00000000 00:00 0 8b69a000-8b71a000 rw-p 00000000 00:00 0 8b71a000-8b71b000 ---p 00000000 00:00 0 8b71b000-8b79b000 rw-p 00000000 00:00 0 8b79b000-8b7b0000 rwxp 00000000 00:00 0 8b7b0000-8b7db000 rwxp 00000000 00:00 0 8b7db000-8b7ea000 rwxp 00000000 00:00 0 8b7ea000-8b8bf000 rwxp 00000000 00:00 0 8b8bf000-8b8d4000 rwxp 00000000 00:00 0 8b8d4000-8b8ff000 rwxp 00000000 00:00 0 8b8ff000-8b90e000 rwxp 00000000 00:00 0 8b90e000-8b9e2000 rwxp 00000000 00:00 0 8b9e2000-8b9fe000 rwxp 00000000 00:00 0 8b9fe000-8b9ff000 rwxp 00000000 00:00 0 8b9ff000-8e360000 rwxp 00000000 00:00 0 8e360000-93a00000 rwxp 00000000 00:00 0 93a00000-95680000 rwxp 00000000 00:00 0 95680000-b0120000 rwxp 00000000 00:00 0 b0120000-b3800000 rwxp 00000000 00:00 0 b3800000-b3a00000 rwxp 00000000 00:00 0 b3a00000-b3a08000 r--s 00066000 08:05 287299 /usr/share/java/gnome-java-bridge.jar b3a08000-b3a11000 rwxp 00000000 00:00 0 b3a11000-b3ac8000 rwxp 00000000 00:00 0 b3ac8000-b3d08000 rwxp 00000000 00:00 0 b3d08000-b6ac8000 rwxp 00000000 00:00 0 b6ac8000-b6ad2000 r-xp 00000000 08:05 393373 /lib/i686/cmov/libnss_files-2.11.3.so b6ad2000-b6ad3000 r--p 00009000 08:05 393373 /lib/i686/cmov/libnss_files-2.11.3.so b6ad3000-b6ad4000 rw-p 0000a000 08:05 393373 /lib/i686/cmov/libnss_files-2.11.3.so b6ad4000-b6adc000 r-xp 00000000 08:05 393362 /lib/i686/cmov/libnss_nis-2.11.3.so b6adc000-b6add000 r--p 00008000 08:05 393362 /lib/i686/cmov/libnss_nis-2.11.3.so b6add000-b6ade000 rw-p 00009000 08:05 393362 /lib/i686/cmov/libnss_nis-2.11.3.so b6ade000-b6ae0000 r--s 0002d000 08:06 2623221 /home/programas/GeoGebra5.2/jlm_cyrillic.jar b6ae0000-b6ae6000 r-xp 00000000 08:05 1186024 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libzip.so b6ae6000-b6ae7000 rw-p 00006000 08:05 1186024 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libzip.so b6ae7000-b6aef000 rw-s 00000000 08:05 1452440 /tmp/hsperfdata_departamento/2334 b6aef000-b6b02000 r-xp 00000000 08:05 393370 /lib/i686/cmov/libnsl-2.11.3.so b6b02000-b6b03000 r--p 00012000 08:05 393370 /lib/i686/cmov/libnsl-2.11.3.so b6b03000-b6b04000 rw-p 00013000 08:05 393370 /lib/i686/cmov/libnsl-2.11.3.so b6b04000-b6b06000 rw-p 00000000 00:00 0 b6b06000-b6b07000 r--s 00005000 08:06 2623219 /home/programas/GeoGebra5.2/gluegen-rt.jar b6b07000-b6b0d000 r-xp 00000000 08:05 393411 /lib/i686/cmov/libnss_compat-2.11.3.so b6b0d000-b6b0e000 r--p 00006000 08:05 393411 /lib/i686/cmov/libnss_compat-2.11.3.so b6b0e000-b6b0f000 rw-p 00007000 08:05 393411 /lib/i686/cmov/libnss_compat-2.11.3.so b6b0f000-b6b16000 r-xp 00000000 08:05 1186030 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/native_threads/libhpi.so b6b16000-b6b17000 rw-p 00006000 08:05 1186030 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/native_threads/libhpi.so b6b17000-b6b3a000 r-xp 00000000 08:05 1186046 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libjava.so b6b3a000-b6b3c000 rw-p 00023000 08:05 1186046 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libjava.so b6b3c000-b6b43000 r-xp 00000000 08:05 393408 /lib/i686/cmov/librt-2.11.3.so b6b43000-b6b44000 r--p 00006000 08:05 393408 /lib/i686/cmov/librt-2.11.3.so b6b44000-b6b45000 rw-p 00007000 08:05 393408 /lib/i686/cmov/librt-2.11.3.so b6b45000-b6b48000 ---p 00000000 00:00 0 b6b48000-b6b96000 rw-p 00000000 00:00 0 b6b96000-b6bba000 r-xp 00000000 08:05 393368 /lib/i686/cmov/libm-2.11.3.so b6bba000-b6bbb000 r--p 00023000 08:05 393368 /lib/i686/cmov/libm-2.11.3.so b6bbb000-b6bbc000 rw-p 00024000 08:05 393368 /lib/i686/cmov/libm-2.11.3.so b6bbc000-b71ff000 r-xp 00000000 08:05 1186049 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/server/libjvm.so b71ff000-b724f000 rw-p 00642000 08:05 1186049 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/server/libjvm.so b724f000-b7673000 rw-p 00000000 00:00 0 b7673000-b77b3000 r-xp 00000000 08:05 393409 /lib/i686/cmov/libc-2.11.3.so b77b3000-b77b4000 ---p 00140000 08:05 393409 /lib/i686/cmov/libc-2.11.3.so b77b4000-b77b6000 r--p 00140000 08:05 393409 /lib/i686/cmov/libc-2.11.3.so b77b6000-b77b7000 rw-p 00142000 08:05 393409 /lib/i686/cmov/libc-2.11.3.so b77b7000-b77ba000 rw-p 00000000 00:00 0 b77ba000-b77bc000 r-xp 00000000 08:05 393363 /lib/i686/cmov/libdl-2.11.3.so b77bc000-b77bd000 r--p 00001000 08:05 393363 /lib/i686/cmov/libdl-2.11.3.so b77bd000-b77be000 rw-p 00002000 08:05 393363 /lib/i686/cmov/libdl-2.11.3.so b77be000-b77c1000 r-xp 00000000 08:05 1186054 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/jli/libjli.so b77c1000-b77c2000 rw-p 00002000 08:05 1186054 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/jli/libjli.so b77c2000-b77d7000 r-xp 00000000 08:05 393376 /lib/i686/cmov/libpthread-2.11.3.so b77d7000-b77d8000 r--p 00014000 08:05 393376 /lib/i686/cmov/libpthread-2.11.3.so b77d8000-b77d9000 rw-p 00015000 08:05 393376 /lib/i686/cmov/libpthread-2.11.3.so b77d9000-b77dc000 rw-p 00000000 00:00 0 b77dc000-b77ef000 r-xp 00000000 08:05 1185429 /usr/lib/libz.so.1.2.3.4 b77ef000-b77f0000 rw-p 00013000 08:05 1185429 /usr/lib/libz.so.1.2.3.4 b77f0000-b77f1000 r--p 00000000 00:00 0 b77f1000-b77f2000 r--s 0002e000 08:06 2623222 /home/programas/GeoGebra5.2/jlm_greek.jar b77f2000-b77f3000 r--s 00007000 08:06 2623207 /home/programas/GeoGebra5.2/geogebra.jar b77f3000-b77f4000 rw-p 00000000 00:00 0 b77f4000-b77f5000 r--p 00000000 00:00 0 b77f5000-b7800000 r-xp 00000000 08:05 1186039 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libverify.so b7800000-b7801000 rw-p 0000b000 08:05 1186039 /usr/lib/jvm/java-6-openjdk/jre/lib/i386/libverify.so b7801000-b7803000 rw-p 00000000 00:00 0 b7803000-b7804000 r-xp 00000000 00:00 0 [vdso] b7804000-b781f000 r-xp 00000000 08:05 409759 /lib/ld-2.11.3.so b781f000-b7820000 r--p 0001b000 08:05 409759 /lib/ld-2.11.3.so b7820000-b7821000 rw-p 0001c000 08:05 409759 /lib/ld-2.11.3.so bfe2c000-bfe62000 rw-p 00000000 00:00 0 [stack] VM Arguments: jvm_args: -Xms32m -Xmx512m java_command: /home/programas/GeoGebra5.2/geogebra.jar Launcher Type: SUN_STANDARD Environment Variables: PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games USERNAME=departamento LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk/jre/lib/i386/server:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/jvm/java-6-openjdk/jre/../lib/i386 SHELL=/bin/bash DISPLAY=:0.0 Signal Handlers: SIGSEGV: [libjvm.so+0x5ca9f0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGBUS: [libjvm.so+0x5ca9f0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGFPE: [libjvm.so+0x4ae060], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGPIPE: [libjvm.so+0x4ae060], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGXFSZ: [libjvm.so+0x4ae060], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGILL: [libjvm.so+0x4ae060], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000 SIGUSR2: [libjvm.so+0x4ad7b0], sa_mask[0]=0x00000000, sa_flags=0x10000004 SIGHUP: [libjvm.so+0x4afd10], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGINT: [libjvm.so+0x4afd10], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGTERM: [libjvm.so+0x4afd10], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGQUIT: [libjvm.so+0x4afd10], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 --------------- S Y S T E M --------------- OS:6.0.4 uname:Linux 2.6.32-5-686 #1 SMP Mon Jan 16 16:04:25 UTC 2012 i686 libc:glibc 2.11.3 NPTL 2.11.3 rlimit: STACK 8192k, CORE 0k, NPROC infinity, NOFILE 1024, AS infinity load average:0.76 0.45 0.20 CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 23 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3 Memory: 4k page, physical 2065060k(1253800k free), swap 2048276k(2048276k free) vm_info: OpenJDK Server VM (14.0-b16) for linux-x86 JRE (1.6.0_18-b18), built on Feb 27 2012 19:42:29 by "buildd" with gcc 4.4.5 time: Wed Mar 7 10:59:12 2012 elapsed time: 7 seconds -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From jvanek at redhat.com Wed Mar 7 03:01:59 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 07 Mar 2012 12:01:59 +0100 Subject: [rfc][icedtea-web] extended reflection tests In-Reply-To: <4F564254.9080209@redhat.com> References: <4F54B7A6.70102@redhat.com> <4F553CFD.3040908@redhat.com> <4F55E9F3.2030908@redhat.com> <4F564254.9080209@redhat.com> Message-ID: <4F574027.2040207@redhat.com> On 03/06/2012 05:59 PM, Danesh Dadachanji wrote: > On 06/03/12 05:41 AM, Jiri Vanek wrote: >> On 03/05/2012 11:23 PM, Danesh Dadachanji wrote: >>> Hi Jiri, >>> >>> Thanks for the tests! >>> >>> On 05/03/12 07:55 AM, Jiri Vanek wrote: >>>> Hi! Few more test to reflection >>>> >>>> What I'm surprised is, that unsigned application can use reflection at >>>> all. I tough they can not.... >>> >>> I thought so too.. >> Pavel have thoughts taht it should be correct..adding him to cc for case >> I'm lying. Also Omair cced as he had something to do with reflection too.. >>> >>>> This text is expecting them unsigned ones using reflection as correct as >>>> it is current behaviour. But feel free to correct me if unsigned >>>> applications should have reflection forbidden. >>> >>> I'll let someone who knows more comment on this. Until then, I have >>> some comments on the patch below. >> see above >>> >>>> >>>> 2012-03-05 Jiri Vanek >>>> >>>> Improved reflection test: >>>> * >>>> /home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: >>>> >>>> >>>> This testcase was extended for three more unsigned reflection tries >>>> and four signed >>>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: >>>> >>>> now accepting class to be findByName as argument. Four new jnlp >>>> files in >>>> signed a four in simple are then passing those argument >>>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: >>>> >>>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: >>>> >>>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: >>>> >>>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: >>>> >>>> */home/jvanek/hg/icedtea-web/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: >>>> >>>> removed >>> >>> Don't think we need your full path of "/home/jvanek/hg/icedtea-web/" ;) >> Damn, thanx for catch. >>> >>> Please can you add to all the jnlp files. It'd work right now >>> but once the changeset I have in review is accepted, it'll start >>> failing to run javaws altogether. >> >> Done for this case, But I'm afraid you will break more tests. Before >> commit of your changeset you should ensure (fix missing vendors in >> current tests) that no new failures appears. >> I will also add vendors in all current and future tests. > > Yeah I suspected that was the case. I'll update my patch to include fixes for all the current tests. > >>> >>> I believe you also need to add the copyright header for many of the >>> files. >> done. I always forgotr about jnlp files :-/ >>> >>>> + private String[] badExceptions = { >>>> + "accessClassInPackage.javax.jnlp.ServiceManager)", >>>> + "accessClassInPackage.AccessClassInPackage)", >>>> + "accessClassInPackage.net.sourceforge.jnlp)", >>>> + "accessClassInPackage.sun.security.internal.spec)" >>> >>> [snip] >>> >>>> + private void testShouldFail(ServerAccess.ProcessResult pr, String s) { >>>> + String c = "java.security.AccessControlException: access denied >>>> (java.lang.RuntimePermission " + s; >>>> + Assert.assertTrue("stderr should contains `" + c + "`, but didn't >>>> ", pr.stderr.contains(c)); >>>> + } >>>> + private void testShouldNOTFail(ServerAccess.ProcessResult pr, >>>> String s) { >>>> + String c = "java.security.AccessControlException: access denied >>>> (java.lang.RuntimePermission " + s; >>>> + Assert.assertFalse("stderr should NOT contains `" + c + "`, but did >>>> ", pr.stderr.contains(c)); >>>> + } >>> >>> >>> I noticed testShouldFail asserts were always failing when the methods >>> were being called. I believe you need to add double quotes around >>> java.lang.RuntimePermission and s in order for contains() to pass. >>> >>> stderr.log outputted: >>> [...] access denied ("java.lang.RuntimePermission" >>> "accessClassInPackage.sun.security.internal.spec") >>> >>> Change the String c's to (\"java.lang.RuntimePermission\" and wrap >>> each element of badExceptions similarly, that should take care of the >>> problem. >> hmm.. this scares me a lot. I have changed catching from contains to >> match, to have more vague regex inside. But what scares me is that I >> have never seen this kind of exception in format you have described... >> Attached is my exception format (same on f14 and f16) and new patch. > > Interesting, my F16 has "" around it. I built it with stock 6 (did not use --with-jdk-home). > > I don't think using matches with .* is the best idea. In this case, pr.stderr is a String, right? That means that if let's say stderr contains "java.security.AccessControlException" and then somewhere later on contains the other part we're searching for, it will return true. > True. I tought you will complain like this :) What do you think about this? private void testShouldFail(ServerAccess.ProcessResult pr, String s) { String c = "(?s).*java.security.AccessControlException.{0,5}access denied.{0,5}java.lang.RuntimePermission.*" + s + ".*"; Assert.assertTrue("stderr should match `" + c + "`, but didn't ", pr.stderr.matches(c)); } private void testShouldNOTFail(ServerAccess.ProcessResult pr, String s) { String c = "(?s).*java.security.AccessControlException.{0,5}access denied.{0,5}java.lang.RuntimePermission.*" + s + ".*"; Assert.assertFalse("stderr should NOT match `" + c + "`, but did ", pr.stderr.matches(c)); } > Perhaps an alternative solution for now is to match 0 or 1 '"' chars around the exceptions, instead of .* being used. Maybe leave a warning in comments saying stderr could be formatted differently. Then, if someone runs into this later on down the line, we can adjust to their output too. > > Attached is the exception I'm seeing. Hope this helps! > >>> >>> >>> Once the above's sorted out, this looks good to me for pushing. >>> >>> Regards, >>> Danesh >> >> >> 2012-03-06 Jiri Vanek >> >> Improved reflection test: >> * >> tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: >> >> This testcase was extended for three more unsigned reflection tries and >> four signed >> *tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: >> >> now accepting class to be findByName as argument. Four new jnlp files in >> signed a four in simple are then passing those argument >> *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: >> >> *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: >> >> *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: >> >> *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: >> >> *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: >> >> removed >> * >> tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java >> >> signed variation of AccessClassInPackage, tescase is also in >> AccessClassInPackage >> * >> tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp >> >> * >> tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp >> >> * >> tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp >> >> * >> tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp >> >> From bugzilla-daemon at icedtea.classpath.org Wed Mar 7 03:41:08 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 07 Mar 2012 11:41:08 +0000 Subject: [Bug 891] segfault in tools/android in android-sdk_r16-linux.tgz In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=891 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Version|unspecified |6-1.8.7 Component|IcedRobot |IcedTea6 CC| |xerxes at zafena.se AssignedTo|neugens at limasoftware.net |unassigned at icedtea.classpat | |h.org Resolution| |WONTFIX Product|IcedRobot |IcedTea Severity|blocker |normal --- Comment #2 from Xerxes R?nby 2012-03-07 11:41:08 UTC --- Hi, it is of course unfortunate that you hit this bug, the icedtea6 1.8.7 version are old and contains known security bugs that have been fixed in newer icedtea releases. Also the icedtea6 1.8.x branch are closed for further improvements. http://icedtea.classpath.org/hg/release/icedtea6-1.8/rev/ee0b3f26e0f4 I would suggest you to inform you Linux Distribution Debian about the issue you experience while using this old icedtea 1.8.x version. Debian then have to decide if they should upgrade the version of icedtea that they ship to their squeeze users. The Debian wheezy/testing version do contain a more recent icedtea version. I recommend you to upgrade to the latest icedtea6-1.11 branch that are still supported by the icedtea team. If you can reproduce this bug using a more up to date icedtea version please reopen 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. From bugzilla-daemon at icedtea.classpath.org Wed Mar 7 04:05:47 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 07 Mar 2012 12:05:47 +0000 Subject: [Bug 892] Can't start GeoGebra 3D In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=892 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |xerxes at zafena.se Resolution| |WONTFIX --- Comment #1 from Xerxes R?nby 2012-03-07 12:05:47 UTC --- Hi, it is of course unfortunate that you hit this bug using the icedtea6 1.8.13 version. The icedtea6 1.8.x branch are closed for further improvements. http://icedtea.classpath.org/hg/release/icedtea6-1.8/rev/ee0b3f26e0f4 I would suggest you to inform you Linux Distribution Debian about the issue you experience while using this icedtea 1.8.13 version. Debian then have to decide if they should upgrade the version of icedtea that they ship to their squeeze users. The Debian wheezy/testing version do contain a more recent icedtea version. I recommend you to upgrade to the latest icedtea6-1.11 branch that are still supported by the icedtea team. If you can reproduce this bug using a more up to date icedtea version please reopen 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. From bugzilla-daemon at icedtea.classpath.org Wed Mar 7 05:23:15 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 07 Mar 2012 13:23:15 +0000 Subject: [Bug 892] Can't start GeoGebra 3D In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=892 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- Version|8-hg |6-1.8.13 Resolution|WONTFIX |WORKSFORME --- Comment #2 from Xerxes R?nby 2012-03-07 13:23:15 UTC --- For your information, I am able to run GeoGebra 5.0 that includes the 3D views using IcedTea6 1.11 http://www.geogebra.org/forum/viewtopic.php?f=52&t=19846 javaws http://www.geogebra.org/webstart/5.0/geogebra-50.jnlp -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From aph at redhat.com Wed Mar 7 06:20:19 2012 From: aph at redhat.com (Andrew Haley) Date: Wed, 07 Mar 2012 14:20:19 +0000 Subject: OpenJDK on ARM In-Reply-To: <1331126600.3264.17.camel@GagouNotebook> References: <1331126600.3264.17.camel@GagouNotebook> Message-ID: <4F576EA3.1000508@redhat.com> On 03/07/2012 01:23 PM, Ga?l Jobin wrote: > I have searched on Internet about OpenJDK on ARM but I found a lot of > different things... > > First, my goal is to have only the library of OpenJDK compiled for ARM, > not Hotspot or anything else. > > I work for an embedded system based on ARM, and I want to use the JVM > JamVM + OpenJDK on my board. JamVM support OpenJDK and can be easily > cross-compiled for ARM. > So my question is: How to cross-compile OpenJDK for ARM? > > I don't understand where's the problem, many website speak about ASM > code in the OpenJDK. But the name OpenJDK contains a lot of thing > (library, jvm, compiler) but I don't want the OpenJDK JVM cross-compiled > for ARM, I only need the library for JamVM. > > Isn't it the same way to compile GNU Classpath and OpenJDK libraries? > > Also, I don't want an ARM based OpenJDK development environment because > I have it on my laptop, I only need an "executable" environment on ARM > (JVM+Library). > > I'm sorry for my bad english, but I'm french. I have posted similar > question on french forum, but nobody knows. > > I hope you will understand my question and take the time to explain to > me because I don't know where I can find the informations :-) You're looking in the wrong place. If you want to build OpenJDK over JamVM, go to http://icedtea.classpath.org. To build IcedTea with JamVM: hg clone http://icedtea.classpath.org/hg/icedtea6 ./autogen.sh ./configure --disable-bootstrap --enable-jamvm make Come over to IRC channel #openjdk on irc.oftc.net for help. Andrew. From ddadacha at redhat.com Wed Mar 7 07:58:24 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Wed, 07 Mar 2012 10:58:24 -0500 Subject: [rfc][icedtea-web] extended reflection tests In-Reply-To: <4F574027.2040207@redhat.com> References: <4F54B7A6.70102@redhat.com> <4F553CFD.3040908@redhat.com> <4F55E9F3.2030908@redhat.com> <4F564254.9080209@redhat.com> <4F574027.2040207@redhat.com> Message-ID: <4F5785A0.9070507@redhat.com> On 07/03/12 06:01 AM, Jiri Vanek wrote: > On 03/06/2012 05:59 PM, Danesh Dadachanji wrote: >> >> Interesting, my F16 has "" around it. I built it with stock 6 (did not >> use --with-jdk-home). >> >> I don't think using matches with .* is the best idea. In this case, >> pr.stderr is a String, right? That means that if let's say stderr >> contains "java.security.AccessControlException" and then somewhere >> later on contains the other part we're searching for, it will return >> true. >> > > True. I tought you will complain like this :) > What do you think about this? > > private void testShouldFail(ServerAccess.ProcessResult pr, String s) { > String c = "(?s).*java.security.AccessControlException.{0,5}access > denied.{0,5}java.lang.RuntimePermission.*" + s + ".*"; > Assert.assertTrue("stderr should match `" + c + "`, but didn't ", > pr.stderr.matches(c)); > } > > private void testShouldNOTFail(ServerAccess.ProcessResult pr, String s) { > String c = "(?s).*java.security.AccessControlException.{0,5}access > denied.{0,5}java.lang.RuntimePermission.*" + s + ".*"; > Assert.assertFalse("stderr should NOT match `" + c + "`, but did ", > pr.stderr.matches(c)); > } > > Ah nice way of doing it! One more nitpick though, sorry! Could you replace the .* after java.lang.RuntimePermission with .{0,5} too? ".{0,5}java.lang.RuntimePermission.{0,5}" The problem mentioned last time would still occur here, in that if there was a RuntimePermission exception somewhere in stderr and s appears somewhere later on, it would match. This might not be what we're looking for either. Thanks and sorry for the headaches! Regards, Danesh From jvanek at redhat.com Wed Mar 7 08:34:21 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 07 Mar 2012 17:34:21 +0100 Subject: [rfc][icedtea-web] extended reflection tests In-Reply-To: <4F5785A0.9070507@redhat.com> References: <4F54B7A6.70102@redhat.com> <4F553CFD.3040908@redhat.com> <4F55E9F3.2030908@redhat.com> <4F564254.9080209@redhat.com> <4F574027.2040207@redhat.com> <4F5785A0.9070507@redhat.com> Message-ID: <4F578E0D.5000100@redhat.com> On 03/07/2012 04:58 PM, Danesh Dadachanji wrote: > > > On 07/03/12 06:01 AM, Jiri Vanek wrote: >> On 03/06/2012 05:59 PM, Danesh Dadachanji wrote: >>> >>> Interesting, my F16 has "" around it. I built it with stock 6 (did not >>> use --with-jdk-home). >>> >>> I don't think using matches with .* is the best idea. In this case, >>> pr.stderr is a String, right? That means that if let's say stderr >>> contains "java.security.AccessControlException" and then somewhere >>> later on contains the other part we're searching for, it will return >>> true. >>> >> >> True. I tought you will complain like this :) >> What do you think about this? >> >> private void testShouldFail(ServerAccess.ProcessResult pr, String s) { >> String c = "(?s).*java.security.AccessControlException.{0,5}access >> denied.{0,5}java.lang.RuntimePermission.*" + s + ".*"; >> Assert.assertTrue("stderr should match `" + c + "`, but didn't ", >> pr.stderr.matches(c)); >> } >> >> private void testShouldNOTFail(ServerAccess.ProcessResult pr, String s) { >> String c = "(?s).*java.security.AccessControlException.{0,5}access >> denied.{0,5}java.lang.RuntimePermission.*" + s + ".*"; >> Assert.assertFalse("stderr should NOT match `" + c + "`, but did ", >> pr.stderr.matches(c)); >> } >> >> > > Ah nice way of doing it! One more nitpick though, sorry! Could you replace the .* after java.lang.RuntimePermission with .{0,5} too? Of course! I have overlooked! > > ".{0,5}java.lang.RuntimePermission.{0,5}" > > The problem mentioned last time would still occur here, in that if there was a RuntimePermission exception somewhere in stderr and s appears somewhere later on, it would match. This might not be what we're looking for either. > > Thanks and sorry for the headaches! NP! They are welcomed. Can I commit with fix: private void testShouldFail(ServerAccess.ProcessResult pr, String s) { String c = "(?s).*java.security.AccessControlException.{0,5}access denied.{0,5}java.lang.RuntimePermission.{0,5}" + s + ".*"; Assert.assertTrue("stderr should match `" + c + "`, but didn't ", pr.stderr.matches(c)); } private void testShouldNOTFail(ServerAccess.ProcessResult pr, String s) { String c = "(?s).*java.security.AccessControlException.{0,5}access denied.{0,5}java.lang.RuntimePermission.{0,5}" + s + ".*"; Assert.assertFalse("stderr should NOT match `" + c + "`, but did ", pr.stderr.matches(c)); } > > Regards, > Danesh From ptisnovs at redhat.com Wed Mar 7 08:48:18 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 07 Mar 2012 17:48:18 +0100 Subject: [rfc][icedtea-web] reprducers for main class specified in manifest instead in application descriptor In-Reply-To: <4F5513FE.2020704@redhat.com> References: <4F5513FE.2020704@redhat.com> Message-ID: <4F579152.4010109@redhat.com> Hi Jiri, it looks good. I have two questions: 1) in both files MANIFEST.MF it seems that DOS EOLs are used (I can see ^M on the end of the lines). Did you use DOS files deliberately? 2) probably another test case should be included: two jars, both with manifests, both set as main (it should fail AFAIK) Cheers, Pavel Jiri Vanek wrote: > 2012-03-05 Jiri Vanek > > Added test for main-class in manifest for jnlp > * Makefile.am: (prepare-reproducers.stamp) fixed manifest handling. > Till > now was manifest copied as any other non java file, and so was > rewritten > by jar tool > * tests/jnlp_tests/simple/ManifestedJar2/srcs: secondary jar file which > should have manifest and so should help ManifestedJar1 with testing > * > tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: > manifest for ManifestedJar2.jar > * tests/jnlp_tests/simple/ManifestedJar1/srcs: main testing jar > * > tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: > manifest for ManifestedJar1.jar > * > tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: > testing class for this reproducers > * tests/jnlp_tests/simple/ManifestedJar1/resources/: six reproducers > jnlps > > Currently I'm testing: > * if two jars with manifest specified, none is main and no main > class, then first one is loaded > * if one jar with manifest, is not main, and no main class then is > lunched > * if one jar with manifest, but not marked as main and no main > class then is lunched > * if one jar with manifest, marked as main and no main class then > is lunched > * Two jars, both with manifest, First is main, but specified > mainclass belongs to second one, then second one should be lunched > * Two jars, both with manifest, seconds is main, no mainclass, then > the one marked as main is lunched > > > Any idea for more (meaningfull :) ) combinations? (even as another > patch...) > > Best regards, J > From ddadacha at redhat.com Wed Mar 7 08:54:04 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Wed, 07 Mar 2012 11:54:04 -0500 Subject: [rfc][icedtea-web] extended reflection tests In-Reply-To: <4F578E0D.5000100@redhat.com> References: <4F54B7A6.70102@redhat.com> <4F553CFD.3040908@redhat.com> <4F55E9F3.2030908@redhat.com> <4F564254.9080209@redhat.com> <4F574027.2040207@redhat.com> <4F5785A0.9070507@redhat.com> <4F578E0D.5000100@redhat.com> Message-ID: <4F5792AC.80700@redhat.com> On 07/03/12 11:34 AM, Jiri Vanek wrote: > On 03/07/2012 04:58 PM, Danesh Dadachanji wrote: >> >> >> On 07/03/12 06:01 AM, Jiri Vanek wrote: >>> On 03/06/2012 05:59 PM, Danesh Dadachanji wrote: >>>> >>>> Interesting, my F16 has "" around it. I built it with stock 6 (did not >>>> use --with-jdk-home). >>>> >>>> I don't think using matches with .* is the best idea. In this case, >>>> pr.stderr is a String, right? That means that if let's say stderr >>>> contains "java.security.AccessControlException" and then somewhere >>>> later on contains the other part we're searching for, it will return >>>> true. >>>> >>> >>> True. I tought you will complain like this :) >>> What do you think about this? >>> >>> private void testShouldFail(ServerAccess.ProcessResult pr, String s) { >>> String c = "(?s).*java.security.AccessControlException.{0,5}access >>> denied.{0,5}java.lang.RuntimePermission.*" + s + ".*"; >>> Assert.assertTrue("stderr should match `" + c + "`, but didn't ", >>> pr.stderr.matches(c)); >>> } >>> >>> private void testShouldNOTFail(ServerAccess.ProcessResult pr, String >>> s) { >>> String c = "(?s).*java.security.AccessControlException.{0,5}access >>> denied.{0,5}java.lang.RuntimePermission.*" + s + ".*"; >>> Assert.assertFalse("stderr should NOT match `" + c + "`, but did ", >>> pr.stderr.matches(c)); >>> } >>> >>> >> >> Ah nice way of doing it! One more nitpick though, sorry! Could you >> replace the .* after java.lang.RuntimePermission with .{0,5} too? > Of course! I have overlooked! >> >> ".{0,5}java.lang.RuntimePermission.{0,5}" >> >> The problem mentioned last time would still occur here, in that if >> there was a RuntimePermission exception somewhere in stderr and s >> appears somewhere later on, it would match. This might not be what >> we're looking for either. >> >> Thanks and sorry for the headaches! > > NP! They are welcomed. Can I commit with fix: > > private void testShouldFail(ServerAccess.ProcessResult pr, String s) { > String c = "(?s).*java.security.AccessControlException.{0,5}access > denied.{0,5}java.lang.RuntimePermission.{0,5}" + s + ".*"; > Assert.assertTrue("stderr should match `" + c + "`, but didn't ", > pr.stderr.matches(c)); > } > > private void testShouldNOTFail(ServerAccess.ProcessResult pr, String s) { > String c = "(?s).*java.security.AccessControlException.{0,5}access > denied.{0,5}java.lang.RuntimePermission.{0,5}" + s + ".*"; > Assert.assertFalse("stderr should NOT match `" + c + "`, but did ", > pr.stderr.matches(c)); > } > Awesome, thanks! This looks good to me, go ahead and push. > >> >> Regards, >> Danesh > From jvanek at icedtea.classpath.org Wed Mar 7 09:01:31 2012 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 07 Mar 2012 17:01:31 +0000 Subject: /hg/icedtea-web: Extended reflection test Message-ID: changeset 7bf18e8b2e65 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=7bf18e8b2e65 author: Jiri Vanek date: Wed Mar 07 18:00:41 2012 +0100 Extended reflection test diffstat: ChangeLog | 21 + extendedReflectionTests.diff | 723 ++++++++++ tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp | 57 + tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp | 57 + tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp | 57 + tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp | 57 + tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java | 44 + tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp | 12 - tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp | 54 + tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp | 54 + tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp | 54 + tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp | 54 + tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java | 3 +- tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java | 163 ++- 14 files changed, 1384 insertions(+), 26 deletions(-) diffs (truncated from 1502 to 500 lines): diff -r f1c6e1562fcf -r 7bf18e8b2e65 ChangeLog --- a/ChangeLog Wed Feb 29 15:13:14 2012 -0500 +++ b/ChangeLog Wed Mar 07 18:00:41 2012 +0100 @@ -1,3 +1,24 @@ +2012-03-06 Jiri Vanek + + Improved reflection test: + * tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: + This testcase was extended for three more unsigned reflection tries and four signed + *tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: + now accepting class to be findByName as argument. Four new jnlp files in + signed a four in simple are then passing those argument + *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: + *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: + *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: + *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: + *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: + removed + * tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java + signed variation of AccessClassInPackage, tescase is also in AccessClassInPackage + * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp + * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp + * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp + * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp + 2012-02-29 Deepak Bhole * configure.ac: Bumped version to 1.3pre diff -r f1c6e1562fcf -r 7bf18e8b2e65 extendedReflectionTests.diff --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extendedReflectionTests.diff Wed Mar 07 18:00:41 2012 +0100 @@ -0,0 +1,735 @@ +diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp Tue Mar 06 11:39:43 2012 +0100 +@@ -0,0 +1,57 @@ ++ ++ ++ ++ ++ Test accessClassInPackage signed ++ NetX ++ ++ testing access to some javax.jnlp.* package by signed app ++ ++ ++ ++ ++ ++ javax.jnlp.ServiceManager ++ ++ ++ ++ ++ +diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp Tue Mar 06 11:39:43 2012 +0100 +@@ -0,0 +1,57 @@ ++ ++ ++ ++ ++ Test accessClassInPackage by signed app ++ NetX ++ ++ testing access to net.sourceforge.* package by signed app ++ ++ ++ ++ ++ ++ net.sourceforge.jnlp.Parser ++ ++ ++ ++ ++ +diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp Tue Mar 06 11:39:43 2012 +0100 +@@ -0,0 +1,57 @@ ++ ++ ++ ++ ++ Test accessClassInPackage by signed app ++ NetX ++ ++ testing aaccess to package's internal class by signed app ++ ++ ++ ++ ++ ++ AccessClassInPackageSigned ++ ++ ++ ++ ++ +diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp Tue Mar 06 11:39:43 2012 +0100 +@@ -0,0 +1,57 @@ ++ ++ ++ ++ ++ Test accessClassInPackage by signed app ++ NetX ++ ++ testing access to sun.security.* package by signed app ++ ++ ++ ++ ++ ++ sun.security.internal.spec.TlsKeyMaterialSpec ++ ++ ++ ++ ++ +diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java Tue Mar 06 11:39:43 2012 +0100 +@@ -0,0 +1,44 @@ ++/* AccessClassInPackage.java ++Copyright (C) 2011 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. ++ */ ++ ++public class AccessClassInPackageSigned { ++ ++ public static void main(String[] args) throws Exception{ ++ Class.forName(args[0]); ++ System.out.println("Class was obtained: "+ args[0]); ++ } ++} +diff -r f1c6e1562fcf tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp +--- a/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp Wed Feb 29 15:13:14 2012 -0500 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,12 +0,0 @@ +- +- +- +- Test accessClassInPackage +- +- +- +- +- +- +diff -r f1c6e1562fcf tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp Tue Mar 06 11:39:43 2012 +0100 +@@ -0,0 +1,54 @@ ++ ++ ++ ++ ++ Test accessClassInPackage ++ NetX ++ ++ testing access to some javax.jnlp.* package ++ ++ ++ ++ ++ ++ javax.jnlp.ServiceManager ++ ++ +diff -r f1c6e1562fcf tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp Tue Mar 06 11:39:43 2012 +0100 +@@ -0,0 +1,54 @@ ++ ++ ++ ++ ++ Test accessClassInPackage ++ NetX ++ ++ testing access to net.sourceforge.* package ++ ++ ++ ++ ++ ++ net.sourceforge.jnlp.Parser ++ ++ +diff -r f1c6e1562fcf tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp Tue Mar 06 11:39:43 2012 +0100 +@@ -0,0 +1,54 @@ ++ ++ ++ changeset dfde59b57303 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=dfde59b57303 author: Jiri Vanek date: Wed Mar 07 18:07:19 2012 +0100 removing unwilingly commited file hG: Enter commit message. Lines beginning with 'HG:' are removed. diffstat: extendedReflectionTests.diff | 723 ------------------------------------------- 1 files changed, 0 insertions(+), 723 deletions(-) diffs (truncated from 739 to 500 lines): diff -r 7bf18e8b2e65 -r dfde59b57303 extendedReflectionTests.diff --- a/extendedReflectionTests.diff Wed Mar 07 18:00:41 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,735 +0,0 @@ -diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp Tue Mar 06 11:39:43 2012 +0100 -@@ -0,0 +1,57 @@ -+ -+ -+ -+ -+ Test accessClassInPackage signed -+ NetX -+ -+ testing access to some javax.jnlp.* package by signed app -+ -+ -+ -+ -+ -+ javax.jnlp.ServiceManager -+ -+ -+ -+ -+ -diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp Tue Mar 06 11:39:43 2012 +0100 -@@ -0,0 +1,57 @@ -+ -+ -+ -+ -+ Test accessClassInPackage by signed app -+ NetX -+ -+ testing access to net.sourceforge.* package by signed app -+ -+ -+ -+ -+ -+ net.sourceforge.jnlp.Parser -+ -+ -+ -+ -+ -diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp Tue Mar 06 11:39:43 2012 +0100 -@@ -0,0 +1,57 @@ -+ -+ -+ -+ -+ Test accessClassInPackage by signed app -+ NetX -+ -+ testing aaccess to package's internal class by signed app -+ -+ -+ -+ -+ -+ AccessClassInPackageSigned -+ -+ -+ -+ -+ -diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp Tue Mar 06 11:39:43 2012 +0100 -@@ -0,0 +1,57 @@ -+ -+ -+ -+ -+ Test accessClassInPackage by signed app -+ NetX -+ -+ testing access to sun.security.* package by signed app -+ -+ -+ -+ -+ -+ sun.security.internal.spec.TlsKeyMaterialSpec -+ -+ -+ -+ -+ -diff -r f1c6e1562fcf tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java Tue Mar 06 11:39:43 2012 +0100 -@@ -0,0 +1,44 @@ -+/* AccessClassInPackage.java -+Copyright (C) 2011 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. -+ */ -+ -+public class AccessClassInPackageSigned { -+ -+ public static void main(String[] args) throws Exception{ -+ Class.forName(args[0]); -+ System.out.println("Class was obtained: "+ args[0]); -+ } -+} -diff -r f1c6e1562fcf tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp ---- a/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp Wed Feb 29 15:13:14 2012 -0500 -+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 -@@ -1,12 +0,0 @@ -- -- -- -- Test accessClassInPackage -- -- -- -- -- -- -diff -r f1c6e1562fcf tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp Tue Mar 06 11:39:43 2012 +0100 -@@ -0,0 +1,54 @@ -+ -+ -+ -+ -+ Test accessClassInPackage -+ NetX -+ -+ testing access to some javax.jnlp.* package -+ -+ -+ -+ -+ -+ javax.jnlp.ServiceManager -+ -+ -diff -r f1c6e1562fcf tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp Tue Mar 06 11:39:43 2012 +0100 -@@ -0,0 +1,54 @@ -+ -+ -+ -+ -+ Test accessClassInPackage -+ NetX -+ -+ testing access to net.sourceforge.* package -+ -+ -+ -+ -+ -+ net.sourceforge.jnlp.Parser -+ -+ -diff -r f1c6e1562fcf tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp Tue Mar 06 11:39:43 2012 +0100 -@@ -0,0 +1,54 @@ -+ -+ -+ -+ -+ Test accessClassInPackage -+ NetX -+ -+ testing aaccess to package's internal class -+ -+ -+ -+ -+ -+ AccessClassInPackage -+ -+ -diff -r f1c6e1562fcf tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp Tue Mar 06 11:39:43 2012 +0100 -@@ -0,0 +1,54 @@ -+ http://icedtea.classpath.org/bugzilla/attachment.cgi?id=674 java applet source and class file, html file In javascript, if a string is less than 4 characters long, garbage characters will be appended to it when returned to Java. Please refer to this bug report: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7149780 Since they could not reproduce the bug (they could not even run a configuration with IcedTea), they have closed the bug report. That's why I'm posting this report to this bug database too. The problem can be reproduced using Chrome 17.0.963.56 or Firefox 10.0.2 using OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2) OpenJDK Client VM (build 20.0-b11, mixed mode, sharing) on Linux ubuntu 3.0.0-16-generic #28-Ubuntu SMP Fri Jan 27 17:50:54 UTC 2012 i686 i686 i386 GNU/Linux Precompiled java applet and html code is available on this url: http://gs1.flyordie.com/linux-chrome-test/a.html Values ["", "1", "12","123", "1234", "12345", null] should appear in the first column of the table. Instead of "", "1", "12" and "123" values with garbage characters appended will be displayed. Hex-dump shows character values fffd 62 53 fffd (or similar). -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Mar 8 03:21:45 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 Mar 2012 11:21:45 +0000 Subject: [Bug 880] Problem loading JogAmp 2.0 JOGL applets In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=880 --- Comment #3 from Xerxes R?nby 2012-03-08 11:21:45 UTC --- The sun/oracle plug-in allows running of mixed signed and unsigned code, The user can control if a warning should get displayed before running mixed code: http://docs.oracle.com/javase/6/docs/technotes/guides/jweb/mixed_code.html The main problem with icedtea-web 1.1.6, 1.2 and head are that icedtea-web drops all privileges unconditionally for singed jars when they get mixed with unsigned code, in this case no security dialog are displayed at all. This icedtea-web behaviour currently break all applets and jnlp code that try to mix unsigned and signed code. The JogAmp JOGL test applets above are based on the assumptions that mixing of code are possible and dates back to the sun created code: http://download.java.net/media/jogl/demos/www/applettest-jnlp.html (this test applet are now unsigned since oracle no longer maintains jogl, I added the URL to prove my point) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Mar 8 04:07:40 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 Mar 2012 12:07:40 +0000 Subject: [Bug 880] Problem loading JogAmp 2.0 JOGL applets In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=880 --- Comment #4 from Xerxes R?nby 2012-03-08 12:07:40 UTC --- dirty workaround if you really want to run jogamp JOGL applets today: add grant codeBase "http://jogamp.org/-" { permission java.security.AllPermission; }; to /usr/lib/jvm/java-6-openjdk/jre/lib/security/java.policy -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Mar 8 05:52:09 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 Mar 2012 13:52:09 +0000 Subject: [Bug 830] icedtea6: Important Channel Binding Patch is missing In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=830 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #621 is|0 |1 patch| | Attachment #621|application/octet-stream |text/plain mime type| | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ahughes at redhat.com Thu Mar 8 05:58:40 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 08 Mar 2012 08:58:40 -0500 (EST) Subject: IcedTea-Web 1.2 released! In-Reply-To: <20120306184553.28cd7c67@laptop64.home> Message-ID: <6d8bc803-354e-4fcc-8e5f-698f2f869ba0@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Am Tue, 6 Mar 2012 12:25:02 -0500 > schrieb Deepak Bhole : > > > Ah, here is the problem: > > > > ... > > ... > > > > import sun.awt.X11.XEmbeddedFrame; > > ^ > > 1 warning > > Exception in thread "main" > > java.lang.UnsatisfiedLinkError: > > /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/xawt/libmawt.so: > > libXtst.so.6: cannot open shared object file: No such file or > > directory > > > > ... > > ... > > > > > > the configure script cannot compile the test code successfully due > > to > > the above error and therefore things XEmbeddedFrame is not there. > > After fixing the above issue, it should work again. > > > > Cheers, > > Deepak > > Thanks for pointing me there. Our optional dependency on gtk2 doesn't > pull in automatically libxtst in our build environment. This is fixed > now here and icedtea-web passes now configure. > I'm confused. IcedTea7 will check for xtst during configure: dnl Check for libXtst headers and libraries. PKG_CHECK_MODULES(XTST, xtst,[XTST_FOUND=yes],[XTST_FOUND=no]) if test "x${XTST_FOUND}" = xno then AC_MSG_ERROR([Could not find Xtst - \ Try installing libXtst-devel.]) fi How did you manage to build without it? > -Andy > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at redhat.com Thu Mar 8 06:39:42 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 08 Mar 2012 15:39:42 +0100 Subject: [rfc][icedtea-web] reprducers for main class specified in manifest instead in application descriptor In-Reply-To: <4F588F30.1010802@redhat.com> References: <4F5513FE.2020704@redhat.com> <4F579152.4010109@redhat.com> <4F588F30.1010802@redhat.com> Message-ID: <4F58C4AE.5080905@redhat.com> Jiri Vanek wrote: > On 03/07/2012 05:48 PM, Pavel Tisnovsky wrote: >> Hi Jiri, >> > Thanx for review! >> it looks good. I have two questions: >> >> 1) in both files MANIFEST.MF it seems that DOS EOLs are used (I can >> see ^M on the end of the lines). Did you use DOS >> files deliberately? > fixed! >> >> 2) probably another test case should be included: two jars, both with >> manifests, both set as main (it should fail AFAIK) > added(and two more similar)! > however it is passing - first in-manifest mainclass is launched. > On the other side when two jars with main mark are lunched via main > class in application-desc, then invalid xml exception is thrown. I think > both can be considered as correct. Great. I looks good (although it would be IMHO better to show error dialog in such cases, but it's not part of your tests ;-) Pavel >> >> Cheers, >> Pavel >> > > Best regards, J > From jvanek at redhat.com Thu Mar 8 07:00:20 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 08 Mar 2012 16:00:20 +0100 Subject: Reproducers call Message-ID: <4F58C984.7080200@redhat.com> Hi all icedtea-web fixers! Who ever in recent history have posted some fix for icedtea-web, which can be reproduced in automated testing engine(still no gui), and is worthy to be reproduced, can you please point me to this push, maybe also to review thread and with some clues how to do the reproducer? There were quite a lot of fixing since new year, but most of them have been marked as un-reproducible. Can you please help me to gather few cases? Thanx J! From jvanek at icedtea.classpath.org Thu Mar 8 07:03:22 2012 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Thu, 08 Mar 2012 15:03:22 +0000 Subject: /hg/icedtea-web: added reproducers for main class in manifest Message-ID: changeset d2aff3800f4f in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=d2aff3800f4f author: Jiri Vanek date: Thu Mar 08 15:54:39 2012 +0100 added reproducers for main class in manifest diffstat: ChangeLog | 17 + Makefile.am | 8 +- tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp | 53 ++ tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp | 54 ++ tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp | 54 ++ tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp | 54 ++ tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp | 53 ++ tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp | 52 ++ tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp | 49 + tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp | 54 ++ tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp | 54 ++ tests/jnlp_tests/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF | 3 + tests/jnlp_tests/simple/ManifestedJar1/srcs/ManifestedJar1.java | 45 + tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java | 255 ++++++++++ tests/jnlp_tests/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF | 3 + tests/jnlp_tests/simple/ManifestedJar2/srcs/ManifestedJar2.java | 45 + 16 files changed, 852 insertions(+), 1 deletions(-) diffs (truncated from 933 to 500 lines): diff -r dfde59b57303 -r d2aff3800f4f ChangeLog --- a/ChangeLog Wed Mar 07 18:07:19 2012 +0100 +++ b/ChangeLog Thu Mar 08 15:54:39 2012 +0100 @@ -1,3 +1,20 @@ +2012-03-05 Jiri Vanek + + Added test for main-class in manifest for jnlp + * Makefile.am: (prepare-reproducers.stamp) fixed manifest handling. Till + now was manifest copied as any other non java file, and so was rewritten + by jar tool + * tests/jnlp_tests/simple/ManifestedJar2/srcs: secondary jar file which + should have manifest and so should help ManifestedJar1 with testing + * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: + manifest for ManifestedJar2.jar + * tests/jnlp_tests/simple/ManifestedJar1/srcs: main testing jar + * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: + manifest for ManifestedJar1.jar + * tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: + testing class for this reproducers + * tests/jnlp_tests/simple/ManifestedJar1/resources/: nine reproducers jnlps + 2012-03-06 Jiri Vanek Improved reflection test: diff -r dfde59b57303 -r d2aff3800f4f Makefile.am --- a/Makefile.am Wed Mar 07 18:07:19 2012 +0100 +++ b/Makefile.am Thu Mar 08 15:54:39 2012 +0100 @@ -27,6 +27,7 @@ JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar UNIT_CLASS_NAMES = $(abs_top_builddir)/unit_class_names REPRODUCERS_CLASS_NAMES = $(abs_top_builddir)/reproducers_class_names +META_MANIFEST = META-INF/MANIFEST.MF # Build directories @@ -490,7 +491,12 @@ cp -R --parents "$$notSrcFiles" "$(JNLP_TESTS_DIR)/$$dir/" ; \ fi ; \ cd "$(JNLP_TESTS_DIR)/$$dir/" ; \ - $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \ + if [ -f $(META_MANIFEST) ]; \ + then \ + $(BOOT_DIR)/bin/jar cfm "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \ + else \ + $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \ + fi; \ cd "$$d" ; \ cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ done ; \ diff -r dfde59b57303 -r d2aff3800f4f tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp Thu Mar 08 15:54:39 2012 +0100 @@ -0,0 +1,53 @@ + + + + + Test Thread.getAllStackTraces + NetX + + testing jar with manin class in manifest. Invalid xml exception should go out + + + + + + + diff -r dfde59b57303 -r d2aff3800f4f tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp Thu Mar 08 15:54:39 2012 +0100 @@ -0,0 +1,54 @@ + + + + + + ManifestedJar-1main2mainNoAppDesc.jnlp + NetX + + testing jar with manin class in manifest, hello from manifestedjar1 should go out + + + + + + + diff -r dfde59b57303 -r d2aff3800f4f tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp Thu Mar 08 15:54:39 2012 +0100 @@ -0,0 +1,54 @@ + + + + + + ManifestedJar-1main2nothingNoAppDesc + NetX + + testing jar with manin class in manifest, hello from manifestedjar2 should be printed + + + + + + + diff -r dfde59b57303 -r d2aff3800f4f tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp Thu Mar 08 15:54:39 2012 +0100 @@ -0,0 +1,54 @@ + + + + + "ManifestedJar-1mainHaveAppDesc.jnlp + NetX + + testing jar with manin class in manifest, hello from manifestedjar2 should be printed + + + + + + + + diff -r dfde59b57303 -r d2aff3800f4f tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp Thu Mar 08 15:54:39 2012 +0100 @@ -0,0 +1,53 @@ + + + + + + ManifestedJar-1mainNoAppDesc.jnlp + NetX + + testing jar with manin class in manifest, hello from manifestedjar should be printed + + + + + + diff -r dfde59b57303 -r d2aff3800f4f tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp Thu Mar 08 15:54:39 2012 +0100 @@ -0,0 +1,52 @@ + + + + + ManifestedJar-1noAppDesc + NetX + + testing jar with manin class in manifest, hello from manifestedjar1 shold be printed + + + + + + diff -r dfde59b57303 -r d2aff3800f4f tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp Thu Mar 08 15:54:39 2012 +0100 @@ -0,0 +1,49 @@ + + + + + ManifestedJar-1noAppDescAtAll + NetX + + testing jar with manin class in manifest, exception during launching, no application specified + + + + + diff -r dfde59b57303 -r d2aff3800f4f tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp Thu Mar 08 15:54:39 2012 +0100 @@ -0,0 +1,54 @@ + + + + + + ManifestedJar-1nothing2nothingAppDesc + NetX + + testing jar with manin class in manifest. Hello from manifestedjar2 should be printed + + + From bugzilla-daemon at icedtea.classpath.org Thu Mar 8 07:54:57 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 Mar 2012 15:54:57 +0000 Subject: [Bug 893] garbage characters appended to string value on return from javascript call In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=893 --- Comment #1 from Deepak Bhole 2012-03-08 15:54:57 UTC --- Which version of IcedTea-Web are you using? With 1.2, I see [ "", "1", "12","123", "1234", "12345", null ] -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Mar 8 11:02:10 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 Mar 2012 19:02:10 +0000 Subject: [Bug 894] New: Applet crash causes plugin to hang until Firefox stops the script. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=894 Bug #: 894 Summary: Applet crash causes plugin to hang until Firefox stops the script. Classification: Unclassified Product: IcedTea-Web Version: unspecified Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: Plugin AssignedTo: dbhole at redhat.com ReportedBy: ddadacha at redhat.com CC: unassigned at icedtea.classpath.org If you run an applet and it crashes while initializing (applet constructor), starting a second one will hang the plugin and not initialize the new applet until after Firefox prompts you to stop the script running the first one. I've noticed that any existing applets run fine so it has to be while the applet is loading. This means that if an applet crashes, the plugin thread is stalled somewhere, before it finalizes the applet initialization. This has to be happening during the APPLET_LOAD event. To reproduce: NOTE: Running the second one has screwed up my browser session so save your tabs etc before testing. Create an applet that throws an exception in the constructor (e.g. String x = null; x.length();). Once you have run it, try starting another one that you know works. The second one will hang because the plugin cannot initialize the applet until after the first one has completed. After a while, Firefox will prompt you to kill the script running the first one, stop it and the second one should be running as normal. I have tested with IcedTea-Web HEAD, 1.2 and 1.1 - all have the same behaviour. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Mar 8 12:54:52 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 Mar 2012 20:54:52 +0000 Subject: [Bug 894] Applet crash causes plugin to hang until Firefox stops the script. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=894 thomas at m3y3r.de changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |thomas at m3y3r.de --- Comment #1 from thomas at m3y3r.de 2012-03-08 20:54:52 UTC --- Does this patch fix it? http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-January/016905.html -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Mar 8 13:00:13 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 Mar 2012 21:00:13 +0000 Subject: [Bug 893] garbage characters appended to string value on return from javascript call In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=893 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE --- Comment #2 from Deepak Bhole 2012-03-08 21:00:13 UTC --- I am able to reproduce it with Chromium. I will post a fix shortly. *** This bug has been marked as a duplicate of bug 863 *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Mar 8 13:00:13 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 Mar 2012 21:00:13 +0000 Subject: [Bug 863] Error passing strings to applet methods in Chromium In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=863 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dszabo at flyordie.com --- Comment #2 from Deepak Bhole 2012-03-08 21:00:13 UTC --- *** Bug 893 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 on the CC list for the bug. From dbhole at redhat.com Thu Mar 8 14:17:14 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 8 Mar 2012 17:17:14 -0500 Subject: [icedtea-web] RFC: Fix fpr PR863: Error passing strings to applet methods in Chromium Message-ID: <20120308221713.GY11032@redhat.com> Hi, Attached patch fixes PR863. Currently, the plug-in relies on the "UTF8Characters" property of NPString to get the char* array. However browsers like chromium don't always trim the array correctly, resulting in reads beyond the length. This patch checks for length in all places where UTF8Characters is used and reads only upto the length. ChangeLog: 2012-03-08 Deepak Bhole * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc (createJavaObjectFromVariant): Account for length of the characters. * plugin/icedteanp/IcedTeaNPPlugin.cc (plugin_get_documentbase): Same. * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc (_eval): Print the string's c_str rather than utf8characters/ * plugin/icedteanp/IcedTeaPluginUtils.cc (printNPVariant): Account for length of the characters. (NPVariantToString): Same. (isObjectJSArray): Same. OK for 1.1, 1.2 and HEAD? Cheers, Deepak -------------- next part -------------- diff -r d2aff3800f4f plugin/icedteanp/IcedTeaJavaRequestProcessor.cc --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc Thu Mar 08 15:54:39 2012 +0100 +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc Thu Mar 08 15:56:50 2012 -0500 @@ -905,9 +905,9 @@ { className = "java.lang.String"; #if MOZILLA_VERSION_COLLAPSED < 1090200 - stringArg += NPVARIANT_TO_STRING(variant).utf8characters; + stringArg.append(NPVARIANT_TO_STRING(variant).utf8characters, NPVARIANT_TO_STRING(variant).utf8length); #else - stringArg += NPVARIANT_TO_STRING(variant).UTF8Characters; + stringArg.append(NPVARIANT_TO_STRING(variant).UTF8Characters, NPVARIANT_TO_STRING(variant).UTF8Length); #endif } else if (NPVARIANT_IS_OBJECT(variant)) { diff -r d2aff3800f4f plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Mar 08 15:54:39 2012 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Mar 08 15:56:50 2012 -0500 @@ -1094,11 +1094,16 @@ href_id, &href); // Strip everything after the last "/" + char *href_str; #if MOZILLA_VERSION_COLLAPSED < 1090200 - gchar** parts = g_strsplit (NPVARIANT_TO_STRING(href).utf8characters, "/", -1); + href_str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(href).utf8length + 1); + snprintf(href_str, NPVARIANT_TO_STRING(href).utf8length+1, "%s", NPVARIANT_TO_STRING(href).utf8characters); #else - gchar** parts = g_strsplit (NPVARIANT_TO_STRING(href).UTF8Characters, "/", -1); + href_str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(href).UTF8Length + 1); + snprintf(href_str, NPVARIANT_TO_STRING(href).UTF8Length+1, "%s", NPVARIANT_TO_STRING(href).UTF8Characters); #endif + + gchar** parts = g_strsplit (href_str, "/", -1); guint parts_sz = g_strv_length (parts); std::string location_str; @@ -1113,6 +1118,9 @@ // Release references. browser_functions.releasevariantvalue(&href); browser_functions.releasevariantvalue(&location); + g_strfreev(parts); + free(href_str); + href_str = NULL; cleanup_done: PLUGIN_DEBUG ("plugin_get_documentbase return\n"); PLUGIN_DEBUG("plugin_get_documentbase returning: %s\n", documentbase_copy); diff -r d2aff3800f4f plugin/icedteanp/IcedTeaPluginRequestProcessor.cc --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc Thu Mar 08 15:54:39 2012 +0100 +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc Thu Mar 08 15:56:50 2012 -0500 @@ -842,12 +842,12 @@ script.utf8characters = script_str->c_str(); script.utf8length = script_str->size(); - PLUGIN_DEBUG("Evaluating: %s\n", script.utf8characters); + PLUGIN_DEBUG("Evaluating: %s\n", script_str->c_str()); #else script.UTF8Characters = script_str->c_str(); script.UTF8Length = script_str->size(); - PLUGIN_DEBUG("Evaluating: %s\n", script.UTF8Characters); + PLUGIN_DEBUG("Evaluating: %s\n", script_str->c_str()); #endif ((AsyncCallThreadData*) data)->call_successful = browser_functions.evaluate(instance, window_ptr, &script, eval_variant); diff -r d2aff3800f4f plugin/icedteanp/IcedTeaPluginUtils.cc --- a/plugin/icedteanp/IcedTeaPluginUtils.cc Thu Mar 08 15:54:39 2012 +0100 +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc Thu Mar 08 15:56:50 2012 -0500 @@ -669,9 +669,9 @@ else if (NPVARIANT_IS_STRING(variant)) { #if MOZILLA_VERSION_COLLAPSED < 1090200 - PLUGIN_DEBUG("STRING: %s\n", NPVARIANT_TO_STRING(variant).utf8characters); + PLUGIN_DEBUG("STRING: %s (length=%d)\n", NPVARIANT_TO_STRING(variant).utf8characters, NPVARIANT_TO_STRING(variant).utf8length); #else - PLUGIN_DEBUG("STRING: %s\n", NPVARIANT_TO_STRING(variant).UTF8Characters); + PLUGIN_DEBUG("STRING: %s (length=%d)\n", NPVARIANT_TO_STRING(variant).UTF8Characters, NPVARIANT_TO_STRING(variant).UTF8Length); #endif } else @@ -712,11 +712,11 @@ { free(str); #if MOZILLA_VERSION_COLLAPSED < 1090200 - str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).utf8length); - sprintf(str, "%s", NPVARIANT_TO_STRING(variant).utf8characters); + str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).utf8length + 1); + snprintf(str, NPVARIANT_TO_STRING(variant).utf8length+1, "%s", NPVARIANT_TO_STRING(variant).utf8characters); #else - str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).UTF8Length); - sprintf(str, "%s", NPVARIANT_TO_STRING(variant).UTF8Characters); + str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).UTF8Length + 1); + snprintf(str, NPVARIANT_TO_STRING(variant).UTF8Length+1, "%s", NPVARIANT_TO_STRING(variant).UTF8Characters); #endif } else @@ -867,9 +867,9 @@ std::string constructor_name = std::string(); #if MOZILLA_VERSION_COLLAPSED < 1090200 - constructor_name.append(NPVARIANT_TO_STRING(constructor_str).utf8characters); + constructor_name.append(NPVARIANT_TO_STRING(constructor_str).utf8characters, NPVARIANT_TO_STRING(constructor_str).utf8length); #else - constructor_name.append(NPVARIANT_TO_STRING(constructor_str).UTF8Characters); + constructor_name.append(NPVARIANT_TO_STRING(constructor_str).UTF8Characters, NPVARIANT_TO_STRING(constructor_str).UTF8Length); #endif PLUGIN_DEBUG("Constructor for NPObject is %s\n", constructor_name.c_str()); From bugzilla-daemon at icedtea.classpath.org Thu Mar 8 14:23:02 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 08 Mar 2012 22:23:02 +0000 Subject: [Bug 894] Applet crash causes plugin to hang until Firefox stops the script. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=894 --- Comment #2 from Danesh Dadachanji 2012-03-08 22:23:02 UTC --- (In reply to comment #1) > Does this patch fix it? > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-January/016905.html Nope, tested on HEAD but it still hangs until Firefox prompts to stop it. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From andrew at icedtea.classpath.org Fri Mar 9 07:27:11 2012 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 09 Mar 2012 15:27:11 +0000 Subject: /hg/icedtea6-hg: 10 new changesets Message-ID: changeset d240889408be in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=d240889408be author: aph date: Mon Feb 20 12:02:21 2012 +0000 Don't use shared Eden in incremental mode. 2012-02-20 Andrew Haley * arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp (Helper_new): Don't use shared Eden in incremental mode. changeset 8d0e6091efad in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=8d0e6091efad author: aph date: Mon Feb 20 15:59:31 2012 +0000 merge ChangeLog changeset e77e59c08299 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=e77e59c08299 author: aph date: Mon Feb 20 16:03:08 2012 +0000 Add PR# to ChangeLog. changeset 01123e3102cc in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=01123e3102cc author: aph date: Wed Feb 22 15:36:29 2012 +0000 Math inlines for ARM. 2012-02-22 Andrew Haley * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp (handle_special_method, jstack_to_vfp, vfp_to_jstack): New functions. (Thumb2_codegen): Call handle_special_method. (t_vop_ops): Add VSQRT. (T_VMOVD_VFP_TOVFP): New macro. (vmov_reg_d_VFP_to_VFP): New function. changeset 6b69d846d8cb in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=6b69d846d8cb author: ptisnovs date: Fri Feb 24 13:52:49 2012 +0100 Added patch with JavaDoc fixes for ScriptEngineManager class & minor Makefile.am correction. changeset 44f51ec924fa in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=44f51ec924fa author: ptisnovs date: Mon Feb 27 11:50:34 2012 +0100 Backport of S6883983: JarVerifier dependency on sun.security.pkcs should be removed changeset 54ceda20a02c in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=54ceda20a02c author: ptisnovs date: Mon Feb 27 14:40:52 2012 +0100 Backport of S4465490: Suspicious about double-check locking idiom being used in the code. changeset b8d810f20366 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=b8d810f20366 author: Xerxes Ranby date: Fri Mar 02 16:08:50 2012 +0100 Fix ARM SIGILL crash during BLX call to thumb compiled StrictMath intrinsics. 2012-03-02 Xerxes Ranby Andrew Haley * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: (handle_special_method): Fix a off by one byte SIGILL crash during BLX call to thumb compiled StrictMath intrinsics for --with-float=hard --with-mode=thumb ARM builds. changeset 3065aa2f9f1b in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=3065aa2f9f1b author: Andrew John Hughes date: Fri Mar 09 13:28:45 2012 +0000 Merge changeset d73113d5c0ba in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=d73113d5c0ba author: Andrew John Hughes date: Fri Mar 09 15:26:58 2012 +0000 Drop upstreamed security patches. 2012-03-09 Andrew John Hughes * patches/security/20120214/7082299.patch, * patches/security/20120214/7088367.patch, * patches/security/20120214/7110683.patch, * patches/security/20120214/7110687.patch, * patches/security/20120214/7110700.patch, * patches/security/20120214/7110704.patch, * patches/security/20120214/7118283.patch, * patches/security/20120214/7126960.patch: Removed; upstream. * Makefile.am: Drop above patches. diffstat: ChangeLog | 78 + Makefile.am | 21 +- NEWS | 2 + arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp | 2 +- arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 139 ++- patches/ScriptEngineManager-doc.patch | 28 + patches/ecj/icedtea.patch | 87 +- patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch | 20 + patches/openjdk/6633275-shaped_translucent_windows.patch | 7 - patches/openjdk/6725214-direct3d-01.patch | 7 - patches/openjdk/6851973-kerberos.patch | 200 ---- patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch | 22 + patches/openjdk/7091528-javadoc_class_files.patch | 187 ---- patches/openjdk/7102369-7094468-rmiregistry.patch | 466 ---------- patches/openjdk/7103725-ssl_beast_regression.patch | 21 - patches/security/20120214/7082299.patch | 200 ---- patches/security/20120214/7088367.patch | 43 - patches/security/20120214/7110683.patch | 169 --- patches/security/20120214/7110687.patch | 232 ---- patches/security/20120214/7110700.patch | 41 - patches/security/20120214/7110704.patch | 60 - patches/security/20120214/7118283.patch | 26 - patches/security/20120214/7126960.patch | 80 - 23 files changed, 336 insertions(+), 1802 deletions(-) diffs (truncated from 2644 to 500 lines): diff -r 49f9beb1f03c -r d73113d5c0ba ChangeLog --- a/ChangeLog Wed Feb 15 15:48:21 2012 +0000 +++ b/ChangeLog Fri Mar 09 15:26:58 2012 +0000 @@ -1,3 +1,62 @@ +2012-03-09 Andrew John Hughes + + * patches/security/20120214/7082299.patch, + * patches/security/20120214/7088367.patch, + * patches/security/20120214/7110683.patch, + * patches/security/20120214/7110687.patch, + * patches/security/20120214/7110700.patch, + * patches/security/20120214/7110704.patch, + * patches/security/20120214/7118283.patch, + * patches/security/20120214/7126960.patch: + Removed; upstream. + * Makefile.am: Drop above patches. + +2012-03-02 Xerxes R??nby + Andrew Haley + + * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: + (handle_special_method): Fix a off by one byte SIGILL crash + during BLX call to thumb compiled StrictMath intrinsics for + --with-float=hard --with-mode=thumb ARM builds. + +2012-02-27 Pavel Tisnovsky + + * Makefile.am: Add new patch. + * NEWS: Mention backport. + * patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch: + Backport of S4465490: Suspicious about double-check locking idiom being + used in the code. + +2012-02-27 Pavel Tisnovsky + + * Makefile.am: Add new patch. + * NEWS: Mention backport. + * patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch: + Backport of S6883983: JarVerifier dependency on + sun.security.pkcs should be removed + +2012-02-24 Pavel Tisnovsky + + * patches/ScriptEngineManager-doc.patch: + Added patch with JavaDoc fixes for ScriptEngineManager class. + * Makefile.am: updated + +2012-02-22 Andrew Haley + + * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp + (handle_special_method, jstack_to_vfp, vfp_to_jstack): New + functions. + (Thumb2_codegen): Call handle_special_method. + (t_vop_ops): Add VSQRT. + (T_VMOVD_VFP_TOVFP): New macro. + (vmov_reg_d_VFP_to_VFP): New function. + +2012-02-20 Andrew Haley + + PR584: + * arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp (Helper_new): + Don't use shared Eden in incremental mode. + 2012-02-15 Andrew John Hughes * NEWS: Bring in 1.8.13, 1.9.13 and 1.10.6 @@ -102,6 +161,20 @@ (Thumb2_Return): Pass stackdepth to Thumb2_Safepoint. (Thumb2_codegen): Pass stackdepth to Thumb2_Return. +2012-01-18 Andrew John Hughes + + * patches/openjdk/6851973-kerberos.patch, + * patches/openjdk/7091528-javadoc_class_files.patch, + * patches/openjdk/7102369-7094468-rmiregistry.patch, + * patches/openjdk/7103725-ssl_beast_regression.patch: + Dropped; upstream. + * Makefile.am: Remove dropped patches. + * patches/ecj/icedtea.patch: Updated due to 6790292. + * patches/openjdk/6633275-shaped_translucent_windows.patch, + * patches/openjdk/6725214-direct3d-01.patch: + Remove copyright notice changes broken as a result of the annoying + 7128474 change. + 2012-01-18 Xerxes R??nby * openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S @@ -1786,6 +1859,11 @@ 2011-11-28 Andrew John Hughes + * Makefile.am: + Bump to b25 (next version in hg). + +2011-11-28 Andrew John Hughes + * NEWS: Remove inaccurate line about ARM assembler. diff -r 49f9beb1f03c -r d73113d5c0ba Makefile.am --- a/Makefile.am Wed Feb 15 15:48:21 2012 +0000 +++ b/Makefile.am Fri Mar 09 15:26:58 2012 +0000 @@ -2,7 +2,7 @@ OPENJDK_DATE = 14_nov_2011 OPENJDK_SHA256SUM = f84e7f0938f4939660ff8f9c2aa164d301faa8a519f2324ceb05ad34b2e09227 -OPENJDK_VERSION = b24 +OPENJDK_VERSION = b25 OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/ CACAO_VERSION = cff92704c4e0 @@ -201,15 +201,7 @@ ICEDTEA_FSG_PATCHES = -SECURITY_PATCHES = \ - patches/security/20120214/7082299.patch \ - patches/security/20120214/7088367.patch \ - patches/security/20120214/7110683.patch \ - patches/security/20120214/7110687.patch \ - patches/security/20120214/7110700.patch \ - patches/security/20120214/7110704.patch \ - patches/security/20120214/7118283.patch \ - patches/security/20120214/7126960.patch +SECURITY_PATCHES = SPECIAL_SECURITY_PATCH = patches/security/20120214/7112642.patch @@ -412,15 +404,14 @@ patches/arm-debug.patch \ patches/arm-hsdis.patch \ patches/openjdk/7103610-_NET_WM_PID_and_WM_CLIENT_MACHINE_are_not_set.patch \ - patches/openjdk/7102369-7094468-rmiregistry.patch \ - patches/openjdk/6851973-kerberos.patch \ - patches/openjdk/7091528-javadoc_class_files.patch \ - patches/openjdk/7103725-ssl_beast_regression.patch \ patches/openjdk/6706974-krb5_test_infrastructure.patch \ patches/openjdk/6764553-IdResolver_is_not_thread_safe.patch \ patches/openjdk/6761072-new_krb5_tests_fail_on_multiple_platforms.patch \ patches/openjdk/7140882-dont-return-booleans-from-methods-returning-pointers.patch \ - patches/openjdk/remove-mimpure-option-to-gcc.patch + patches/openjdk/remove-mimpure-option-to-gcc.patch \ + patches/ScriptEngineManager-doc.patch \ + patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch \ + patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 49f9beb1f03c -r d73113d5c0ba NEWS --- a/NEWS Wed Feb 15 15:48:21 2012 +0000 +++ b/NEWS Fri Mar 09 15:26:58 2012 +0000 @@ -18,6 +18,8 @@ - S6706974: Add krb5 test infrastructure - S6764553: com.sun.org.apache.xml.internal.security.utils.IdResolver is not thread safe - S6761072: new krb5 tests fail on multiple platforms + - S6883983: JarVerifier dependency on sun.security.pkcs should be removed + - S4465490: Suspicious about double-check locking idiom being used in the code New in release 1.10.6 (2012-02-14): diff -r 49f9beb1f03c -r d73113d5c0ba arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp Wed Feb 15 15:48:21 2012 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp Fri Mar 09 15:26:58 2012 +0000 @@ -141,7 +141,7 @@ if (UseTLAB) { result = (oop) thread->tlab().allocate(obj_size); } - if (result == NULL) { + if (result == NULL && !CMSIncrementalMode) { need_zero = true; // Try allocate in shared eden retry: diff -r 49f9beb1f03c -r d73113d5c0ba arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Feb 15 15:48:21 2012 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Mar 09 15:26:58 2012 +0000 @@ -1557,7 +1557,7 @@ } while (!(bc_stackinfo[bci] & BC_BRANCH_TARGET)); return 0; } -#endif // ZOMBIT_DETECTION +#endif // ZOMBIE_DETECTION void Thumb2_RegAlloc(Thumb2_Info *jinfo) { @@ -1991,12 +1991,14 @@ #define VP_SUB 1 #define VP_MUL 2 #define VP_DIV 3 +#define VP_SQRT 4 static const unsigned t_vop_ops[] = { 0xee300a00, // VADD 0xee300a40, // VSUB 0xee200a00, // VMUL 0xee800a00, // VDIV + 0xeeb10bc0 // VSQRT }; #define VP_REG(op) t_vop_ops[op] @@ -2162,6 +2164,9 @@ #define T_VMOVD_TOVFP(dst, src_lo, src_hi) \ (0xec400b10 | ((src_lo) << 12) | ((src_hi) << 16) | (((dst) & 0x10)<<(5-4)) | ((dst) & 0x0f)) +// VFP reg to VFP re move. +#define T_VMOVD_VFP_TOVFP(dst, src) (0xeeb00b40 | (((dst) & 0x0f) << 12) | ((src) & 0x0f)) + #define T_VOP_REG_S(op, dst, lho, rho) ((op) | \ (((dst) & 1) << 22) | (((dst) & 0x1e) << (12-1)) | \ (((lho) & 1) << 7) | (((lho) & 0x1e) << (16-1)) | \ @@ -2730,6 +2735,11 @@ return out_16x2(codebuf, T_VMOVD_TOVFP(dst, src_lo, src_hi)); } +int vmov_reg_d_VFP_to_VFP(CodeBuf *codebuf, u32 dst, u32 src) +{ + return out_16x2(codebuf, T_VMOVD_VFP_TOVFP(dst, src)); +} + int vmov_reg_d_toARM(CodeBuf *codebuf, u32 dst_lo, u32 dst_hi, u32 src) { return out_16x2(codebuf, T_VMOVD_TOARM(dst_lo, dst_hi, src)); @@ -4976,6 +4986,129 @@ extern "C" void _ZN18InterpreterRuntime18register_finalizerEP10JavaThreadP7oopDesc(void); +// Push VFP_REG to the java stack. +static void vfp_to_jstack(Thumb2_Info *jinfo, int vfp_reg) { + Thumb2_Stack *jstack = jinfo->jstack; + unsigned r_lo, r_hi; + r_hi = PUSH(jstack, JSTACK_REG(jstack)); + r_lo = PUSH(jstack, JSTACK_REG(jstack)); + vmov_reg_d_toARM(jinfo->codebuf, r_lo, r_hi, vfp_reg); +} + +// Pop the java stack to VFP_REG . +static void jstack_to_vfp(Thumb2_Info *jinfo, int vfp_reg) { + Thumb2_Stack *jstack = jinfo->jstack; + unsigned r_lo, r_hi; + Thumb2_Fill(jinfo, 2); + r_lo = POP(jstack); + r_hi = POP(jstack); + vmov_reg_d_toVFP(jinfo->codebuf, vfp_reg, r_lo, r_hi); + Thumb2_Flush(jinfo); +} + +// Expand a call to a "special" method. These are usually inlines of +// java.lang.Math methods. Return true if the inlining succeeded. +static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo) { +#ifdef __ARM_PCS_VFP + Thumb2_Stack *jstack = jinfo->jstack; + + const char *entry_name; + + unsigned loc1 = 0; + + switch (Interpreter::method_kind(callee)) { + case Interpreter::java_lang_math_abs: + { + unsigned r_lo, r_hi; + + Thumb2_Fill(jinfo, 2); + r_lo = POP(jstack); + r_hi = POP(jstack); + dop_imm_s(jinfo->codebuf, DP_BIC, r_hi, r_hi, 0x80000000, 0); + PUSH(jstack, r_hi); + PUSH(jstack, r_lo); + + return true; + } + + case Interpreter::java_lang_math_sin: + entry_name = "Java_java_lang_StrictMath_sin"; + break; + + case Interpreter::java_lang_math_cos: + entry_name = "Java_java_lang_StrictMath_cos"; + break; + + case Interpreter::java_lang_math_tan: + entry_name = "Java_java_lang_StrictMath_tan"; + break; + + case Interpreter::java_lang_math_sqrt: + { + void *entry_point = dlsym(NULL, "Java_java_lang_StrictMath_sqrt"); + if (! entry_point) + return false; + + unsigned r_lo, r_hi, r_res_lo, r_res_hi; + + // Make sure that canonical NaNs are returned, as per the spec. + // + // Generate: + // vsqrt.f64 d0, d1 + // vcmp.f64 d0, d0 + // vmrs APSR_nzcv, fpscr + // beq.n 0f + // vmov.f64 d0, d1 + // blx Java_java_lang_StrictMath_sqrt + // 0: + jstack_to_vfp(jinfo, VFP_D1); + vop_reg_d(jinfo->codebuf, VP_SQRT, VFP_D0, 0, VFP_D1); + vcmp_reg_d(jinfo->codebuf, VFP_D0, VFP_D0, 0); + vmrs(jinfo->codebuf, ARM_PC); + int loc = forward_16(jinfo->codebuf); + vmov_reg_d_VFP_to_VFP(jinfo->codebuf, VFP_D0, VFP_D1); + // FIXME: The JNI StrictMath routines don't use the JNIEnv *env + // parameter, so it's arguably pointless to pass it here. + add_imm(jinfo->codebuf, ARM_R0, Rthread, THREAD_JNI_ENVIRONMENT); + blx(jinfo->codebuf, (unsigned)entry_point); + bcc_patch(jinfo->codebuf, COND_EQ, loc); + vfp_to_jstack(jinfo, VFP_D0); + + return true; + } + + case Interpreter::java_lang_math_log: + entry_name = "Java_java_lang_StrictMath_log"; + break; + + case Interpreter::java_lang_math_log10: + entry_name = "Java_java_lang_StrictMath_log10"; + break; + + default: + return false; + } + + void *entry_point = dlsym(NULL, entry_name); + if (! entry_point) + return false; + + unsigned r_lo, r_hi, r_res_lo, r_res_hi; + + jstack_to_vfp(jinfo, VFP_D0); + // FIXME: The JNI StrictMath routines don't use the JNIEnv *env + // parameter, so it's arguably pointless to pass it here. + add_imm(jinfo->codebuf, ARM_R0, Rthread, THREAD_JNI_ENVIRONMENT); + mov_imm(jinfo->codebuf, ARM_IP, (unsigned)entry_point); + blx_reg(jinfo->codebuf, ARM_IP); + vfp_to_jstack(jinfo, VFP_D0); + + return true; +#else + return false; +#endif // __ARM_PCS_VFP +} + void Thumb2_codegen(Thumb2_Info *jinfo, unsigned start) { unsigned code_size = jinfo->code_size; @@ -6044,6 +6177,10 @@ } callee = (methodOop)cache->f1(); + + if (handle_special_method(callee, jinfo)) + break; + if (callee->is_accessor()) { u1 *code = callee->code_base(); int index = GET_NATIVE_U2(&code[2]); diff -r 49f9beb1f03c -r d73113d5c0ba patches/ScriptEngineManager-doc.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/ScriptEngineManager-doc.patch Fri Mar 09 15:26:58 2012 +0000 @@ -0,0 +1,29 @@ +--- openjdk.orig/jdk/src/share/classes/javax/script/ScriptEngineManager.java 2011-11-14 23:11:55.000000000 +0100 ++++ openjdk/jdk/src/share/classes/javax/script/ScriptEngineManager.java 2012-02-24 12:01:38.745796422 +0100 +@@ -39,7 +39,7 @@ + * collection of key/value pairs storing state shared by all engines created + * by the Manager. This class uses the service provider mechanism to enumerate all the + * implementations of ScriptEngineFactory.

+- * The ScriptEngineManager provides a method to return an array of all these factories ++ * The ScriptEngineManager provides a method to return a list of all these factories + * as well as utility methods which look up factories on the basis of language name, file extension + * and mime type. + *

+@@ -202,7 +202,7 @@ + * The algorithm first searches for a ScriptEngineFactory that has been + * registered as a handler for the specified name using the registerEngineName + * method. +- *

If one is not found, it searches the array of ScriptEngineFactory instances ++ *

If one is not found, it searches the set of ScriptEngineFactory instances + * stored by the constructor for one with the specified name. If a ScriptEngineFactory + * is found by either method, it is used to create instance of ScriptEngine. + * @param shortName The short name of the ScriptEngine implementation. +@@ -351,7 +351,7 @@ + } + + /** +- * Returns an array whose elements are instances of all the ScriptEngineFactory classes ++ * Returns a list whose elements are instances of all the ScriptEngineFactory classes + * found by the discovery mechanism. + * @return List of all discovered ScriptEngineFactorys. + */ diff -r 49f9beb1f03c -r d73113d5c0ba patches/ecj/icedtea.patch --- a/patches/ecj/icedtea.patch Wed Feb 15 15:48:21 2012 +0000 +++ b/patches/ecj/icedtea.patch Fri Mar 09 15:26:58 2012 +0000 @@ -1,6 +1,6 @@ diff -Nru openjdk-ecj.orig/corba/make/com/sun/corba/se/Makefile openjdk-ecj/corba/make/com/sun/corba/se/Makefile --- openjdk-ecj.orig/corba/make/com/sun/corba/se/Makefile 2010-05-26 09:31:18.000000000 +0100 -+++ openjdk-ecj/corba/make/com/sun/corba/se/Makefile 2010-05-26 15:02:51.000000000 +0100 ++++ openjdk-ecj/corba/make/com/sun/corba/se/Makefile 2012-01-18 21:43:04.134185695 +0000 @@ -42,7 +42,7 @@ # the rmic iiop backend needs some classes that are part of the impl/util # package. These classes use log wrappers, so they must be built after @@ -12,7 +12,7 @@ diff -Nru openjdk-ecj.orig/corba/make/com/sun/corba/se/org/Makefile openjdk-ecj/corba/make/com/sun/corba/se/org/Makefile --- openjdk-ecj.orig/corba/make/com/sun/corba/se/org/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk-ecj/corba/make/com/sun/corba/se/org/Makefile 2010-05-26 15:02:51.000000000 +0100 ++++ openjdk-ecj/corba/make/com/sun/corba/se/org/Makefile 2012-01-18 21:43:04.146185899 +0000 @@ -0,0 +1,38 @@ +# +# Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. @@ -281,8 +281,8 @@ -# -include $(BUILDDIR)/common/Rules.gmk diff -Nru openjdk-ecj.orig/corba/make/common/Defs.gmk openjdk-ecj/corba/make/common/Defs.gmk ---- openjdk-ecj.orig/corba/make/common/Defs.gmk 2010-05-26 09:31:18.000000000 +0100 -+++ openjdk-ecj/corba/make/common/Defs.gmk 2010-05-26 15:02:51.000000000 +0100 +--- openjdk-ecj.orig/corba/make/common/Defs.gmk 2011-01-10 21:21:55.000000000 +0000 ++++ openjdk-ecj/corba/make/common/Defs.gmk 2012-01-18 21:43:04.146185899 +0000 @@ -53,6 +53,13 @@ _OUTPUTDIR=$(TOPDIR)/build/$(PLATFORM)-$(ARCH) @@ -297,7 +297,7 @@ # # Get platform definitions # -@@ -129,8 +136,6 @@ +@@ -118,8 +125,6 @@ # for build tool jar files BUILDTOOLJARDIR = $(OUTPUTDIR)/btjars ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars @@ -306,7 +306,7 @@ # for generated C source files (not javah) GENNATIVESRCDIR = $(OUTPUTDIR)/gennativesrc # for imported source files -@@ -231,7 +236,7 @@ +@@ -220,7 +225,7 @@ # We define an intermediate variable for Java files because # we use its value later to help define $SOURCEPATH @@ -316,9 +316,9 @@ vpath %.java $(VPATH.java) vpath %.class $(CLASSBINDIR) diff -Nru openjdk-ecj.orig/corba/make/common/Defs-linux.gmk openjdk-ecj/corba/make/common/Defs-linux.gmk ---- openjdk-ecj.orig/corba/make/common/Defs-linux.gmk 2010-05-26 14:24:58.000000000 +0100 -+++ openjdk-ecj/corba/make/common/Defs-linux.gmk 2010-05-26 15:02:51.000000000 +0100 -@@ -272,7 +272,7 @@ +--- openjdk-ecj.orig/corba/make/common/Defs-linux.gmk 2012-01-18 16:50:50.977002556 +0000 ++++ openjdk-ecj/corba/make/common/Defs-linux.gmk 2012-01-18 21:43:04.146185899 +0000 +@@ -271,7 +271,7 @@ # VM_NAME = server JVMLIB = -L$(BOOTDIR)/jre/lib/$(LIBARCH)/$(VM_NAME) -ljvm @@ -328,25 +328,25 @@ # # We want to privatize JVM symbols on Solaris. This is so the user can diff -Nru openjdk-ecj.orig/corba/make/common/Rules.gmk openjdk-ecj/corba/make/common/Rules.gmk ---- openjdk-ecj.orig/corba/make/common/Rules.gmk 2010-05-26 09:31:18.000000000 +0100 -+++ openjdk-ecj/corba/make/common/Rules.gmk 2010-05-26 15:02:51.000000000 +0100 -@@ -197,8 +197,10 @@ +--- openjdk-ecj.orig/corba/make/common/Rules.gmk 2012-01-18 14:06:25.120768497 +0000 ++++ openjdk-ecj/corba/make/common/Rules.gmk 2012-01-18 21:44:43.635816486 +0000 +@@ -201,8 +201,10 @@ $(ECHO) "# Java sources to be compiled: (listed in file $(JAVA_SOURCE_LIST))"; \ $(CAT) $(JAVA_SOURCE_LIST); \ $(ECHO) "# Running javac:"; \ -- $(ECHO) $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ -- $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ -+ $(ECHO) $(JAVAC_CMD) -bootclasspath $(ICEDTEA_RT):$(CLASSBINDIR) \ -+ -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ -+ $(JAVAC_CMD) -bootclasspath $(ICEDTEA_RT):$(CLASSBINDIR) \ -+ -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ +- $(ECHO) $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ +- $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ ++ $(ECHO) $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -bootclasspath $(ICEDTEA_RT):$(CLASSBINDIR) \ ++ -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ ++ $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -bootclasspath $(ICEDTEA_RT):$(CLASSBINDIR) \ ++ -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \ fi @$(java-vm-cleanup) diff -Nru openjdk-ecj.orig/corba/make/common/shared/Defs-java.gmk openjdk-ecj/corba/make/common/shared/Defs-java.gmk ---- openjdk-ecj.orig/corba/make/common/shared/Defs-java.gmk 2010-05-26 14:24:58.000000000 +0100 -+++ openjdk-ecj/corba/make/common/shared/Defs-java.gmk 2010-05-26 15:02:51.000000000 +0100 -@@ -117,31 +117,13 @@ +--- openjdk-ecj.orig/corba/make/common/shared/Defs-java.gmk 2012-01-18 16:50:57.569109033 +0000 ++++ openjdk-ecj/corba/make/common/shared/Defs-java.gmk 2012-01-18 21:43:04.150185964 +0000 +@@ -120,31 +120,13 @@ JAVACFLAGS += $(OTHER_JAVACFLAGS) # Needed for javah @@ -384,7 +384,7 @@ ifdef JAVAC diff -Nru openjdk-ecj.orig/corba/make/org/omg/sources/Makefile openjdk-ecj/corba/make/org/omg/sources/Makefile --- openjdk-ecj.orig/corba/make/org/omg/sources/Makefile 2010-05-26 09:31:18.000000000 +0100 -+++ openjdk-ecj/corba/make/org/omg/sources/Makefile 2010-05-26 15:02:51.000000000 +0100 From ahughes at redhat.com Fri Mar 9 08:01:13 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Fri, 09 Mar 2012 11:01:13 -0500 (EST) Subject: AES, NSS & OpenJDK In-Reply-To: <8592fb02-1f10-4255-8cd5-941a334e3ac3@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <1c0d69ab-ea01-4f01-9d2b-f7e28c2a4c9a@zmail17.collab.prod.int.phx2.redhat.com> We've been taking a look at the NSS provider again, with respect to the Intel AES instructions. Read about it here: http://bit.ly/yHAazq -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From bugzilla-daemon at icedtea.classpath.org Fri Mar 9 08:32:54 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 09 Mar 2012 16:32:54 +0000 Subject: [Bug 840] ClassLoader.getResourceAsStream returning null where sunjdk returns the resource In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=840 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|dbhole at redhat.com |jvanek at redhat.com -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ddadacha at redhat.com Fri Mar 9 09:16:01 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 09 Mar 2012 12:16:01 -0500 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. Message-ID: <4F5A3AD1.5020105@redhat.com> If javaws is run with -headless and a launch error occurs, no message is printed and javaws exits. An exception is only shown if -verbose is passed too. This patch fixes it so that if -headless OR -verbose is used, the error and stacktrace are shown. Furthermore, when javaws -verbose is used (_without_ -headless), the stacktrace is printed to stderr too. This will come in handy once GUI testing for applets is available. +2012-03-09 Danesh Dadachanji + + Fix output of launch errors when headless or verbose are used. + * netx/net/sourceforge/jnlp/DefaultLaunchHandler.java + (printMessage): Now prints the message to stderr. Also prints a stacktrace + if runtime is either headless or verbose. + * netx/net/sourceforge/jnlp/GuiLaunchHandler.java + (launchError): + Okay for HEAD? Cheers, Danesh -------------- next part -------------- A non-text attachment was scrubbed... Name: print-launch-errors-01.patch Type: text/x-patch Size: 2476 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120309/48de329e/print-launch-errors-01.patch From ddadacha at icedtea.classpath.org Fri Mar 9 10:48:55 2012 From: ddadacha at icedtea.classpath.org (ddadacha at icedtea.classpath.org) Date: Fri, 09 Mar 2012 18:48:55 +0000 Subject: /hg/release/icedtea6-1.10: Backport for PR732: Use xsltproc for ... Message-ID: changeset 7b2da3e832e1 in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=7b2da3e832e1 author: Danesh Dadachanji date: Fri Mar 09 13:48:15 2012 -0500 Backport for PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan diffstat: ChangeLog | 24 +++++++++++ Makefile.am | 16 ++----- NEWS | 2 + acinclude.m4 | 95 ---------------------------------------------- configure.ac | 4 +- patches/ecj/xsltproc.patch | 53 +++++++++++++++++++++++++ 6 files changed, 85 insertions(+), 109 deletions(-) diffs (274 lines): diff -r 721eb2358a9e -r 7b2da3e832e1 ChangeLog --- a/ChangeLog Wed Feb 15 09:44:28 2012 +0000 +++ b/ChangeLog Fri Mar 09 13:48:15 2012 -0500 @@ -1,3 +1,27 @@ +2012-03-09 Danesh Dadachanji + + * Makefile.am: + (ENDORSED_DIR): Removed. + (ICEDTEA_ECJ_PATCHES): Add xsltproc.patch. + (ICEDTEA_ENV_ECJ): Set XSLT. Don't + set ICEDTEA_ENDORSED_DIR or ENDORSED. + (bootstrap-directory-stage1): Don't link + xalan2, xerces2 or xalan2 serialiser. + * acinclude.m4: + (IT_FIND_XALAN2_JAR): Removed. + (IT_FIND_XALAN2_SERIALIZER_JAR): Removed. + (IT_FIND_XERCES2_JAR): Removed. + * configure.ac: + Replace calls to FIND_XALAN2_JAR, + IT_FIND_XALAN2_SERIALIZER_JAR and + IT_FIND_XERCES2_JAR with call to + IT_FIND_TOOL for xsltproc. + * patches/ecj/xsltproc.patch: + Patch jvmti.make in HotSpot to use + xsltproc instead of Java's XSLT + when bootstrapping. + * NEWS: Updated. + 2012-02-15 Andrew John Hughes * NEWS: Add 1.10.7. diff -r 721eb2358a9e -r 7b2da3e832e1 Makefile.am --- a/Makefile.am Wed Feb 15 09:44:28 2012 +0000 +++ b/Makefile.am Fri Mar 09 13:48:15 2012 -0500 @@ -40,7 +40,6 @@ ICEDTEA_CLS_DIR = $(BUILD_OUTPUT_DIR)/classes ICEDTEA_CLS_DIR_ECJ = $(ECJ_BUILD_OUTPUT_DIR)/classes BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0 -ENDORSED_DIR = $(BOOT_DIR)/lib/endorsed ECJ_BOOT_DIR = $(abs_top_builddir)/bootstrap/ecj ICEDTEA_BOOT_DIR = $(abs_top_builddir)/bootstrap/icedtea JAMVM_IMPORT_PATH = $(abs_top_builddir)/jamvm/install/hotspot @@ -456,7 +455,8 @@ patches/ecj/jaxp-dependency.patch \ patches/ecj/bootver.patch \ patches/ecj/getannotation-cast.patch \ - patches/ecj/override.patch + patches/ecj/override.patch \ + patches/ecj/xsltproc.patch if DTDTYPE_QNAME ICEDTEA_ECJ_PATCHES += \ @@ -511,8 +511,6 @@ ALT_BOOTDIR="$(BOOT_DIR)" \ BUILD_ARCH_DIR="$(BUILD_ARCH_DIR)" \ ICEDTEA_CLS_DIR="$(ICEDTEA_CLS_DIR)" \ - ICEDTEA_ENDORSED_DIR="$(ENDORSED_DIR)" \ - ENDORSED="-Djava.endorsed.dirs=$(ENDORSED_DIR)" \ CLASSPATH="" \ LD_LIBRARY_PATH="" \ ZERO_BUILD="$(ICEDTEA_ZERO_BUILD)" \ @@ -600,8 +598,9 @@ JAR_KNOWS_J_OPTIONS="$(JAR_KNOWS_J_OPTIONS)" \ JAR_ACCEPTS_STDIN_LIST="$(JAR_ACCEPTS_STDIN_LIST)" \ DISABLE_NIMBUS="true" \ - NO_DOCS="true" - + NO_DOCS="true" \ + XSLT="$(XSLTPROC)" + # Source files # FIXME (distclean): Add generated file list # FIXME (distclean): Add jtreg sources @@ -1291,11 +1290,6 @@ ln -sf $(NATIVE2ASCII) $(ECJ_BOOT_DIR)/bin/native2ascii ln -sf $(abs_top_builddir)/javac $(ECJ_BOOT_DIR)/bin/javac ln -sf $(abs_top_builddir)/javap $(ECJ_BOOT_DIR)/bin/javap - mkdir -p $(ECJ_BOOT_DIR)/lib/endorsed && \ - ln -sf $(XALAN2_JAR) $(ECJ_BOOT_DIR)/lib/endorsed/xalan-j2.jar && \ - ln -sf $(XALAN2_SERIALIZER_JAR) \ - $(ECJ_BOOT_DIR)/lib/endorsed/xalan-j2-serializer.jar && \ - ln -sf $(XERCES2_JAR) $(ECJ_BOOT_DIR)/lib/endorsed/xerces-j2.jar mkdir -p $(ECJ_BOOT_DIR)/jre/lib && \ cp $(SYSTEM_JDK_DIR)/jre/lib/rt.jar $(ECJ_BOOT_DIR)/jre/lib/rt.jar && \ ln -sf $(SYSTEM_JDK_DIR)/jre/lib/$(JRE_ARCH_DIR) \ diff -r 721eb2358a9e -r 7b2da3e832e1 NEWS --- a/NEWS Wed Feb 15 09:44:28 2012 +0000 +++ b/NEWS Fri Mar 09 13:48:15 2012 -0500 @@ -10,6 +10,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.10.7 (2012-XX-XX): +* Bug fixes + - PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan New in release 1.10.6 (2012-02-14): diff -r 721eb2358a9e -r 7b2da3e832e1 acinclude.m4 --- a/acinclude.m4 Wed Feb 15 09:44:28 2012 +0000 +++ b/acinclude.m4 Fri Mar 09 13:48:15 2012 -0500 @@ -630,101 +630,6 @@ AC_SUBST(ALT_JAR_CMD) ]) -AC_DEFUN([IT_FIND_XALAN2_JAR], -[ - AC_MSG_CHECKING([for a xalan2 jar]) - AC_ARG_WITH([xalan2-jar], - [AS_HELP_STRING(--with-xalan2-jar,specify location of the xalan2 jar)], - [ - if test -f "${withval}" ; then - XALAN2_JAR="${withval}" - fi - ], - [ - XALAN2_JAR= - ]) - if test -z "${XALAN2_JAR}"; then - if test -e "/usr/share/java/xalan-j2.jar"; then - XALAN2_JAR=/usr/share/java/xalan-j2.jar - elif test -e "/usr/share/java/xalan2.jar"; then - XALAN2_JAR=/usr/share/java/xalan2.jar - elif test -e "/usr/share/xalan/lib/xalan.jar"; then - XALAN2_JAR=/usr/share/xalan/lib/xalan.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XALAN2_JAR}"; then - AC_MSG_ERROR("A xalan2 jar was not found.") - fi - AC_MSG_RESULT(${XALAN2_JAR}) - AC_SUBST(XALAN2_JAR) -]) - -AC_DEFUN([IT_FIND_XALAN2_SERIALIZER_JAR], -[ - AC_MSG_CHECKING([for a xalan2 serializer jar]) - AC_ARG_WITH([xalan2-serializer-jar], - [AS_HELP_STRING(--with-xalan2-serializer-jar,specify location of the xalan2-serializer jar)], - [ - if test -f "${withval}" ; then - XALAN2_SERIALIZER_JAR="${withval}" - fi - ], - [ - XALAN2_SERIALIZER_JAR= - ]) - if test -z "${XALAN2_SERIALIZER_JAR}"; then - if test -e "/usr/share/java/xalan-j2-serializer.jar"; then - XALAN2_SERIALIZER_JAR=/usr/share/java/xalan-j2-serializer.jar - elif test -e "/usr/share/xalan-serializer/lib/serializer.jar"; then - XALAN2_SERIALIZER_JAR=/usr/share/xalan-serializer/lib/serializer.jar - elif test -e "/usr/share/java/serializer.jar"; then - XALAN2_SERIALIZER_JAR=/usr/share/java/serializer.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XALAN2_SERIALIZER_JAR}"; then - AC_MSG_ERROR("A xalan2-serializer jar was not found.") - fi - AC_MSG_RESULT(${XALAN2_SERIALIZER_JAR}) - AC_SUBST(XALAN2_SERIALIZER_JAR) -]) - -AC_DEFUN([IT_FIND_XERCES2_JAR], -[ - AC_MSG_CHECKING([for a xerces2 jar]) - AC_ARG_WITH([xerces2-jar], - [AS_HELP_STRING(--with-xerces2-jar,specify location of the xerces2 jar)], - [ - if test -f "${withval}" ; then - XERCES2_JAR="${withval}" - fi - ], - [ - XERCES2_JAR= - ]) - if test -z "${XERCES2_JAR}"; then - if test -e "/usr/share/java/xerces-j2.jar"; then - XERCES2_JAR=/usr/share/java/xerces-j2.jar - elif test -e "/usr/share/java/xerces2.jar"; then - XERCES2_JAR=/usr/share/java/xerces2.jar - elif test -e "/usr/share/xerces-2/lib/xercesImpl.jar"; then - XERCES2_JAR=/usr/share/xerces-2/lib/xercesImpl.jar - elif test -e "/usr/share/java/xercesImpl.jar"; then - XERCES2_JAR=/usr/share/java/xercesImpl.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XERCES2_JAR}"; then - AC_MSG_ERROR("A xerces2 jar was not found.") - fi - AC_MSG_RESULT(${XERCES2_JAR}) - AC_SUBST(XERCES2_JAR) -]) - AC_DEFUN([IT_FIND_RHINO_JAR], [ AC_MSG_CHECKING([whether to include Javascript support via Rhino]) diff -r 721eb2358a9e -r 7b2da3e832e1 configure.ac --- a/configure.ac Wed Feb 15 09:44:28 2012 +0000 +++ b/configure.ac Fri Mar 09 13:48:15 2012 -0500 @@ -156,9 +156,7 @@ IT_FIND_NATIVE2ASCII if test "x$enable_bootstrap" = "xyes"; then IT_FIND_ECJ_JAR - IT_FIND_XALAN2_JAR - IT_FIND_XALAN2_SERIALIZER_JAR - IT_FIND_XERCES2_JAR + IT_FIND_TOOL([XSLTPROC], [xsltproc]) fi AC_CONFIG_FILES([javac], [chmod +x javac]) AC_CONFIG_FILES([javap], [chmod +x javap]) diff -r 721eb2358a9e -r 7b2da3e832e1 patches/ecj/xsltproc.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/ecj/xsltproc.patch Fri Mar 09 13:48:15 2012 -0500 @@ -0,0 +1,54 @@ +diff -r 591c7dc0b2ee make/linux/makefiles/jvmti.make +--- openjdk-ecj.orig/hotspot/make/linux/makefiles/jvmti.make Thu May 19 13:27:44 2011 +0200 ++++ openjdk-ecj/hotspot/make/linux/makefiles/jvmti.make Wed May 25 20:01:25 2011 +0100 +@@ -59,8 +59,6 @@ + + JvmtiGeneratedFiles = $(JvmtiGeneratedNames:%=$(JvmtiOutDir)/%) + +-XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) $(ENDORSED) -classpath $(JvmtiOutDir) jvmtiGen +- + .PHONY: all jvmtidocs clean cleanall + + # ######################################################################### +@@ -77,34 +75,34 @@ + + $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnter.cpp -PARAM interface jvmti ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnter.cpp --stringparam interface jvmti $(JvmtiSrcDir)/jvmtiEnter.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp: $(JvmtiGenClass) $(InterpreterSrcDir)/bytecodeInterpreter.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl + @echo Generating $@ +- $(XSLT) -IN $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml -XSL $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl -OUT $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp ++ $(XSLT) -o $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml + + $(JvmtiOutDir)/jvmtiEnterTrace.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnterTrace.cpp -PARAM interface jvmti -PARAM trace Trace ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnterTrace.cpp --stringparam interface jvmti --stringparam trace Trace $(JvmtiSrcDir)/jvmtiEnter.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/jvmtiEnvRecommended.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiEnvFillClass) + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnv.xsl -OUT $(JvmtiOutDir)/jvmtiEnvStub.cpp ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmti.xml + $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiEnvFill $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiOutDir)/jvmtiEnvRecommended.cpp + + $(JvmtiOutDir)/jvmtiEnv.hpp: $(both) $(JvmtiSrcDir)/jvmtiHpp.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiHpp.xsl -OUT $(JvmtiOutDir)/jvmtiEnv.hpp ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnv.hpp $(JvmtiSrcDir)/jvmtiHpp.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/jvmti.h: $(both) $(JvmtiSrcDir)/jvmtiH.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiH.xsl -OUT $(JvmtiOutDir)/jvmti.h ++ $(XSLT) -o $(JvmtiOutDir)/jvmti.h $(JvmtiSrcDir)/jvmtiH.xsl $(JvmtiSrcDir)/jvmti.xml + + jvmtidocs: $(JvmtiOutDir)/jvmti.html + + $(JvmtiOutDir)/jvmti.html: $(both) $(JvmtiSrcDir)/jvmti.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmti.xsl -OUT $(JvmtiOutDir)/jvmti.html ++ $(XSLT) -o $(JvmtiOutDir)/jvmti.html $(JvmtiSrcDir)/jvmti.xsl $(JvmtiSrcDir)/jvmti.xml + + # ######################################################################### + From ddadacha at icedtea.classpath.org Fri Mar 9 10:57:53 2012 From: ddadacha at icedtea.classpath.org (ddadacha at icedtea.classpath.org) Date: Fri, 09 Mar 2012 18:57:53 +0000 Subject: /hg/release/icedtea6-1.9: Backport for PR732: Use xsltproc for b... Message-ID: changeset 9b3c0feaa29d in /hg/release/icedtea6-1.9 details: http://icedtea.classpath.org/hg/release/icedtea6-1.9?cmd=changeset;node=9b3c0feaa29d author: Danesh Dadachanji date: Fri Mar 09 13:57:42 2012 -0500 Backport for PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan diffstat: ChangeLog | 25 ++++++++++++ Makefile.am | 14 +---- NEWS | 3 + acinclude.m4 | 95 ---------------------------------------------- configure.ac | 4 +- patches/ecj/xsltproc.patch | 53 +++++++++++++++++++++++++ 6 files changed, 86 insertions(+), 108 deletions(-) diffs (274 lines): diff -r 5ede8a5762d4 -r 9b3c0feaa29d ChangeLog --- a/ChangeLog Wed Feb 15 09:40:29 2012 +0000 +++ b/ChangeLog Fri Mar 09 13:57:42 2012 -0500 @@ -1,3 +1,28 @@ +2012-03-09 Danesh Dadachanji + + * Makefile.am: + (ENDORSED_DIR): Removed. + (ICEDTEA_ECJ_PATCHES): Add xsltproc.patch. + (ICEDTEA_ENV_ECJ): Set XSLT. Don't + set ICEDTEA_ENDORSED_DIR or ENDORSED. + (bootstrap-directory-stage1): Don't link + xalan2, xerces2 or xalan2 serialiser. + * acinclude.m4: + (FIND_XALAN2_JAR): Removed. + (FIND_XALAN2_SERIALIZER_JAR): Removed. + (FIND_XERCES2_JAR): Removed. + * configure.ac: + Replace calls to FIND_XALAN2_JAR, + FIND_XALAN2_SERIALIZER_JAR and + FIND_XERCES2_JAR with call to + FIND_TOOL for xsltproc. + * patches/ecj/xsltproc.patch: + Patch jvmti.make in HotSpot to use + xsltproc instead of Java's XSLT + when bootstrapping. + * NEWS: Updated. + + 2012-02-15 Andrew John Hughes * NEWS: Add 1.9.14. diff -r 5ede8a5762d4 -r 9b3c0feaa29d Makefile.am --- a/Makefile.am Wed Feb 15 09:40:29 2012 +0000 +++ b/Makefile.am Fri Mar 09 13:57:42 2012 -0500 @@ -35,7 +35,6 @@ ICEDTEA_CLS_DIR_ECJ = $(ECJ_BUILD_OUTPUT_DIR)/classes BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0 RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar -ENDORSED_DIR = $(BOOT_DIR)/lib/endorsed ECJ_BOOT_DIR = $(abs_top_builddir)/bootstrap/ecj ICEDTEA_BOOT_DIR = $(abs_top_builddir)/bootstrap/icedtea SERVER_DIR = hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server @@ -474,7 +473,8 @@ patches/ecj/icedtea-jaxp-dependency.patch \ patches/ecj/bootver.patch \ patches/ecj/getannotation-cast.patch \ - patches/ecj/override.patch + patches/ecj/override.patch \ + patches/ecj/xsltproc.patch if DTDTYPE_QNAME ICEDTEA_ECJ_PATCHES += \ @@ -530,8 +530,6 @@ ALT_BOOTDIR="$(BOOT_DIR)" \ BUILD_ARCH_DIR="$(BUILD_ARCH_DIR)" \ ICEDTEA_CLS_DIR="$(ICEDTEA_CLS_DIR)" \ - ICEDTEA_ENDORSED_DIR="$(ENDORSED_DIR)" \ - ENDORSED="-Djava.endorsed.dirs=$(ENDORSED_DIR)" \ CLASSPATH="" \ LD_LIBRARY_PATH="" \ ZERO_BUILD="$(ICEDTEA_ZERO_BUILD)" \ @@ -612,7 +610,8 @@ JAR_KNOWS_J_OPTIONS="$(JAR_KNOWS_J_OPTIONS)" \ JAR_ACCEPTS_STDIN_LIST="$(JAR_ACCEPTS_STDIN_LIST)" \ DISABLE_NIMBUS="true" \ - NO_DOCS="true" + NO_DOCS="true" \ + XSLT="$(XSLTPROC)" # Source files # FIXME (distclean): Add generated file list @@ -1272,11 +1271,6 @@ ln -sf $(JAR) $(ECJ_BOOT_DIR)/bin/jar ln -sf $(abs_top_builddir)/javac $(ECJ_BOOT_DIR)/bin/javac ln -sf $(abs_top_builddir)/javap $(ECJ_BOOT_DIR)/bin/javap - mkdir -p $(ECJ_BOOT_DIR)/lib/endorsed && \ - ln -sf $(XALAN2_JAR) $(ECJ_BOOT_DIR)/lib/endorsed/xalan-j2.jar && \ - ln -sf $(XALAN2_SERIALIZER_JAR) \ - $(ECJ_BOOT_DIR)/lib/endorsed/xalan-j2-serializer.jar && \ - ln -sf $(XERCES2_JAR) $(ECJ_BOOT_DIR)/lib/endorsed/xerces-j2.jar mkdir -p $(ECJ_BOOT_DIR)/jre/lib && \ cp $(SYSTEM_JDK_DIR)/jre/lib/rt.jar $(ECJ_BOOT_DIR)/jre/lib/rt.jar && \ ln -sf $(SYSTEM_JDK_DIR)/jre/lib/$(JRE_ARCH_DIR) \ diff -r 5ede8a5762d4 -r 9b3c0feaa29d NEWS --- a/NEWS Wed Feb 15 09:40:29 2012 +0000 +++ b/NEWS Fri Mar 09 13:57:42 2012 -0500 @@ -10,6 +10,9 @@ New in release 1.9.14 (2012-XX-XX): +* Bug Fixes + - PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan + New in release 1.9.13 (2012-02-14): * Security fixes diff -r 5ede8a5762d4 -r 9b3c0feaa29d acinclude.m4 --- a/acinclude.m4 Wed Feb 15 09:40:29 2012 +0000 +++ b/acinclude.m4 Fri Mar 09 13:57:42 2012 -0500 @@ -568,101 +568,6 @@ AC_SUBST(ALT_JAR_CMD) ]) -AC_DEFUN([FIND_XALAN2_JAR], -[ - AC_MSG_CHECKING([for a xalan2 jar]) - AC_ARG_WITH([xalan2-jar], - [AS_HELP_STRING(--with-xalan2-jar,specify location of the xalan2 jar)], - [ - if test -f "${withval}" ; then - XALAN2_JAR="${withval}" - fi - ], - [ - XALAN2_JAR= - ]) - if test -z "${XALAN2_JAR}"; then - if test -e "/usr/share/java/xalan-j2.jar"; then - XALAN2_JAR=/usr/share/java/xalan-j2.jar - elif test -e "/usr/share/java/xalan2.jar"; then - XALAN2_JAR=/usr/share/java/xalan2.jar - elif test -e "/usr/share/xalan/lib/xalan.jar"; then - XALAN2_JAR=/usr/share/xalan/lib/xalan.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XALAN2_JAR}"; then - AC_MSG_ERROR("A xalan2 jar was not found.") - fi - AC_MSG_RESULT(${XALAN2_JAR}) - AC_SUBST(XALAN2_JAR) -]) - -AC_DEFUN([FIND_XALAN2_SERIALIZER_JAR], -[ - AC_MSG_CHECKING([for a xalan2 serializer jar]) - AC_ARG_WITH([xalan2-serializer-jar], - [AS_HELP_STRING(--with-xalan2-serializer-jar,specify location of the xalan2-serializer jar)], - [ - if test -f "${withval}" ; then - XALAN2_SERIALIZER_JAR="${withval}" - fi - ], - [ - XALAN2_SERIALIZER_JAR= - ]) - if test -z "${XALAN2_SERIALIZER_JAR}"; then - if test -e "/usr/share/java/xalan-j2-serializer.jar"; then - XALAN2_SERIALIZER_JAR=/usr/share/java/xalan-j2-serializer.jar - elif test -e "/usr/share/xalan-serializer/lib/serializer.jar"; then - XALAN2_SERIALIZER_JAR=/usr/share/xalan-serializer/lib/serializer.jar - elif test -e "/usr/share/java/serializer.jar"; then - XALAN2_SERIALIZER_JAR=/usr/share/java/serializer.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XALAN2_SERIALIZER_JAR}"; then - AC_MSG_ERROR("A xalan2-serializer jar was not found.") - fi - AC_MSG_RESULT(${XALAN2_SERIALIZER_JAR}) - AC_SUBST(XALAN2_SERIALIZER_JAR) -]) - -AC_DEFUN([FIND_XERCES2_JAR], -[ - AC_MSG_CHECKING([for a xerces2 jar]) - AC_ARG_WITH([xerces2-jar], - [AS_HELP_STRING(--with-xerces2-jar,specify location of the xerces2 jar)], - [ - if test -f "${withval}" ; then - XERCES2_JAR="${withval}" - fi - ], - [ - XERCES2_JAR= - ]) - if test -z "${XERCES2_JAR}"; then - if test -e "/usr/share/java/xerces-j2.jar"; then - XERCES2_JAR=/usr/share/java/xerces-j2.jar - elif test -e "/usr/share/java/xerces2.jar"; then - XERCES2_JAR=/usr/share/java/xerces2.jar - elif test -e "/usr/share/xerces-2/lib/xercesImpl.jar"; then - XERCES2_JAR=/usr/share/xerces-2/lib/xercesImpl.jar - elif test -e "/usr/share/java/xercesImpl.jar"; then - XERCES2_JAR=/usr/share/java/xercesImpl.jar - else - AC_MSG_RESULT(no) - fi - fi - if test -z "${XERCES2_JAR}"; then - AC_MSG_ERROR("A xerces2 jar was not found.") - fi - AC_MSG_RESULT(${XERCES2_JAR}) - AC_SUBST(XERCES2_JAR) -]) - AC_DEFUN([FIND_RHINO_JAR], [ AC_MSG_CHECKING([whether to include Javascript support via Rhino]) diff -r 5ede8a5762d4 -r 9b3c0feaa29d configure.ac --- a/configure.ac Wed Feb 15 09:40:29 2012 +0000 +++ b/configure.ac Fri Mar 09 13:57:42 2012 -0500 @@ -164,9 +164,7 @@ FIND_JAR FIND_RMIC FIND_ECJ_JAR - FIND_XALAN2_JAR - FIND_XALAN2_SERIALIZER_JAR - FIND_XERCES2_JAR + FIND_TOOL([XSLTPROC], [xsltproc]) AC_CONFIG_FILES([javac], [chmod +x javac]) AC_CONFIG_FILES([javap], [chmod +x javap]) fi diff -r 5ede8a5762d4 -r 9b3c0feaa29d patches/ecj/xsltproc.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/ecj/xsltproc.patch Fri Mar 09 13:57:42 2012 -0500 @@ -0,0 +1,54 @@ +diff -r 591c7dc0b2ee make/linux/makefiles/jvmti.make +--- openjdk-ecj.orig/hotspot/make/linux/makefiles/jvmti.make Thu May 19 13:27:44 2011 +0200 ++++ openjdk-ecj/hotspot/make/linux/makefiles/jvmti.make Wed May 25 20:01:25 2011 +0100 +@@ -59,8 +59,6 @@ + + JvmtiGeneratedFiles = $(JvmtiGeneratedNames:%=$(JvmtiOutDir)/%) + +-XSLT = $(QUIETLY) $(REMOTE) $(RUN.JAVA) $(ENDORSED) -classpath $(JvmtiOutDir) jvmtiGen +- + .PHONY: all jvmtidocs clean cleanall + + # ######################################################################### +@@ -77,34 +75,34 @@ + + $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnter.cpp -PARAM interface jvmti ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnter.cpp --stringparam interface jvmti $(JvmtiSrcDir)/jvmtiEnter.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp: $(JvmtiGenClass) $(InterpreterSrcDir)/bytecodeInterpreter.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl + @echo Generating $@ +- $(XSLT) -IN $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml -XSL $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl -OUT $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp ++ $(XSLT) -o $(JvmtiOutDir)/bytecodeInterpreterWithChecks.cpp $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xsl $(InterpreterSrcDir)/bytecodeInterpreterWithChecks.xml + + $(JvmtiOutDir)/jvmtiEnterTrace.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnter.xsl -OUT $(JvmtiOutDir)/jvmtiEnterTrace.cpp -PARAM interface jvmti -PARAM trace Trace ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnterTrace.cpp --stringparam interface jvmti --stringparam trace Trace $(JvmtiSrcDir)/jvmtiEnter.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/jvmtiEnvRecommended.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiEnvFillClass) + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiEnv.xsl -OUT $(JvmtiOutDir)/jvmtiEnvStub.cpp ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiSrcDir)/jvmtiEnv.xsl $(JvmtiSrcDir)/jvmti.xml + $(QUIETLY) $(REMOTE) $(RUN.JAVA) -classpath $(JvmtiOutDir) jvmtiEnvFill $(JvmtiSrcDir)/jvmtiEnv.cpp $(JvmtiOutDir)/jvmtiEnvStub.cpp $(JvmtiOutDir)/jvmtiEnvRecommended.cpp + + $(JvmtiOutDir)/jvmtiEnv.hpp: $(both) $(JvmtiSrcDir)/jvmtiHpp.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiHpp.xsl -OUT $(JvmtiOutDir)/jvmtiEnv.hpp ++ $(XSLT) -o $(JvmtiOutDir)/jvmtiEnv.hpp $(JvmtiSrcDir)/jvmtiHpp.xsl $(JvmtiSrcDir)/jvmti.xml + + $(JvmtiOutDir)/jvmti.h: $(both) $(JvmtiSrcDir)/jvmtiH.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmtiH.xsl -OUT $(JvmtiOutDir)/jvmti.h ++ $(XSLT) -o $(JvmtiOutDir)/jvmti.h $(JvmtiSrcDir)/jvmtiH.xsl $(JvmtiSrcDir)/jvmti.xml + + jvmtidocs: $(JvmtiOutDir)/jvmti.html + + $(JvmtiOutDir)/jvmti.html: $(both) $(JvmtiSrcDir)/jvmti.xsl + @echo Generating $@ +- $(XSLT) -IN $(JvmtiSrcDir)/jvmti.xml -XSL $(JvmtiSrcDir)/jvmti.xsl -OUT $(JvmtiOutDir)/jvmti.html ++ $(XSLT) -o $(JvmtiOutDir)/jvmti.html $(JvmtiSrcDir)/jvmti.xsl $(JvmtiSrcDir)/jvmti.xml + + # ######################################################################### + From ddadacha at redhat.com Fri Mar 9 10:59:59 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 09 Mar 2012 13:59:59 -0500 Subject: [RFC][icedtea6-1.9, icedtea6-1.10] Backport for PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan In-Reply-To: <08c149b8-e5ef-4d0f-ad02-da9fc60d4f48@zmail16.collab.prod.int.phx2.redhat.com> References: <08c149b8-e5ef-4d0f-ad02-da9fc60d4f48@zmail16.collab.prod.int.phx2.redhat.com> Message-ID: <4F5A532F.2010304@redhat.com> On 13/02/12 11:12 AM, Andrew Hughes wrote: > ----- Original Message ----- >> On 21/12/11 10:25 AM, Deepak Bhole wrote: >>> * Dr Andrew John Hughes [2011-12-21 10:23]: >>>> On 14:57 Tue 20 Dec , Danesh Dadachanji wrote: >>>>> Adding CC. =) >>>>> >>>>> On 15/11/11 04:54 PM, Danesh Dadachanji wrote: >>>>>> Ping? >>>>>> >>>>>> On 26/10/11 04:13 PM, Danesh Dadachanji wrote: >>>>>>> Hi, >>>>>>> >>>>>>> Attached are patches for 6-1.9 and 6-1.10 to replace the use of >>>>>>> xalan/xerces with xsltproc. >>>>>>> >>>>>>> It is pretty similar to PR732's fix[1] with some minor changes >>>>>>> in >>>>>>> syntax/line numbers for diffs: >>>>>>> - The changeset from HEAD that added >>>>>>> patches/ecj/endorsed-dir-for-jvmti.patch was never backported >>>>>>> so I did >>>>>>> not need to deal with it. >>>>>>> - I had to adjust patches/ecj/xsltproc.patch to get it to >>>>>>> apply, >>>>>>> jvmti.make is a bit offset when compared to HEAD's build. >>>>>>> - For 1.9, the configure.ac macros in question do not start >>>>>>> with "IT_" >>>>>>> (e.g. FIND_TOOL vs IT_FIND_TOOL). >>>>>>> >>>>>>> 1.10 ChangeLog: >>>>>>> +2011-10-26 Danesh Dadachanji >>>>>>> + >>>>>>> + * Makefile.am: >>>>>>> + (ENDORSED_DIR): Removed. >>>>>>> + (ICEDTEA_ECJ_PATCHES): Add xsltproc.patch. >>>>>>> + (ICEDTEA_ENV_ECJ): Set XSLT. Don't >>>>>>> + set ICEDTEA_ENDORSED_DIR or ENDORSED. >>>>>>> + (bootstrap-directory-stage1): Don't link >>>>>>> + xalan2, xerces2 or xalan2 serialiser. >>>>>>> + * acinclude.m4: >>>>>>> + (IT_FIND_XALAN2_JAR): Removed. >>>>>>> + (IT_FIND_XALAN2_SERIALIZER_JAR): Removed. >>>>>>> + (IT_FIND_XERCES2_JAR): Removed. >>>>>>> + * configure.ac: >>>>>>> + Replace calls to FIND_XALAN2_JAR, >>>>>>> + IT_FIND_XALAN2_SERIALIZER_JAR and >>>>>>> + IT_FIND_XERCES2_JAR with call to >>>>>>> + IT_FIND_TOOL for xsltproc. >>>>>>> + * patches/ecj/xsltproc.patch: >>>>>>> + Patch jvmti.make in HotSpot to use >>>>>>> + xsltproc instead of Java's XSLT >>>>>>> + when bootstrapping. >>>>>>> + * NEWS: Updated. >>>>>>> >>>>>>> >>>>>>> 1.9 ChangeLog: >>>>>>> +2011-10-26 Danesh Dadachanji >>>>>>> + >>>>>>> + * Makefile.am: >>>>>>> + (ENDORSED_DIR): Removed. >>>>>>> + (ICEDTEA_ECJ_PATCHES): Add xsltproc.patch. >>>>>>> + (ICEDTEA_ENV_ECJ): Set XSLT. Don't >>>>>>> + set ICEDTEA_ENDORSED_DIR or ENDORSED. >>>>>>> + (bootstrap-directory-stage1): Don't link >>>>>>> + xalan2, xerces2 or xalan2 serialiser. >>>>>>> + * acinclude.m4: >>>>>>> + (FIND_XALAN2_JAR): Removed. >>>>>>> + (FIND_XALAN2_SERIALIZER_JAR): Removed. >>>>>>> + (FIND_XERCES2_JAR): Removed. >>>>>>> + * configure.ac: >>>>>>> + Replace calls to FIND_XALAN2_JAR, >>>>>>> + FIND_XALAN2_SERIALIZER_JAR and >>>>>>> + FIND_XERCES2_JAR with call to >>>>>>> + FIND_TOOL for xsltproc. >>>>>>> + * patches/ecj/xsltproc.patch: >>>>>>> + Patch jvmti.make in HotSpot to use >>>>>>> + xsltproc instead of Java's XSLT >>>>>>> + when bootstrapping. >>>>>>> + * NEWS: Updated. >>>>>>> >>>>>>> Regards, >>>>>>> Danesh >>>>>>> [1] http://icedtea.classpath.org/hg/icedtea6/rev/32fa8c401cee >>>> >>>> What's the status of this? >> >> It's just here in review, I haven't pushed anything yet. Testing >> builds >> on F15 have worked fine (where before they crashed with lack of >> xalan/xerces access). >> >>>> >>>> I don't think we should make such extensive build changes on a >>>> release branch. >>> >>> Agreed. What is the motivation for putting this in a re;ease >>> branch? >> >> The motivation was that these branches fail to build on F15 onward. >> If >> you build a fresh clone of either release branch, you'd run into the >> xalan/xerces dependency resolution bug. Some members of the community >> do >> not know the workaround (patch that adds a symlink of >> xml-commons-apis.jar in endorsed dir) so Andrew Hughes asked me to >> backport his patch. >> >> As mentioned in the original email, the changes from the patch to >> HEAD >> are very minimal, just refactoring/removing redundant line deletions. >> It's been in HEAD for quite some time now too so I believe it has >> been >> soaked in fine and should be good to backport. However, I know the >> general terms are that backports should be made if users are affected >> and this is more in favour of devs. I have no problems scrapping it >> if >> you think there is no need. >> >> Regards, >> Danesh >> > > I usually don't like to make build changes to release branches, but I think > we can make an exception here. Keeping the status quo causing user headaches > (circular dependencies due to pulling in xerces/xalan, plus an additional issue > on F15+ due to changes in recent versions) while the amount of change in the patch > and our experience on HEAD for both 6& 7 (where it's been present for even longer) > suggests this should be ok to apply. > > Unless anyone else has any major objections to this, I'd like to see this applied > after the security update, so it forms part of 1.9.14 and 1.10.7. > > Please make sure the change is mentioned in NEWS (I didn't notice whether it was or not in the patch). Thanks, pushed here: http://icedtea.classpath.org/hg/release/icedtea6-1.10/rev/7b2da3e832e1 http://icedtea.classpath.org/hg/release/icedtea6-1.9/rev/9b3c0feaa29d Cheers, Danesh From ddadacha at redhat.com Fri Mar 9 12:32:03 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 09 Mar 2012 15:32:03 -0500 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F0DE089.6090101@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> Message-ID: <4F5A68C3.3030409@redhat.com> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: > On 11/01/12 11:31 AM, Jiri Vanek wrote: >> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>> Hi, >>>>> >>>>> Looking at the plugin docs[1], and <vendor> are required >>>>> elements of <information>, without them the plugin should stop with a >>>>> fatal error. Currently, icedtea-web just returns null from their >>>>> respective getters and handles null accordingly. However it should not >>>>> even reach that far. Here's a simple patch that throws a >>>>> ParseException when not found. >>>>> >>>>> ChangeLog >>>>> +2012-01-06 Danesh Dadachanji <ddadacha at redhat.com> >>>>> + >>>>> + Applications using JNLP files without a title or vendor section >>>>> + still run, despite them being required elements. >>>>> + * netx/net/sourceforge/jnlp/Parser.java: >>>>> + (getInformationDesc): If title or vendor are not found in info, >>>>> + a new ParseException is thrown. >>>>> + * netx/net/sourceforge/jnlp/resources/Messages.properties: Add >>>>> + PNoTitleElement and PNoVendorElement >>>>> + >>>>> >>>>> Any comments? Is this okay for HEAD? >>>>> >>>>> Regards, >>>>> Danesh >>>>> >>>>> [1] >>>>> http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html >>>>> >>>>> >>>>> >>>> >>>> I do not like the idea of forcing somebody to have elements, when they >>>> can be still empty. But if documentation say so.... How proprietary >>>> plugin is dealing with it? >>> >>> It throws an exception, stopping further execution - the same as what >>> this patch does for icedtea-web. =) >>> >>> If you'd like to test it, remove a title/vendor tag from a JNLP file >>> and run it. You may need to with the java console being set to "Show >>> console" - especially if it's an applet. >>> >>> Regards, >>> Danesh >> >> Jsut from couriosity - how does proprietary plugin is dealing when >> vendor or title is empty? > > Nice catch, I did not think about this. The proprietary plugin behaves > the same way if either are empty - it throws a fatal exception. I've > attached an updated patch to take this into consideration. Note that if > the tags are only white spaces, this is also considered empty but the > parser handles that case already. (e.g. <title> ) > >> I still don't like the idea of exiting when element is not present, but >> continue when element is empty :( >> > > IMO, it helps end-users of applets/webstarts. It forces devs to add more > information to their jnlp files and therefore gives end-users more > detailed warning dialogs when the app is asking for more access. It also > acts as a reminder for any dev that's forgotten or does not know about > this attribute. Obviously this can be used to spoof end-users but that's > what my other patch is for =) > >> But specification is clear - they are required and existence of content >> is not mentioned. >> >> In that case I think it is ok for head. But please wait until branching >> is done. >> > > Once the updated patch is good with you, I'll push to HEAD after > branching is finished. > >> Thanx for reading the specification :) >> > > Thanks for the comments! They are much appreciated. =) Realized a bunch of our tests do not include so the attachment is a new patch adding these. I've also added a regression test that has a JNLP without and another without <vendor>. The testcase checks for the exception message thrown. Right now, the tests will not pass without the launch error patch that's in review[1] but I figured I'd post to get some comments. Any thoughts? Can I push to HEAD once [1] is in there? ChangeLog: +2012-03-09 Danesh Dadachanji <ddadacha at redhat.com> + + Applications using JNLP files without a title or vendor section + still run, despite them being required elements. + * netx/net/sourceforge/jnlp/Parser.java: + (getInformationDesc): If title or vendor are not found in info, + a new ParseException is thrown. + * netx/net/sourceforge/jnlp/resources/Messages.properties: + Added PNoTitleElement and PNoVendorElement + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp, + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp, + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp, + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp, + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp, + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp, + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp, + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp, + * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp, + * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp, + * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp, + * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp, + * tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp, + * tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp + * tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp, + * tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp, + * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp, + * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp, + * tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp, + * tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp, + * tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp, + * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: + Added missing title/vendor tags that make them fail with this changeset. + * tests/jnlp_tests/simple/TitleVendorParser/resources/TitleParser.jnlp, + * tests/jnlp_tests/simple/TitleVendorParser/resources/VendorParser.jnlp, + * tests/jnlp_tests/simple/TitleVendorParser/srcs/TitleVendorParser.java, + * tests/jnlp_tests/simple/TitleVendorParser/testcases/TitleVendorParserTest.java: + New test that runs two JNLPs, one without the title tag and the other + without the vendor tag, checking that the correct eception is thrown. + Cheers, Danesh [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017620.html -------------- next part -------------- A non-text attachment was scrubbed... Name: title-vendor-required-03.patch Type: text/x-patch Size: 25689 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120309/97d4b10b/title-vendor-required-03.patch From bugzilla-daemon at icedtea.classpath.org Fri Mar 9 14:13:22 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 09 Mar 2012 22:13:22 +0000 Subject: [Bug 895] New: IcedTea-Web searches for missing classes on each loadClass or findClass Message-ID: <bug-895-30@http.icedtea.classpath.org/bugzilla/> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 Bug #: 895 Summary: IcedTea-Web searches for missing classes on each loadClass or findClass Classification: Unclassified Product: IcedTea-Web Version: unspecified Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: General AssignedTo: dbhole at redhat.com ReportedBy: dbhole at redhat.com CC: unassigned at icedtea.classpath.org Currently, JNLPClassLoader searches for missing classes over and over even after it has failed once. It should keep a record of what was not found and skip the search part next time. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From dbhole at redhat.com Fri Mar 9 14:19:28 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 9 Mar 2012 17:19:28 -0500 Subject: [icedtea-web] RFC: Patch to fix PR895 Message-ID: <20120309221928.GI5921@redhat.com> Hi, Attached patch fixes PR895: "IcedTea-Web searches for missing classes on each loadClass or findClass" http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 ChangeLog: 2012-03-09 Deepak Bhole <dbhole at redhat.com> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Added new notFoundClasses list. (loadClass): Record if a class is not found and on next call for that class, return immediately. (findClass): Same. I think it should be applied to 1.1 and 1.2 because it prevents servers from being hammered unnecessarily. OK for 1.1, 1.2 and HEAD? Thanks, Deepak -------------- next part -------------- diff -r d2aff3800f4f netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Mar 08 15:54:39 2012 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Fri Mar 09 17:16:33 2012 -0500 @@ -47,6 +47,7 @@ import java.util.Set; import java.util.TreeSet; import java.util.Vector; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.Manifest; @@ -178,6 +179,11 @@ private int useCount = 0; /** + * Classes that are not found, so that findClass can skip them next time + */ + CopyOnWriteArrayList<String> notFoundClasses = new CopyOnWriteArrayList<String>(); + + /** * Create a new JNLPClassLoader from the specified file. * * @param file the JNLP file @@ -1315,6 +1321,10 @@ */ public synchronized Class<?> loadClass(String name) throws ClassNotFoundException { + // If we have searched before and not found it, don't bother again + if (notFoundClasses.contains(name)) + throw new ClassNotFoundException(name); + Class<?> result = findLoadedClassAll(name); // try parent classloader @@ -1395,6 +1405,7 @@ } if (result == null) { + notFoundClasses.add(name); throw new ClassNotFoundException(name); } @@ -1490,6 +1501,11 @@ * Find the class in this loader or any of its extension loaders. */ protected Class findClass(String name) throws ClassNotFoundException { + + // If we have searched before and not found it, don't bother again + if (notFoundClasses.contains(name)) + throw new ClassNotFoundException(name); + for (int i = 0; i < loaders.length; i++) { try { if (loaders[i] == this) @@ -1505,7 +1521,8 @@ if (codeBaseLoader != null) return codeBaseLoader.findClass(name); - // All else failed. Throw CNFE + // All else failed. Record it and throw CNFE + notFoundClasses.add(name); throw new ClassNotFoundException(name); } From ddadacha at redhat.com Fri Mar 9 15:12:55 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 09 Mar 2012 18:12:55 -0500 Subject: [RFC][icedtea-web] Fix for single instance service with applets using jnlp_href In-Reply-To: <4F2849F3.2030003@redhat.com> References: <4F2849F3.2030003@redhat.com> Message-ID: <4F5A8E77.1070105@redhat.com> Ping? On 31/01/12 03:07 PM, Danesh Dadachanji wrote: > Hi, > > Attached is a patch to fix SingleInstanceService to work when applets > use jnlp_href. > > If a single instance exists, it'll throw a fatal exception for the > second applet and stop running it. The applet passes the args along > while checking. However, proprietary documentation is unclear about > which args are passed so for now I have left it as a FIXME until that's > cleared up. > > ChangeLog: > +2012-01-31 Danesh Dadachanji <ddadacha at redhat.com> > + > + Fixed SingleInstanceService to work with jnlp_href. > + * netx/net/sourceforge/jnlp/Launcher.java > + (launchApplication): Print existing single instance in debug mode. > + (launchApplet): Added check for single instance, throws launchError if > + single instance already exists. > + (getApplet): Same as above. > + (launchInstaller): Added TODO reminder for when it is implemented. > + * netx/net/sourceforge/jnlp/resources/Messages.properties: > + Added LSingleInstanceExists. > + * netx/net/sourceforge/jnlp/services/XSingleInstanceService.java > + (initializeSingleInstance): Modified to always initialize if the > applet is > + being run by the plugin. > + (checkSingleInstanceRunning): Modified args passed to > SingleInstanceListener. > + Marked applets' args as FIXME, for now it passes an empty args array. > + > > Okay for HEAD? > > Cheers, > Danesh From omajid at redhat.com Fri Mar 9 17:08:13 2012 From: omajid at redhat.com (Omair Majid) Date: Fri, 09 Mar 2012 20:08:13 -0500 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <20120309221928.GI5921@redhat.com> References: <20120309221928.GI5921@redhat.com> Message-ID: <4F5AA97D.9080301@redhat.com> On 03/09/2012 05:19 PM, Deepak Bhole wrote: > Hi, > > Attached patch fixes PR895: > "IcedTea-Web searches for missing classes on each loadClass or findClass" > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 The bug doesn't seem to have any additional information. Is there a test case or a reproducer? Do you know why the server is being hammered? If the actual issue is under our control (for example, we are attempting to re-download stuff we already downloaded), it might be better to fix this underlying issue. > ChangeLog: > 2012-03-09 Deepak Bhole <dbhole at redhat.com> > > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Added new > notFoundClasses list. > (loadClass): Record if a class is not found and on next call for that > class, return immediately. > (findClass): Same. > Can you please include a test case for icedtea-web? I think it would be nice if we could tell if/when this issue reappears later. I would be fine with either unit tests or jnlp tests. Some other thoughts: Won't this patch break applications that use the following pattern? (Assume the application has enough permissions to download the jar) - Try and load a class - If that fails, download a new jar - Add new jar to classpath - Try to load the class again. I am not sure how many applications do this; perhaps it's a non-issue. The pattern of adding a new line before every return looks scary. I am quite sure the next person to touch this method and add a new return will miss adding the code to update notFoundClasses. How about something like this instead: - rename findClass to findClassNoCacheCheck (or a better name ;) ) - add a new method findClass(): protected Class findClass(String name) throws ClassNotFoundException { if (notFoundClasses.contains(name)) { throw new ClassNotFoundException; } try { Class klass = findClassNoCacheCheck(name); return klass; } catch (ClassNotFoundException cnfe) { notFoundClasses.add(name); throw cnfe; } } Cheers, Omair From thomas at m3y3r.de Sat Mar 10 02:18:40 2012 From: thomas at m3y3r.de (Thomas Meyer) Date: Sat, 10 Mar 2012 11:18:40 +0100 Subject: [RFC] PR858 Message-ID: <1331374720.1380.36.camel@localhost.localdomain> Hello, looking at bug 858 (e.g. http://www.chemaxon.com/marvin-archive/5.8.0/marvin/examples/applets/view/embed.html ) icedtea-web gets an NPE: java.lang.NullPointerException at net.sourceforge.jnlp.runtime.JNLPClassLoader.getPermissions(JNLPClassLoader.java:603) at java.security.SecureClassLoader.getProtectionDomain(SecureClassLoader.java:210) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) at java.net.URLClassLoader.access$000(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:212) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at net.sourceforge.jnlp.runtime.JNLPClassLoader.findClass(JNLPClassLoader.java:1187) at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClassExt(JNLPClassLoader.java:1214) at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1029) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at chemaxon.marvin.applet.AppletLaunch.run(Unknown Source) at java.lang.Thread.run(Thread.java:679) This is because of: 1.) the JNLPClassLoader constructor will only verify and add the jar "appletlauncher.jar" (only this jar will get a SecurityDesc entry), but will use the classpath defined in the manifest file, which contains all other "marvin" jars. 2.) the AppletLaunch class will run next and tries to load another class from a jar in the classpath. this jar was not jet verified, i.e. has no SecurtiyDesc entry in the JNLPClassLoader. 3.) the method JNLPClassLoader.loadClass(String name) has this code that looks like it should add jar files not yet verified, but this code will (as far as I understand) never be executed reached: // search this and the extension loaders if (result == null) { try { result = loadClassExt(name); } catch (ClassNotFoundException cnfe) { // Not found in external loader either -> We never get here! // Look in 'Class-Path' as specified in the manifest file try { for (String classpath: classpaths) { JARDesc desc; try { URL jarUrl = new URL(file.getCodeBase(), classpath); desc = new JARDesc(jarUrl, null, null, false, true, false, true); } catch (MalformedURLException mfe) { throw new ClassNotFoundException(name, mfe); } addNewJar(desc); } 4.) this code is never reached because loadClassExt will call findClass(). findClass() detects that the current loader is "this" loader and call the super.findClass(). the super class of JNLPClassLoader is URLClassLoader which happily loads the jar from the classpath and will end up calling JNLPClassLoader.getPermission(), which has not yet a SecurityDesc entry of this jar! As you can see in above stack trace. Result: ------- 1.) I guess above code that tries to add the jars from the classpath in loadClass() will never be reached, and may should get removed. Opinions please! 2.) see below patch with adds every new jar not yet verified in the getPermissions() method. This fixes the problem and makes marvin-sketch work. what makes me wonder is, that no security dialogue is shown, so that the user should confirm the extra permissions for this applet. on mac os x and the sun plugin I need to confirm something in an extra dialogue box ... kind regards thomas diff -r d2aff3800f4f netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Mar 08 15:54:39 2012 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Sat Mar 10 10:22:01 2012 +0100 @@ -905,13 +905,25 @@ // set default perms PermissionCollection permissions = security.getSandBoxPermissions(); + URL csUrl = cs.getLocation(); + SecurityDesc sd = getCodeSourceSecurity(csUrl); + + if(sd == null) { + // we don't know this jar yet! + + // add security context for this jar + JARDesc desc = new JARDesc(csUrl, null, null, false, true, false, true); + addNewJar(desc); + sd = getCodeSourceSecurity(csUrl); + + } // If more than default is needed: // 1. Code must be signed // 2. ALL or J2EE permissions must be requested (note: plugin requests ALL automatically) - if (cs.getCodeSigners() != null && - (getCodeSourceSecurity(cs.getLocation()).getSecurityType().equals(SecurityDesc.ALL_PERMISSIONS) || - getCodeSourceSecurity(cs.getLocation()).getSecurityType().equals(SecurityDesc.J2EE_PERMISSIONS))) { + if (cs.getCodeSigners() != null && sd != null && + (sd.getSecurityType().equals(SecurityDesc.ALL_PERMISSIONS) || + sd.getSecurityType().equals(SecurityDesc.J2EE_PERMISSIONS))) { permissions = getCodeSourceSecurity(cs.getLocation()).getPermissions(cs); From stefan at complang.tuwien.ac.at Sat Mar 10 14:20:25 2012 From: stefan at complang.tuwien.ac.at (Stefan Ring) Date: Sat, 10 Mar 2012 23:20:25 +0100 Subject: Copy CACAO's .hg repo as well with --with-cacao-src-dir Message-ID: <CAAxjCEx+zsTMEw_Ui1aVGAh-knaaZdH4TgCGRtdt2dWYdGAyNw@mail.gmail.com> Can I ask for the following change in icedtea so CACAO can determine its own revision? diff -r 54ceda20a02c Makefile.am --- a/Makefile.am Mon Feb 27 14:40:52 2012 +0100 +++ b/Makefile.am Sat Mar 10 23:19:19 2012 +0100 @@ -997,8 +997,8 @@ set -e ; \ if ! test -d cacao ; \ then \ - mkdir -p cacao/cacao ; \ - cp -r $(ALT_CACAO_SRC_DIR)/* cacao/cacao/ ; \ + mkdir cacao ; \ + cp -rL $(ALT_CACAO_SRC_DIR) cacao/cacao ; \ fi else set -e ; \ I'm not sure where to put this first. icedtea8, 7, 6? The patch shown here is against icedtea6. Regards Stefan From omajid at redhat.com Sat Mar 10 21:01:46 2012 From: omajid at redhat.com (Omair Majid) Date: Sun, 11 Mar 2012 00:01:46 -0500 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5A3AD1.5020105@redhat.com> References: <4F5A3AD1.5020105@redhat.com> Message-ID: <4F5C31BA.6000701@redhat.com> On 03/09/2012 12:16 PM, Danesh Dadachanji wrote: > If javaws is run with -headless and a launch error occurs, no message is > printed and javaws exits. By no message do you mean nothing at all (or is a single line message printed without an exception stack trace)? > An exception is only shown if -verbose is > passed too. This patch fixes it so that if -headless OR -verbose is > used, the error and stacktrace are shown. > > Furthermore, when javaws -verbose is used (_without_ -headless), the > stacktrace is printed to stderr too. This will come in handy once GUI > testing for applets is available. I am not sure how. Applets don't use GuiLaunchHandler. > diff --git a/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java b/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java > --- a/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java > +++ b/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java > @@ -101,6 +94,17 @@ public class DefaultLaunchHandler implem > result.append(causes[i].getMessage()); > result.append(")"); > } > + > + System.err.println(result); > + > + // When isHeadless() is false, the message dialog would display the full > + // stacktrace. To be consistent, display it when isHeadless() as well. > + if (JNLPRuntime.isDebug() || JNLPRuntime.isHeadless()) { This if statement looks redundant. DefaultLaunchHandler is only used as the LaunchHandler in headless mode. Omair From jvanek at redhat.com Mon Mar 12 01:23:07 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 09:23:07 +0100 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5C31BA.6000701@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> Message-ID: <4F5DB26B.1050906@redhat.com> On 03/11/2012 06:01 AM, Omair Majid wrote: > On 03/09/2012 12:16 PM, Danesh Dadachanji wrote: >> If javaws is run with -headless and a launch error occurs, no message is >> printed and javaws exits. > > By no message do you mean nothing at all (or is a single line message > printed without an exception stack trace)? > >> An exception is only shown if -verbose is >> passed too. This patch fixes it so that if -headless OR -verbose is >> used, the error and stacktrace are shown. >> >> Furthermore, when javaws -verbose is used (_without_ -headless), the >> stacktrace is printed to stderr too. This will come in handy once GUI >> testing for applets is available. > > I am not sure how. Applets don't use GuiLaunchHandler. I guess he have been thinking about gui tests at all. There will be gui tests also for javaws launches and in this case this become handy. For applets inside browser this should be solved in new spalshscreen. Also it is not possible to lunch applets inside browser headless. Also javaws -headless someAppelt is not working curently - the gui is still shown. There is a bug for it. > >> diff --git a/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java b/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java >> --- a/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java >> +++ b/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java >> @@ -101,6 +94,17 @@ public class DefaultLaunchHandler implem >> result.append(causes[i].getMessage()); >> result.append(")"); >> } >> + >> + System.err.println(result); >> + >> + // When isHeadless() is false, the message dialog would display the full >> + // stacktrace. To be consistent, display it when isHeadless() as well. >> + if (JNLPRuntime.isDebug() || JNLPRuntime.isHeadless()) { > > This if statement looks redundant. DefaultLaunchHandler is only used as > the LaunchHandler in headless mode. > > Omair From jvanek at redhat.com Mon Mar 12 02:26:58 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 10:26:58 +0100 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5A68C3.3030409@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> Message-ID: <4F5DC162.5010508@redhat.com> On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: > On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>> Hi, >>>>>> >>>>>> Looking at the plugin docs[1], <title> and <vendor> are required >>>>>> elements of <information>, without them the plugin should stop with a >>>>>> fatal error. Currently, icedtea-web just returns null from their >>>>>> respective getters and handles null accordingly. However it should not >>>>>> even reach that far. Here's a simple patch that throws a >>>>>> ParseException when not found. >>>>>> >>>>>> ChangeLog >>>>>> +2012-01-06 Danesh Dadachanji <ddadacha at redhat.com> >>>>>> + >>>>>> + Applications using JNLP files without a title or vendor section >>>>>> + still run, despite them being required elements. >>>>>> + * netx/net/sourceforge/jnlp/Parser.java: >>>>>> + (getInformationDesc): If title or vendor are not found in info, >>>>>> + a new ParseException is thrown. >>>>>> + * netx/net/sourceforge/jnlp/resources/Messages.properties: Add >>>>>> + PNoTitleElement and PNoVendorElement >>>>>> + >>>>>> >>>>>> Any comments? Is this okay for HEAD? In title of this email you write "Plugin" but it seems to me this is fix IN java web start with impact to plugin. If it is also for applets, can you add javaws someAppelt.jnlp tests? (as AppeltTest is dooing now) and test the same exceptions as in case of javaws some-application.jnlp? You can use already translated jar-ed applet and just call jnlp fiels upon him (same as I'm suggesting for your current javaws tests-set) Soon there will be intorudcued in-browser applet testing, do you think to remind me to add html tests for this case later? (Or you can do this, if you will want to check the in-browser "engine" ;) Few more comment in-line: >>>>>> >>>>>> Regards, >>>>>> Danesh >>>>>> >>>>>> [1] >>>>>> http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html >>>>>> >>>>>> >>>>>> >>>>> >>>>> I do not like the idea of forcing somebody to have elements, when they >>>>> can be still empty. But if documentation say so.... How proprietary >>>>> plugin is dealing with it? >>>> >>>> It throws an exception, stopping further execution - the same as what >>>> this patch does for icedtea-web. =) >>>> >>>> If you'd like to test it, remove a title/vendor tag from a JNLP file >>>> and run it. You may need to with the java console being set to "Show >>>> console" - especially if it's an applet. >>>> >>>> Regards, >>>> Danesh >>> >>> Jsut from couriosity - how does proprietary plugin is dealing when >>> vendor or title is empty? >> >> Nice catch, I did not think about this. The proprietary plugin behaves >> the same way if either are empty - it throws a fatal exception. I've >> attached an updated patch to take this into consideration. Note that if >> the tags are only white spaces, this is also considered empty but the >> parser handles that case already. (e.g. <title> ) >> >>> I still don't like the idea of exiting when element is not present, but >>> continue when element is empty :( >>> >> >> IMO, it helps end-users of applets/webstarts. It forces devs to add more >> information to their jnlp files and therefore gives end-users more >> detailed warning dialogs when the app is asking for more access. It also >> acts as a reminder for any dev that's forgotten or does not know about >> this attribute. Obviously this can be used to spoof end-users but that's >> what my other patch is for =) >> >>> But specification is clear - they are required and existence of content >>> is not mentioned. >>> >>> In that case I think it is ok for head. But please wait until branching >>> is done. >>> >> >> Once the updated patch is good with you, I'll push to HEAD after >> branching is finished. >> >>> Thanx for reading the specification :) >>> >> >> Thanks for the comments! They are much appreciated. =) > > Realized a bunch of our tests do not include so the attachment is a new patch adding these. > > I've also added a regression test that has a JNLP without and another without <vendor>. The testcase checks for the exception message thrown. Right now, the tests will not pass without the launch error patch that's in review[1] but I figured I'd post to get some comments. > > Any thoughts? Can I push to HEAD once [1] is in there? > > ChangeLog: > +2012-03-09 Danesh Dadachanji <ddadacha at redhat.com> > + > + Applications using JNLP files without a title or vendor section > + still run, despite them being required elements. > + * netx/net/sourceforge/jnlp/Parser.java: > + (getInformationDesc): If title or vendor are not found in info, > + a new ParseException is thrown. > + * netx/net/sourceforge/jnlp/resources/Messages.properties: > + Added PNoTitleElement and PNoVendorElement > + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp, > + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp, > + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp, > + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp, > + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp, > + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp, > + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp, > + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp, > + * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp, > + * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp, > + * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp, > + * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp, > + * tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp, > + * tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp > + * tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp, > + * tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp, > + * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp, > + * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp, > + * tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp, > + * tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp, > + * tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp, > + * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: > + Added missing title/vendor tags that make them fail with this changeset. > + * tests/jnlp_tests/simple/TitleVendorParser/resources/TitleParser.jnlp, > + * tests/jnlp_tests/simple/TitleVendorParser/resources/VendorParser.jnlp, > + * tests/jnlp_tests/simple/TitleVendorParser/srcs/TitleVendorParser.java, > + * tests/jnlp_tests/simple/TitleVendorParser/testcases/TitleVendorParserTest.java: > + New test that runs two JNLPs, one without the title tag and the other > + without the vendor tag, checking that the correct eception is thrown. > + > > > Cheers, > Danesh > > [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017620.html > > > title-vendor-required-03.patch > > > diff --git a/netx/net/sourceforge/jnlp/Parser.java b/netx/net/sourceforge/jnlp/Parser.java > --- a/netx/net/sourceforge/jnlp/Parser.java > +++ b/netx/net/sourceforge/jnlp/Parser.java > @@ -504,6 +504,11 @@ class Parser { > child = child.getNextSibling(); > } > > + if (info.getTitle() == null || info.getTitle().equals("")) > + throw new ParseException(R("PNoTitleElement")); > + if (info.getVendor() == null || info.getVendor().equals("")) > + throw new ParseException(R("PNoVendorElement")); > + > return info; > } > I would suggest "".equals(info.get*().trim()) instead of info.get*().equals("") Usage of trim i straight forward and I think it is necessary. The "".equals instead of string.equals("") really just minor nitpick :) "".equals(null) returns false instead of NUllPointerException. I do not believe trim() will ever return null, but it is good habit (IMHO O:) ) If no need for trim will be here, then just "".equals(info.get*()) will be enough instead of both conditions. > diff --git a/netx/net/sourceforge/jnlp/resources/Messages.properties b/netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties > @@ -105,6 +105,8 @@ PInnerJ2SE=j2se element cannot be specif > PTwoMains=Duplicate main JAR defined in a resources element (there can be only one) > PNativeHasMain=Cannot specify main attribute on native JARs. > PNoInfoElement=No information section defined > +PNoTitleElement=The title section has not been defined in the JNLP file. > +PNoVendorElement=The vendor section has not been defined in the JNLP file. > PTwoDescriptions=Duplicate description of kind {0} > PSharing=Element "sharing-allowed" is illegal in a standard JNLP file > PTwoSecurity=Only one security element allowed per JNLPFile. > diff --git a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp > --- a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp > +++ b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp > @@ -4,6 +4,7 @@ > href="CacheReproducer1.jnlp"> > <information> > <title>Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar > +Red Hat > > > > diff --git a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp > --- a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp > +++ b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp > @@ -4,6 +4,7 @@ > href="CacheReproducer1_1.jnlp"> > > Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar > +Red Hat > > > > diff --git a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp > --- a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp > +++ b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp > @@ -4,6 +4,7 @@ > href="CacheReproducer2.jnlp"> > > Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar > +Red Hat > > > > diff --git a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp > --- a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp > +++ b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp > @@ -3,7 +3,8 @@ > codebase="./" > href="CacheReproducer2_1.jnlp"> > > -<title>Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar > +Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar > +Red Hat > > > > diff --git a/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp b/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp > --- a/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp > +++ b/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp > @@ -4,6 +4,7 @@ > href="MissingJar.jnlp"> > > test MissingJar > +Red Hat > > > > + > + > + > +NetX > + > +TitleParser > + > + > + > + > + > + > + > + > + > diff --git a/tests/jnlp_tests/simple/TitleVendorParser/resources/VendorParser.jnlp b/tests/jnlp_tests/simple/TitleVendorParser/resources/VendorParser.jnlp > new file mode 100644 > --- /dev/null > +++ b/tests/jnlp_tests/simple/TitleVendorParser/resources/VendorParser.jnlp > @@ -0,0 +1,52 @@ > + > + > + > + > +VendorParser > + > +VendorParser > + > + > + > + > + > + > + > + > + > diff --git a/tests/jnlp_tests/simple/TitleVendorParser/srcs/TitleVendorParser.java b/tests/jnlp_tests/simple/TitleVendorParser/srcs/TitleVendorParser.java > new file mode 100644 > --- /dev/null > +++ b/tests/jnlp_tests/simple/TitleVendorParser/srcs/TitleVendorParser.java > @@ -0,0 +1,43 @@ > +/* TitleVendorParser.java > +Copyright (C) 2011 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. > + */ > + > +public class TitleVendorParser { > + > + public static void main(String[] args) { > + System.out.println("Sould not be reached but JNLP was parsed fine."); > + } > +} > diff --git a/tests/jnlp_tests/simple/TitleVendorParser/testcases/TitleVendorParserTest.java b/tests/jnlp_tests/simple/TitleVendorParser/testcases/TitleVendorParserTest.java > new file mode 100644 > --- /dev/null > +++ b/tests/jnlp_tests/simple/TitleVendorParser/testcases/TitleVendorParserTest.java > @@ -0,0 +1,76 @@ > +/* TitleVendorParserTest.java > +Copyright (C) 2011 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. > + */ > + > + > +import net.sourceforge.jnlp.ServerAccess; > +import org.junit.Assert; > +import org.junit.Test; > + > +public class TitleVendorParserTest { > + > + private static ServerAccess server = new ServerAccess(); > + > + @Test > + public void testForTitle() throws Exception { > + System.out.println("connecting TitleVendorParser request, testing TitleParser"); > + System.err.println("connecting TitleVendorParser request, testing TitleParser"); > + ServerAccess.ProcessResult pr=server.executeJavawsHeadless(null,"/TitleParser.jnlp"); > + System.out.println(pr.stdout); > + System.err.println(pr.stderr); > + String s1 = "Sould not be reached but JNLP was parsed fine."; > + Assert.assertFalse("testForTitle stdout should not contain " + s1 + " but did.", pr.stdout.contains(s1)); > + String s2 = "net.sourceforge.jnlp.ParseException: The title section has not been defined in the JNLP file."; > + Assert.assertTrue("testForTitle stderr should contain " + s2 + " but did not.", pr.stderr.contains(s2)); > + Assert.assertFalse(pr.wasTerminated); > + Assert.assertEquals((Integer)0, pr.returnValue); > + } > + > + @Test > + public void testForVendor() throws Exception { > + System.out.println("connecting TitleVendorParser request, testing VendorParser"); > + System.err.println("connecting TitleVendorParser request, testing VendorParser"); > + ServerAccess.ProcessResult pr=server.executeJavawsHeadless(null,"/VendorParser.jnlp"); > + System.out.println(pr.stdout); > + System.err.println(pr.stderr); > + String s1 = "Sould not be reached but JNLP was parsed fine."; > + Assert.assertFalse("testForVendor stdout should not contain " + s1 + " but did.", pr.stdout.contains(s1)); > + String s2 = "net.sourceforge.jnlp.ParseException: The vendor section has not been defined in the JNLP file."; > + Assert.assertTrue("testForVendor stderr should contain " + s2 + " but did not.", pr.stderr.contains(s2)); > + Assert.assertFalse(pr.wasTerminated); > + Assert.assertEquals((Integer)0, pr.returnValue); > + } > +} Now you will hate me : I think it is worthy to add also one testy with both missing, and few tests which will try to paly with count and order of mandatory and obligatory elements. Also I woud asuggest to introduce String s1 = "Sould not be reached but JNLP was parsed fine."; Assert.assertFalse("testForVendor stdout should not contain " + s1 + " but did.", pr.stdout.contains(s1)); String s2 = "net.sourceforge.jnlp.ParseException: The vendor section has not been defined in the JNLP file."; Assert.assertTrue("testForVendor stderr should contain " + s2 + " but did not.", pr.stderr.contains(s2)); Assert.assertFalse(pr.wasTerminated); Assert.assertEquals((Integer)0, pr.returnValue); as separate method (especialy if more tests will be added) Do I understand correctly that when information element is missing, then jnlp is processed correctly? For both yes and no - can you add test for it? If yes - what does getInformationDesc() returns?? null?? I believe jnlp should not be processed :-/ Also I think you do not need to add new jar with new srcs class (TitleVendorParser) (==just remove thsi file and no jar will be created), but you can yuse eg simpletest1) and just use your new jnlps to call this old jar. But this is really up to you, if you want to have by-your-test-controlled jar, then as you wish. (Me, personally, should probably stay with my own jar ;) I got used to check for ClassNotFound exception, which is here for reason that netx.jar is broken, javaws is broken or the whole test is compeltly broken. But when you are checking for stdout of your jar, then it is not necessary, it just helps to see imidietly that soemting more bad then just test failure have occured. Do you think it is worthy to add? By other words - Should I get rid of this "habit" ? > diff --git a/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp > --- a/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp > +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp > @@ -1,5 +1,9 @@ > > > + > +Sample Test > +RedHat > + > > > Thsi one should be pushed with rest of in-tests vendor/title fixes TYVM! J. From jvanek at redhat.com Mon Mar 12 03:21:37 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 11:21:37 +0100 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <4F5AA97D.9080301@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> Message-ID: <4F5DCE31.5020102@redhat.com> On 03/10/2012 02:08 AM, Omair Majid wrote: > On 03/09/2012 05:19 PM, Deepak Bhole wrote: >> Hi, >> >> Attached patch fixes PR895: >> "IcedTea-Web searches for missing classes on each loadClass or findClass" >> >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 > > The bug doesn't seem to have any additional information. Is there a test > case or a reproducer? Do you know why the server is being hammered? If > the actual issue is under our control (for example, we are attempting to > re-download stuff we already downloaded), it might be better to fix this > underlying issue. It looks to me like it is trying to fix this issue a bit. > >> ChangeLog: >> 2012-03-09 Deepak Bhole >> >> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Added new >> notFoundClasses list. >> (loadClass): Record if a class is not found and on next call for that >> class, return immediately. >> (findClass): Same. >> > > Can you please include a test case for icedtea-web? I think it would be > nice if we could tell if/when this issue reappears later. I would be > fine with either unit tests or jnlp tests. I would liek to help with this reproducer, But I'm not sue if this are right perquisites for this to happen: Application is started correctly Application tries to use some class, which was not used before. This Class is not found (even after all lazy jars are collected) ClassNotFound is thrown Application tries to use this class again, again all jars are searched for and ClassNotFound is thrown. ... With fix Application is started correctly Application tries to use some class, which was not used before. This Class is not found (even after all lazy jars are collected), and full pa.cka.ge.name is stored ClassNotFound is thrown Application tries to use this class again, if class found in recorded ones, then CNF is throw again and nothing is searched for, else deep search again If I'm correct - is this really worthy to fix? It is saving some time for application which do not deserve to live! - unless the dependences jars are downlaoded again - but then something else must be fixed. If it still need to have reproducer in this way, then it is not hard to do the test with outputs as they are intorduced in this fix. > > Some other thoughts: > > Won't this patch break applications that use the following pattern? > (Assume the application has enough permissions to download the jar) > - Try and load a class > - If that fails, download a new jar > - Add new jar to classpath - This is nasty trick to modify classpath in runtime! > - Try to load the class again. > > I am not sure how many applications do this; perhaps it's a non-issue. > > The pattern of adding a new line before every return looks scary. I am > quite sure the next person to touch this method and add a new return > will miss adding the code to update notFoundClasses. How about something > like this instead: > > - rename findClass to findClassNoCacheCheck (or a better name ;) ) > - add a new method findClass(): > > protected Class findClass(String name) throws ClassNotFoundException { > if (notFoundClasses.contains(name)) { > throw new ClassNotFoundException; > } > > try { > Class klass = findClassNoCacheCheck(name); > return klass; > } catch (ClassNotFoundException cnfe) { > notFoundClasses.add(name); > throw cnfe; > } > } > One nitpick - You are using copyonwritearraylist - most synchronised list. But I loosk to me like this is much more issue for some synchronised set which will do the same with much less overhed - or not? And... CopyOnWriteArrayList notFoundClasses = new CopyOnWriteArrayList() fuuuuu :) ... Why not List notFoundClasses = new CopyOnWriteArrayList() ? Best regards J. > Cheers, > Omair From jvanek at redhat.com Mon Mar 12 03:42:00 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 11:42:00 +0100 Subject: [RFC][icedtea-web] Fix for single instance service with applets using jnlp_href In-Reply-To: <4F2849F3.2030003@redhat.com> References: <4F2849F3.2030003@redhat.com> Message-ID: <4F5DD2F8.8000904@redhat.com> On 01/31/2012 09:07 PM, Danesh Dadachanji wrote: > Hi, > I must confess I can not guess motivation for this and not even find 100% what is it doing and why. Can you please write little bit (..much...;) ) more about background of this patch? My current thoughts - when two completely same appelts are on the page, they are not lunched - correct? Why this restriction? > Attached is a patch to fix SingleInstanceService to work when applets use jnlp_href. > > If a single instance exists, it'll throw a fatal exception for the second applet and stop running it. The applet passes the args along while checking. However, proprietary documentation is unclear about which args are passed so for now I have left it as a FIXME until that's cleared up. I believe applets parameters inside tag/jnlp descriptor are correct way. > > ChangeLog: > +2012-01-31 Danesh Dadachanji > + > + Fixed SingleInstanceService to work with jnlp_href. > + * netx/net/sourceforge/jnlp/Launcher.java > + (launchApplication): Print existing single instance in debug mode. > + (launchApplet): Added check for single instance, throws launchError if > + single instance already exists. > + (getApplet): Same as above. > + (launchInstaller): Added TODO reminder for when it is implemented. > + * netx/net/sourceforge/jnlp/resources/Messages.properties: > + Added LSingleInstanceExists. > + * netx/net/sourceforge/jnlp/services/XSingleInstanceService.java > + (initializeSingleInstance): Modified to always initialize if the applet is > + being run by the plugin. > + (checkSingleInstanceRunning): Modified args passed to SingleInstanceListener. > + Marked applets' args as FIXME, for now it passes an empty args array. > + > > Okay for HEAD? > > Cheers, > Danesh > > > single-instance-service-01.patch > > > diff --git a/netx/net/sourceforge/jnlp/Launcher.java b/netx/net/sourceforge/jnlp/Launcher.java > --- a/netx/net/sourceforge/jnlp/Launcher.java > +++ b/netx/net/sourceforge/jnlp/Launcher.java > @@ -536,6 +536,9 @@ public class Launcher { > try { > ServiceUtil.checkExistingSingleInstance(file); > } catch (InstanceExistsException e) { > + if (JNLPRuntime.isDebug()) { > + System.out.println("Single instance application is already running."); * > + } > return null; > } > > @@ -653,11 +656,17 @@ public class Launcher { > throw launchError(new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LNotApplet"), R("LNotAppletInfo"))); > > try { > + ServiceUtil.checkExistingSingleInstance(file); > AppletInstance applet = createApplet(file, enableCodeBase, cont); > applet.initialize(); > > applet.getAppletEnvironment().startApplet(); // this should be a direct call to applet instance > return applet; > + } catch (InstanceExistsException ieex) { > + if (JNLPRuntime.isDebug()) { > + System.out.println("Single instance applet is already running."); * > + } > + throw launchError(new LaunchException(file, ieex, R("LSFatal"), R("LCLaunching"), R("LCouldNotLaunch"), R("LSingleInstanceExists"))); > } catch (LaunchException lex) { > throw launchError(lex); > } catch (Exception ex) { > @@ -673,9 +682,17 @@ public class Launcher { > throw launchError(new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LNotApplet"), R("LNotAppletInfo"))); > > try { > + ServiceUtil.checkExistingSingleInstance(file); > + > AppletInstance applet = createApplet(file, enableCodeBase, cont); > applet.initialize(); > return applet; > + > + } catch (InstanceExistsException ieex) { > + if (JNLPRuntime.isDebug()) { > + System.out.println("Single instance applet is already running."); * Why not also stacktraces? > + } > + throw launchError(new LaunchException(file, ieex, R("LSFatal"), R("LCLaunching"), R("LCouldNotLaunch"), R("LSingleInstanceExists"))); > } catch (LaunchException lex) { > throw launchError(lex); > } catch (Exception ex) { > @@ -688,6 +705,8 @@ public class Launcher { > * a thread in the application's thread group. > */ > protected ApplicationInstance launchInstaller(JNLPFile file) throws LaunchException { > + // TODO Check for an existing single instance once implemented. > + // ServiceUtil.checkExistingSingleInstance(file); > throw launchError(new LaunchException(file, null, R("LSFatal"), R("LCNotSupported"), R("LNoInstallers"), R("LNoInstallersInfo"))); > } > > diff --git a/netx/net/sourceforge/jnlp/resources/Messages.properties b/netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties > @@ -81,6 +81,7 @@ LUnsignedJarWithSecurityInfo=Application > LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. > LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. > LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. > +LSingleInstanceExists=Another instance of this applet already exists and only one may be run at the same time. > > JNotApplet=File is not an applet. > JNotApplication=File is not an application. > diff --git a/netx/net/sourceforge/jnlp/services/XSingleInstanceService.java b/netx/net/sourceforge/jnlp/services/XSingleInstanceService.java > --- a/netx/net/sourceforge/jnlp/services/XSingleInstanceService.java > +++ b/netx/net/sourceforge/jnlp/services/XSingleInstanceService.java > @@ -29,6 +29,9 @@ import javax.jnlp.SingleInstanceListener > import javax.management.InstanceAlreadyExistsException; > > import net.sourceforge.jnlp.JNLPFile; > +import net.sourceforge.jnlp.PluginBridge; > +import net.sourceforge.jnlp.runtime.AppletInstance; > +import net.sourceforge.jnlp.runtime.ApplicationInstance; > import net.sourceforge.jnlp.runtime.JNLPRuntime; > > /** > @@ -104,13 +107,14 @@ public class XSingleInstanceService impl > * @throws InstanceAlreadyExistsException if the instance already exists > */ > public void initializeSingleInstance() { > - if (!initialized) { > - // this is called after the application has started. so safe to use > - // JNLPRuntime.getApplication() > - checkSingleInstanceRunning(JNLPRuntime.getApplication().getJNLPFile()); > + // this is called after the application has started. so safe to use > + // JNLPRuntime.getApplication() > + JNLPFile jnlpFile = JNLPRuntime.getApplication().getJNLPFile(); > + if (!initialized || jnlpFile instanceof PluginBridge) { > + // Either a new process or a new applet being handled by the plugin. > + checkSingleInstanceRunning(jnlpFile); > initialized = true; > SingleInstanceLock lockFile; > - JNLPFile jnlpFile = JNLPRuntime.getApplication().getJNLPFile(); > lockFile = new SingleInstanceLock(jnlpFile); > if (!lockFile.isValid()) { > startListeningServer(lockFile); > @@ -134,9 +138,21 @@ public class XSingleInstanceService impl > if (JNLPRuntime.isDebug()) { > System.out.println("Lock file is valid (port=" + port + "). Exiting."); > } > + > + String[] args = null; > + if (jnlpFile.isApplet()) { > + // FIXME Proprietary plug-in is unclear about how to handle > + // applets and their parameters. Potentially use > + // jnlpFile.getApplet().getParameters(); > + args = new String[0]; > + } else if (jnlpFile.isInstaller()) { > + // TODO Implement this once installer service is available. > + } else { > + args = jnlpFile.getApplication().getArguments(); > + } > + > try { > - sendProgramArgumentsToExistingApplication(port, jnlpFile.getApplication() > - .getArguments()); > + sendProgramArgumentsToExistingApplication(port, args); > throw new InstanceExistsException(String.valueOf(port)); > } catch (IOException e) { > throw new RuntimeException(e); From ptisnovs at redhat.com Mon Mar 12 03:50:29 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 12 Mar 2012 11:50:29 +0100 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5DC162.5010508@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> Message-ID: <4F5DD4F5.70908@redhat.com> Jiri Vanek wrote: > On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: >> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >>> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>>> Hi, >>>>>>> >>>>>>> Looking at the plugin docs[1], and <vendor> are required >>>>>>> elements of <information>, without them the plugin should stop >>>>>>> with a >>>>>>> fatal error. Currently, icedtea-web just returns null from their >>>>>>> respective getters and handles null accordingly. However it >>>>>>> should not >>>>>>> even reach that far. Here's a simple patch that throws a >>>>>>> ParseException when not found. >>>>>>> >>>>>>> ChangeLog >>>>>>> +2012-01-06 Danesh Dadachanji <ddadacha at redhat.com> >>>>>>> + >>>>>>> + Applications using JNLP files without a title or vendor section >>>>>>> + still run, despite them being required elements. >>>>>>> + * netx/net/sourceforge/jnlp/Parser.java: >>>>>>> + (getInformationDesc): If title or vendor are not found in info, >>>>>>> + a new ParseException is thrown. >>>>>>> + * netx/net/sourceforge/jnlp/resources/Messages.properties: Add >>>>>>> + PNoTitleElement and PNoVendorElement >>>>>>> + >>>>>>> >>>>>>> Any comments? Is this okay for HEAD? > In title of this email you write "Plugin" but it seems to me this is fix > IN java web start with impact to plugin. > If it is also for applets, can you add javaws someAppelt.jnlp tests? > (as AppeltTest is dooing now) and test the same exceptions as in case of > javaws some-application.jnlp? You can use already translated jar-ed > applet and just call jnlp fiels upon him (same as I'm suggesting for > your current javaws tests-set) > Soon there will be intorudcued in-browser applet testing, do you think > to remind me to add html tests for this case later? (Or you can do > this, if you will want to check the in-browser "engine" ;) > > Few more comment in-line: >>>>>>> >>>>>>> Regards, >>>>>>> Danesh >>>>>>> >>>>>>> [1] >>>>>>> http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> I do not like the idea of forcing somebody to have elements, when >>>>>> they >>>>>> can be still empty. But if documentation say so.... How proprietary >>>>>> plugin is dealing with it? >>>>> >>>>> It throws an exception, stopping further execution - the same as what >>>>> this patch does for icedtea-web. =) >>>>> >>>>> If you'd like to test it, remove a title/vendor tag from a JNLP file >>>>> and run it. You may need to with the java console being set to "Show >>>>> console" - especially if it's an applet. >>>>> >>>>> Regards, >>>>> Danesh >>>> >>>> Jsut from couriosity - how does proprietary plugin is dealing when >>>> vendor or title is empty? >>> >>> Nice catch, I did not think about this. The proprietary plugin behaves >>> the same way if either are empty - it throws a fatal exception. I've >>> attached an updated patch to take this into consideration. Note that if >>> the tags are only white spaces, this is also considered empty but the >>> parser handles that case already. (e.g. <title> ) >>> >>>> I still don't like the idea of exiting when element is not present, but >>>> continue when element is empty :( >>>> >>> >>> IMO, it helps end-users of applets/webstarts. It forces devs to add more >>> information to their jnlp files and therefore gives end-users more >>> detailed warning dialogs when the app is asking for more access. It also >>> acts as a reminder for any dev that's forgotten or does not know about >>> this attribute. Obviously this can be used to spoof end-users but that's >>> what my other patch is for =) >>> >>>> But specification is clear - they are required and existence of content >>>> is not mentioned. >>>> >>>> In that case I think it is ok for head. But please wait until branching >>>> is done. >>>> >>> >>> Once the updated patch is good with you, I'll push to HEAD after >>> branching is finished. >>> >>>> Thanx for reading the specification :) >>>> >>> >>> Thanks for the comments! They are much appreciated. =) >> >> Realized a bunch of our tests do not include so the >> attachment is a new patch adding these. >> >> I've also added a regression test that has a JNLP without and >> another without <vendor>. The testcase checks for the exception >> message thrown. Right now, the tests will not pass without the launch >> error patch that's in review[1] but I figured I'd post to get some >> comments. >> >> Any thoughts? Can I push to HEAD once [1] is in there? >> >> ChangeLog: >> +2012-03-09 Danesh Dadachanji <ddadacha at redhat.com> >> + >> + Applications using JNLP files without a title or vendor section >> + still run, despite them being required elements. >> + * netx/net/sourceforge/jnlp/Parser.java: >> + (getInformationDesc): If title or vendor are not found in info, >> + a new ParseException is thrown. >> + * netx/net/sourceforge/jnlp/resources/Messages.properties: >> + Added PNoTitleElement and PNoVendorElement >> + * >> tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp, >> + * >> tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp, >> >> + * >> tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp, >> + * >> tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp, >> >> + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp, >> + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp, >> + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp, >> + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp, >> + * >> tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp, >> >> + * >> tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp, >> >> + * >> tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp, >> >> + * >> tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp, >> >> + * >> tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp, >> + * >> tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp >> + * >> tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp, >> >> + * >> tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp, >> + * >> tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp, >> + * >> tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp, >> + * >> tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp, >> + * >> tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp, >> >> + * >> tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp, >> >> + * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: >> + Added missing title/vendor tags that make them fail with this >> changeset. >> + * >> tests/jnlp_tests/simple/TitleVendorParser/resources/TitleParser.jnlp, >> + * >> tests/jnlp_tests/simple/TitleVendorParser/resources/VendorParser.jnlp, >> + * >> tests/jnlp_tests/simple/TitleVendorParser/srcs/TitleVendorParser.java, >> + * >> tests/jnlp_tests/simple/TitleVendorParser/testcases/TitleVendorParserTest.java: >> >> + New test that runs two JNLPs, one without the title tag and the >> other >> + without the vendor tag, checking that the correct eception is >> thrown. >> + >> >> >> Cheers, >> Danesh >> >> [1] >> http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017620.html >> >> >> >> title-vendor-required-03.patch >> >> >> diff --git a/netx/net/sourceforge/jnlp/Parser.java >> b/netx/net/sourceforge/jnlp/Parser.java >> --- a/netx/net/sourceforge/jnlp/Parser.java >> +++ b/netx/net/sourceforge/jnlp/Parser.java >> @@ -504,6 +504,11 @@ class Parser { >> child = child.getNextSibling(); >> } >> >> + if (info.getTitle() == null || info.getTitle().equals("")) >> + throw new ParseException(R("PNoTitleElement")); >> + if (info.getVendor() == null || info.getVendor().equals("")) >> + throw new ParseException(R("PNoVendorElement")); >> + >> return info; >> } >> > I would suggest "".equals(info.get*().trim()) instead of > info.get*().equals("") > Usage of trim i straight forward and I think it is necessary. > The "".equals instead of string.equals("") really just minor nitpick > :) "".equals(null) returns false instead of NUllPointerException. I do > not believe trim() will ever return null, but it is good habit (IMHO O:) ) > If no need for trim will be here, then just "".equals(info.get*()) will > be enough instead of both conditions. String.trim() does not return null so you don't need to worry Then you could use predicate isEmpty() which is IMHO more readable than equals("") (since 1.6) > >> diff --git a/netx/net/sourceforge/jnlp/resources/Messages.properties >> b/netx/net/sourceforge/jnlp/resources/Messages.properties >> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties >> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties >> @@ -105,6 +105,8 @@ PInnerJ2SE=j2se element cannot be specif >> PTwoMains=Duplicate main JAR defined in a resources element (there >> can be only one) >> PNativeHasMain=Cannot specify main attribute on native JARs. >> PNoInfoElement=No information section defined >> +PNoTitleElement=The title section has not been defined in the JNLP file. >> +PNoVendorElement=The vendor section has not been defined in the JNLP >> file. >> PTwoDescriptions=Duplicate description of kind {0} >> PSharing=Element "sharing-allowed" is illegal in a standard JNLP file >> PTwoSecurity=Only one security element allowed per JNLPFile. >> diff --git >> a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp >> b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp >> --- >> a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp >> +++ >> b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp >> @@ -4,6 +4,7 @@ >> href="CacheReproducer1.jnlp"> >> <information> >> <title>Just prints out "Good simple javaws exapmle" using >> reflection call from CacheReproducer.jar SimpletestSigned1.jar >> +Red Hat >> >> >> >> diff --git >> a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp >> b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp >> >> --- >> a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp >> >> +++ >> b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp >> >> @@ -4,6 +4,7 @@ >> href="CacheReproducer1_1.jnlp"> >> >> Just prints out "Good simple javaws exapmle" using >> reflection call from CacheReproducer.jar SimpletestSigned1.jar >> +Red Hat >> >> >> >> diff --git >> a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp >> b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp >> --- >> a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp >> +++ >> b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp >> @@ -4,6 +4,7 @@ >> href="CacheReproducer2.jnlp"> >> >> Just prints out "Good simple javaws exapmle" using >> reflection call from CacheReproducer.jar SimpletestSigned1.jar >> +Red Hat >> >> >> > download="eager"/> >> diff --git >> a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp >> b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp >> >> --- >> a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp >> >> +++ >> b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp >> >> @@ -3,7 +3,8 @@ >> codebase="./" >> href="CacheReproducer2_1.jnlp"> >> >> -<title>Just prints out "Good simple javaws exapmle" using >> reflection call from CacheReproducer.jar >> SimpletestSigned1.jar >> +Just prints out "Good simple javaws exapmle" using reflection >> call from CacheReproducer.jar SimpletestSigned1.jar >> +Red Hat >> >> >> > download="lazy"/> >> diff --git >> a/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp >> b/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp >> --- a/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp >> +++ b/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp >> @@ -4,6 +4,7 @@ >> href="MissingJar.jnlp"> >> >> test MissingJar >> +Red Hat >> >> >> >> + >> + >> + >> +NetX >> + >> +TitleParser >> + >> + >> + >> + >> + >> + >> + >> + >> + >> diff --git >> a/tests/jnlp_tests/simple/TitleVendorParser/resources/VendorParser.jnlp >> b/tests/jnlp_tests/simple/TitleVendorParser/resources/VendorParser.jnlp >> new file mode 100644 >> --- /dev/null >> +++ >> b/tests/jnlp_tests/simple/TitleVendorParser/resources/VendorParser.jnlp >> @@ -0,0 +1,52 @@ >> + >> + >> + >> + >> +VendorParser >> + >> +VendorParser >> + >> + >> + >> + >> + >> + >> + >> + >> + >> diff --git >> a/tests/jnlp_tests/simple/TitleVendorParser/srcs/TitleVendorParser.java >> b/tests/jnlp_tests/simple/TitleVendorParser/srcs/TitleVendorParser.java >> new file mode 100644 >> --- /dev/null >> +++ >> b/tests/jnlp_tests/simple/TitleVendorParser/srcs/TitleVendorParser.java >> @@ -0,0 +1,43 @@ >> +/* TitleVendorParser.java >> +Copyright (C) 2011 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. >> + */ >> + >> +public class TitleVendorParser { >> + >> + public static void main(String[] args) { >> + System.out.println("Sould not be reached but JNLP was parsed >> fine."); >> + } >> +} >> diff --git >> a/tests/jnlp_tests/simple/TitleVendorParser/testcases/TitleVendorParserTest.java >> b/tests/jnlp_tests/simple/TitleVendorParser/testcases/TitleVendorParserTest.java >> >> new file mode 100644 >> --- /dev/null >> +++ >> b/tests/jnlp_tests/simple/TitleVendorParser/testcases/TitleVendorParserTest.java >> >> @@ -0,0 +1,76 @@ >> +/* TitleVendorParserTest.java >> +Copyright (C) 2011 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. >> + */ >> + >> + >> +import net.sourceforge.jnlp.ServerAccess; >> +import org.junit.Assert; >> +import org.junit.Test; >> + >> +public class TitleVendorParserTest { >> + >> + private static ServerAccess server = new ServerAccess(); >> + >> + @Test >> + public void testForTitle() throws Exception { >> + System.out.println("connecting TitleVendorParser request, >> testing TitleParser"); >> + System.err.println("connecting TitleVendorParser request, >> testing TitleParser"); >> + ServerAccess.ProcessResult >> pr=server.executeJavawsHeadless(null,"/TitleParser.jnlp"); >> + System.out.println(pr.stdout); >> + System.err.println(pr.stderr); >> + String s1 = "Sould not be reached but JNLP was parsed fine."; >> + Assert.assertFalse("testForTitle stdout should not contain " >> + s1 + " but did.", pr.stdout.contains(s1)); >> + String s2 = "net.sourceforge.jnlp.ParseException: The title >> section has not been defined in the JNLP file."; >> + Assert.assertTrue("testForTitle stderr should contain " + s2 >> + " but did not.", pr.stderr.contains(s2)); >> + Assert.assertFalse(pr.wasTerminated); >> + Assert.assertEquals((Integer)0, pr.returnValue); >> + } >> + >> + @Test >> + public void testForVendor() throws Exception { >> + System.out.println("connecting TitleVendorParser request, >> testing VendorParser"); >> + System.err.println("connecting TitleVendorParser request, >> testing VendorParser"); >> + ServerAccess.ProcessResult >> pr=server.executeJavawsHeadless(null,"/VendorParser.jnlp"); >> + System.out.println(pr.stdout); >> + System.err.println(pr.stderr); >> + String s1 = "Sould not be reached but JNLP was parsed fine."; >> + Assert.assertFalse("testForVendor stdout should not contain " >> + s1 + " but did.", pr.stdout.contains(s1)); >> + String s2 = "net.sourceforge.jnlp.ParseException: The vendor >> section has not been defined in the JNLP file."; >> + Assert.assertTrue("testForVendor stderr should contain " + s2 >> + " but did not.", pr.stderr.contains(s2)); >> + Assert.assertFalse(pr.wasTerminated); >> + Assert.assertEquals((Integer)0, pr.returnValue); >> + } >> +} > > Now you will hate me : > I think it is worthy to add also one testy with both missing, and few > tests which will try to paly with count and order of mandatory and > obligatory elements. > Also I woud asuggest to introduce > String s1 = "Sould not be reached but JNLP was parsed fine."; > Assert.assertFalse("testForVendor stdout should not contain " + > s1 + " but did.", pr.stdout.contains(s1)); > String s2 = "net.sourceforge.jnlp.ParseException: The vendor > section has not been defined in the JNLP file."; > Assert.assertTrue("testForVendor stderr should contain " + s2 + > " but did not.", pr.stderr.contains(s2)); > Assert.assertFalse(pr.wasTerminated); > Assert.assertEquals((Integer)0, pr.returnValue); > > as separate method (especialy if more tests will be added) > > > Do I understand correctly that when information element is missing, then > jnlp is processed correctly? > For both yes and no - can you add test for it? > If yes - what does getInformationDesc() returns?? null?? I believe jnlp > should not be processed :-/ > Also I think you do not need to add new jar with new srcs class > (TitleVendorParser) (==just remove thsi file and no jar will be > created), but you can yuse eg simpletest1) and just use your new jnlps > to call this old jar. But this is really up to you, if you want to have > by-your-test-controlled jar, then as you wish. (Me, personally, should > probably stay with my own jar ;) > > I got used to check for ClassNotFound exception, which is here for > reason that netx.jar is broken, javaws is broken or the whole test is > compeltly broken. But when you are checking for stdout of your jar, then > it is not necessary, it just helps to see imidietly that soemting more > bad then just test failure have occured. Do you think it is worthy to > add? By other words - Should I get rid of this "habit" ? >> diff --git >> a/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> --- a/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> @@ -1,5 +1,9 @@ >> >> >> + >> +Sample Test >> +RedHat >> + >> >> >> > Thsi one should be pushed with rest of in-tests vendor/title fixes > > > TYVM! > > J. > From jvanek at redhat.com Mon Mar 12 04:02:35 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 12:02:35 +0100 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5DD4F5.70908@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> Message-ID: <4F5DD7CB.6030108@redhat.com> On 03/12/2012 11:50 AM, Pavel Tisnovsky wrote: > Jiri Vanek wrote: >> On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: >>> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >>>> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>>>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> Looking at the plugin docs[1], and<vendor> are required snip >>> >>> diff --git a/netx/net/sourceforge/jnlp/Parser.java >>> b/netx/net/sourceforge/jnlp/Parser.java >>> --- a/netx/net/sourceforge/jnlp/Parser.java >>> +++ b/netx/net/sourceforge/jnlp/Parser.java >>> @@ -504,6 +504,11 @@ class Parser { >>> child = child.getNextSibling(); >>> } >>> >>> + if (info.getTitle() == null || info.getTitle().equals("")) >>> + throw new ParseException(R("PNoTitleElement")); >>> + if (info.getVendor() == null || info.getVendor().equals("")) >>> + throw new ParseException(R("PNoVendorElement")); >>> + >>> return info; >>> } >>> >> I would suggest "".equals(info.get*().trim()) instead of >> info.get*().equals("") >> Usage of trim i straight forward and I think it is necessary. >> The "".equals instead of string.equals("") really just minor nitpick >> :) "".equals(null) returns false instead of NUllPointerException. I do >> not believe trim() will ever return null, but it is good habit (IMHO O:) ) >> If no need for trim will be here, then just "".equals(info.get*()) will >> be enough instead of both conditions. > > String.trim() does not return null so you don't need to worry Yy - as I have already said ;) but STILL it is good habit O:) > > Then you could use predicate isEmpty() which is IMHO more readable than equals("") (since 1.6) isEmpty do not trim :((( => info.get*() == null || info.get*().trim().isEmpty() ... :D (if we can live with method which appeared in 1.6) But this leads me to question - which javaSE version is icedtea-web comaptible with and which _should_ be compatible with? > > >> >>> diff --git a/netx/net/sourceforge/jnlp/resources/Messages.properties snip J. From ptisnovs at redhat.com Mon Mar 12 04:11:19 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 12 Mar 2012 12:11:19 +0100 Subject: Icedtea-web splashscreen implementation In-Reply-To: <4F50BE87.5070508@redhat.com> References: <4F50BE87.5070508@redhat.com> Message-ID: <4F5DD9D7.7030905@redhat.com> Hi Jiri, I'd like to comment the last patch with new test framework functionality: 1) the idea of adding some delay to see/test splashscreen is great, but is not it better to add some annotation to such tests instead of using "magic" test name? Similar functionality is used in JTreg tests (not "true" annotations, but similar approach). I'm sure we'll need to add more per-test parameters in the future. 2) some notes to the patch: tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: - seems there's a bad indentation for the last 11 lines tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java - bad indentation in a method getIndependentInstance() - -//- for executeJavawsHeadless - -//- executeJavaws, executeBrowser - -//- splitArray (it needs JavaDoc too, contains double ";;" on one line etc.) I think it could be simplified to use one loop only and two index variables (we can talk about this personally) - I'm probably wrong but is seems that all applet/jnlp tests are using only "localhost" network interface. If it is true I'm afraid we miss some iptables-related or IPv6 related issues. Cheers, Pavel (Hint: Eclipse Ctrl+F) Jiri Vanek wrote: > Hi All! > > This patch is initial version of three and half connected things. Applet > + javaws splashcreen and testing of applets in firefox (and testing of > splascreen). > I'm sorry for two days delay, which was caused by more testing and > creating this "document" and its attending animation. I'm also really > sorry for its length. > > People cc-ed (as patch is to big to pass to distro without approve) > Deepak - as he will probably do the overall review as there nearly > nothing left from his code and will definitely want to see the > in-firefox tests concept. > Roman - as he was promised (was persuaded O:) to check > PluginAppletViewer class As is very similar to Deepak's original one > Mark - as he is probably able to do an approve upon distro-pkg list. > Pavel - who wanted to check graphics rendering and firefox-testing changes > Omair - just to kept him in loop ;) > > No rebukes to "logo" will be now accepted (kdding ..but... O:)..to much > effort to vectorization of the "agreed new one"!) > I have kept the ICEDtea composition, because without this design (with > IcedTea one) it does not look nice :(( Iced do not looks enough frozen > and Tea does not looks like tea leaf stalk (But ICED looks frozen enough > and tea looks like stalk ;) ) > I have decided to kept ICEDtea, because we _do not have logo_ :(( And > because I consider it as art :) And way of art must be free in mind O:) > However - if it will be comon wish or command, it is just change in two > Strings so I can (so sad) adapt it. Horrible image with camelcase is > also attached. > Animation is rising watterlevel inside ICED and shinig metal web. When > > Splashscreen(s) are designed to be easily replaceable, and are providing > set of utilities for lunching and disposing it. When ratio of WxH is to > big or applet is to small then alternate - plain IcedTea web (plugin) > [with little bit animated web (plugin)] is shown. > Test framework was enriched for slow downloading. If the file have > prefix "XslowX" then its downlaoding (even on localhost) will take > 10seconds. It is useful for observing splashscreens. Also was enriched > for lunching browser, which is necessary for testing applets. > Several minor changes in authors, makefile, images and so on are also > included. > > *Splashscreens* > _integration_ > The gate for applet's splashscreen is PluginAppletViewer. It is > responsible for show it when applet is to be initialized and for > removing it when applet starts. Little bit more complicated is showing > of error to user when some exception during initialization occurs. Those > exceptions are mostly thrown from netx which do not have dependence on > plugin. > To forward error to applet is used SplashUtils.showError set of > overloaded methods. SplashUtils have also factory method which handles > which splash (type and purpose (javaws x applet)) is about to be shown > (if any - see bonuses) > There are actually three and half types of splashscreen. Applet one > (which have error variation also), javaws one (forced by specification, > which also forces title,vendor and homepage with description to be > shown), and java's -spalsh which is showing image until control is > forwarded to netx. > All those four splashscreens are cooperating quite well and support of > custom splashses (by -J-splash or by <icon kind="splash"...>) are not lost. > _implementation_ > The splashscreen can be any class which implements interface > SplashScreen. it must be able to paint itself, to add itself as > component to show error, to be in composed of vectors.....and to be nice:) > The factory method have parameter whether to provide splash for javaws > (it is showing also information from information element (vendor, > description,homepage,title..) - specification commanding) or for applet > -it have also plugin above the tea-leaves. > If javaws die, then splashscreen is hidden and netx is handling error on > his own. When applet crashes, then it tries to show error screen. If > showing of error screen is successful, spalsh turns dark and is > providing click-able area ("button") which when clicked shows localized > (whole the splash is localized) error dialog with some information about > crash (most important exception) and with link to icetea-web wiki and > with information how to post the bug > The showing of error screen is very successfull, but one case I was > unable to catch - when connection with server dies in middle of resource > transfer and TODO - I have forgot to test signatures and stuff around:-/ > - but this should be handled n netx-way too. > I'm showing also version on splash (and forwarding it to error mesage) > (ok?) - Looks to me like good idea.... > _pitfalls_ > I have noticed that when more then one applets are presented in page, > then splashes sometimes shows, sometimes no.... I have tried to > synchronize (I can be wrong!) in Launcher and in PluginAppletViewer, and > it looks like it helped but still this occurs (quait randomly :-/) > Sometimes(less then 10% of lunches, randomly spread) freeing of applet > takes quite long time, and it looks like C-error (Can not fetch applets > id from java side), But it is rare and always exit at the end. > _bonuses_ > I have added recognition of two environment variables - > ICEDTEA_WEB_PLUGIN_SPLASH and ICEDTEA_WEB_SPLASH. Those variables alow > user to change splahs screen before lunchtime and - what is real reason > for those two variables - to disable splashscreen at all. I really can > imagine some developer really tired of looking to same splash during his > appelt/javaws_app testing phase. > I have also kept inside Deepaks origianl implementation and my testing > one. I like Deepak's one, and Pavel really likes my testing one which is > really alternative :) There was left also dialog for testing > splashscreen. I left it in for case That icedtea-web 3.0 will want new > celebrating one;) > However both secondary splashscreens can be switched by env.vars, I can > remove them (although it will breake my hart;) without any harm. > When "custom" (or "none") splash is defined, then javaws "java's" > -splash is ignored too. > > *Testing* > _splash tests_ > I was "facing really huge problem" When I wanted to see spalshscreen > inside browser - it was always to quickly lost :) So Ihave added magic > prefix XslowX to be rocgnized by internal server. When some resource > starts with this prefix, its without-prefix-version is returned as > resource. The difference is that its downloading is delayed to 10s > (10%per seccond). It is done by spliting this resource's byte[] to 10 > peaces. This throws BrokenPipe Exception, but is working fine. > Minor improvement inside ServerAcces.main() is tighter integration with > testing framework - It can now be lunched instead of eg python > smallHTTPserver and working directory is set in same way as during tests > by -D property (so it can be lunched with same environment settings as > in-ide tests) > Second problem I was facing was automated testing of applets in firefox. > The integration of "lunch html with browser, examine stdout/stderr,kill > firefox" required just small changes and is working really well. > But there is one big TODO - to configure (in make?) browser so it works > with JUST BUILT iced-tea-web-plugin. Currently it expects to have > firefox well configured (= to link > /usr/lib/mozzila/libs/plugins/icedteaweb-plugin.so (or wherever firefox > have plugins) with the one in --prefix path). But it is not the best > way. To future I'm thinking about customised "embeded" firefox or to > some link-plugin makefile target (run under root) which fill create > this link (currently iced tea-web's install do not create this link, it > is done in RPM post), or to have some local firefox which can be > linkable without root and provide --with_browser.... - *any ideas > welcomed* ! > And one small to do - in some future integrate awt-robot (+stdin/out) > listeners > _new tests_ > One new automated test is added to demonstrate the powers of testing of > applets inside browser > Bunch of new test which are using XslowX to allow everybody to see > various cases of spalshscreens. Those tests are not automated and are > testing custom splash, broken custom splash, my splashes... broken > stuff..both for applets and javaws > > > Atatchements: > javaws_splash.png - "screenshot" of vector implementation, also used as > java's -splash > horribleIcedTea.png - nearly the same, but with camelcase to make your > judge easier > splasScreen-All2.diff - huge patch which si including all other together > splasScreenImpls2.diff - implementation of current default splashscreen > with all support classes > splasScreenSplashs.diff - all supporting classes, interfaces utilities > common for whole "splash sreens stuff" > splasScreenImpls1.diff - implementation of old Deepaks one and > alternative testing one > splasScreen-integration.diff - all modified classes inside icedtea-web, > which are calling my splash-screen implementation(s) Needs to be > properly reviewed O:) > splasScreenTests2.diff - all new tests > http://download.eng.brq.redhat.com/scratch/jvanek/gif.gif - url to > animation showing applet's (and javaws's) splash in work. have 90MB!!! > desribed at the and of email - especially two sizes (full resizing at > the end) of spalsh and error screen and error handlng and diference > between javaws's one and plugin's one are worthy to be seen. > > Changelogs: > > > splasScreen-integration.diff > 2012-03-02 Jiri Vanek <jvanek at redhat.com> > > Integrated splashscreen, added authors, added bitmap splash, > * AUTHORS: added Jan Kmetko as the person behind initial bitmap > splash design > * Makefile.am: (edit_launcher_script) enriched for replacement > JAVAWS_SPLASH_LOCATION inside javaws.in by real > datadir/PACKAGE_NAME/javaws_splash.png value > (install-exec-local) enriched for installing javaws_splash.png from > NETX_SRCDIR to datadir/PACKAGE_NAME > *NEWS: mentioned splash screen > * extra/net/sourceforge/javaws/about/resources/notes.html: added > Danesh, Saad, me and Jan as missing developers and artist > * launcher/javaws.in: added variable SPLASH_LOCATION, initiated > during make by real path to javaws_splash.png location > this splash is shown when application is lunched not-headless and > if no custom spalsh is defined, -J-splash also overwrite this setting > * netx/javaws_splash.png: new Binary file for primary bitmap loading > * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: implemented > missing default splash screen with vector spalsh and with information's > element content > * netx/net/sourceforge/jnlp/JNLPSplashScreen.java: fixed to be able > to use custom image or (if not defined or broken) our vector one > * netx/net/sourceforge/jnlp/Launcher.java: added hooks which will > force applet to show error screen in case of error > change on lines @@ -696,22 +705,30 @@ probably does not work, and > it is the case when connection with server is interrupted in middle of > downloading jar > (createApplet) and (createAppletObject) were made synchronized to > prevent several applets lunched in one time to touch each other > * netx/net/sourceforge/jnlp/NetxPanel.java: added field, getter and > setter for its XEmbededFrame > * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: main > (createPanel)'s run is adding splash screen after start of > onitialization and removing it before init. > (framePanel) returns PluginAppletViewer and is creating sdplash > (removeSplash) new method to handle spalsh removing > (showErrorSplash) new method to be called by hooks to swap splash to > error state > * netx/net/sourceforge/jnlp/runtime/Boot.java): (name) and (version) > made public > > splasScreenSplashs.diff > 2012-03-02 Jiri Vanek <jvanek at redhat.com> > > added support classes to allow easy splashscreen implementation > * netx/net/sourceforge/jnlp/resources/Messages.properties: added > localization strings for JEditorPaneBasedExceptionDialog and > DefaultSpalshScreen12 and InfoItem > * netx/net/sourceforge/jnlp/splashscreen/SplashPanel.java: interface > to control each splash screen implementation > * netx/net/sourceforge/jnlp/splashscreen/SplashUtils.java: mainly > factory and destructor for splashes > There are two environment variables ICEDTEA_WEB_PLUGIN_SPLASH and > ICEDTEA_WEB_SPLASH which can change before lunch time splashscreen and - > what is their main reason to allow to disable it > * > netx/net/sourceforge/jnlp/splashscreen/parts/BasicComponentSplashScreen.java: > is implementing interface and extending jcomponet and is handling most > basic setters/getters. Ideal forefather for all splashes > * > netx/net/sourceforge/jnlp/splashscreen/parts/DescriptionInfoItem.java: > extending InfIotem with kind. Is handling description value of > information element > * netx/net/sourceforge/jnlp/splashscreen/parts/InfoItem.java: > object for handling items in information element - vendor, homepage and > title. Is i18n. > * > netx/net/sourceforge/jnlp/splashscreen/parts/InformationElement.java: > handling all InfoItems from information. Is selecting the proper > description for each purpose as specification says > * > netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java: > dialog for showing exception and more information about crash in plugin. > Can lead to icedtea-web homepage > > splasScreenImpls1.diff > 2012-03-02 Jiri Vanek <jvanek at redhat.com> > > Adding optional splashscreens and testigne class for development > * > netx/net/sourceforge/jnlp/splashscreen/impls/CircleSplashScreen.java: > Deepaks original implementation. I like it:) Have incorrect behaviour > on pages with different then white background > * > netx/net/sourceforge/jnlp/splashscreen/impls/DummySpalshScreen.java: > experimental splashscreen, worthy for testing purposes. And Pavel likes > this alternative one! > * > netx/net/sourceforge/jnlp/splashscreen/impls/SpalshScreenTest.java: > dialog window for testing splashes without icedtea-web > > splasScreenImpls2.diff > 2012-03-02 Jiri Vanek <jvanek at redhat.com> > > Implementation of default splashscreen > * > netx/net/sourceforge/jnlp/splashscreen/impls/DefaultSpalshScreen12.java: > default implementation of splash. The nicest one!, localized and most tuned > * > netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/ControlCurve.java: > base clsss for calculating vector curves > * > netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/Cubic.java: > helpful class for calculating cubic equation > * > netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/ImageFontCutter.java: > base class for cutting fonts from images > * > netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/MoovingText.java: > by extending ImageCutter is cutting text from gradient colors (shadow > moving web) > * > netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/NatCubic.java: > base class for calculating natural cubic spline > * > netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/NatCubicClosed.java: > little bit adjusted NatCubic for having polygon instead of polyline > * > netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/SplinesDefs.java: > definitions of control points for NatCubicClosed splines on logo > * > netx/net/sourceforge/jnlp/splashscreen/impls/defaultsutils/TextWithWatterLevel.java: > Extending ImageFontCutter is cutting from from basin-with-water like > rendered image > > splasScreenTests2.diff > 2012-03-02 Jiri Vanek <jvanek at redhat.com> > * > tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: > as javaws have now integrated splash, I have changed this test to lunch > javaws -Xclearcache with -headless to skip this logo (although it is not > fatal fr testrun itself) > * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: > this html file is lunched during tests run in browser and stdout of > lunched applet is examined. Is lunched with slow resources to test > spalshscreen > * tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html: > this test html file is dedicated to manual lunch and let user to look > how the applet (with slow loading) is loaded and how looks splashscreen > in small mode and in large mode > * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: > test is enriched for lunching the html file with applet in browser and > is examining output of this file. Browser must be always terminated as > there is no way hoe to close from inside > * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png : > image to let user observe that user-defined splashscreen is still > working even when internal splashscreen is enabled > * > tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: > this and all jnlp files below are just for manual lunching and for > watching various lunches of splash screen - slow loading of resources > and with custom splash > * > tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp: > slow loading of resource and jnlp > * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp: > slow loading of resource > * > tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp: > slow loading of resource with broken user's splash (our internal will be > used) > * > tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp: > slow loading of custom splash screen and resource > * > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: Main > server launcher was modified to support lunching of browser, stdout > listteners and for slowing download of resources to provide time for > watching splash screen > (main) was rewritten to provide free port OR run server in-D > specified directory on custom or default port - very useful for debuging > reproducers > (getIndependentInstance) can now run also on specified port and > (or) directory > (USED_BROWSER_COMMAND) new constant handling value of -D property > to set browser = "used.browser.command"; > (getBrowserLocation) new method to provide specified (by > used.browser.command -D property) or default browser location (firefox) > (ensureServer) test is testing weather XslowXmodifier is working > (executeBrowser) set of overloaded functions to lunch browser > (TinyHttpdImpl) was enriched for XslowX modifier. When resource > starts with this, is returned slowly - splited to 10 parts with 1s delay > betwen sending each of them. Although it is throwing BrokenPipe > exception, is working fine. > (splitArray) new function to split array of byte to n arrays of > bytes, which when concated do the same array > (splitArrayTestN) set of tests for splitArray > (ContentReader) now can also have lsteners for catching outputs n > runtime. > * > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java: > Listener for catching chars and lines form processes outputs > * > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: > added (testListeners) to test listeners behaviour > > > To much reading? To long "Patch" ? I'm terribly sorry for being so > undisciplined to allow it to grow so much and not to commit t in smaller > chunks. I hope it will be still review-able. > > The content of gif.gif - what you should see: > LEFT RIGHT > firefox > applets started to be loaded > (one small and one big) > lunching javaws -Xclearcache -headless (no splash appears) > lunching javaws -Xclearcache (bitmap splash appears with some > artifact) small applet stars fine, big one detected crash and swapped > to error screen > lunching javaws -Xclearcache -headless (no splash appears) > lunching javaws someUrl - lunching example jnlp which is at first loading > very big user's spalsh, and then swap to it) clicking > "show error" button on failed applet error screen > Dialog with applets error message appears > is resized, link is clicked, home is clicked, is closed > firefox closed > lunched loading of jnlp file with our custom (jumping through both > screens, error during gif compositon :-/) > resizing our default vector > splash screen to show corner cases, the rising water is nicely to be > seen during the resizing > > Best regards and good luck > J. > > > > ------------------------------------------------------------------------ > > > ------------------------------------------------------------------------ > From ptisnovs at redhat.com Mon Mar 12 04:22:27 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 12 Mar 2012 12:22:27 +0100 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5DD7CB.6030108@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> Message-ID: <4F5DDC73.9030609@redhat.com> Jiri Vanek wrote: > On 03/12/2012 11:50 AM, Pavel Tisnovsky wrote: >> Jiri Vanek wrote: >>> On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: >>>> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >>>>> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>>>>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>>>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> Looking at the plugin docs[1],<title> and<vendor> are required > snip >>>> >>>> diff --git a/netx/net/sourceforge/jnlp/Parser.java >>>> b/netx/net/sourceforge/jnlp/Parser.java >>>> --- a/netx/net/sourceforge/jnlp/Parser.java >>>> +++ b/netx/net/sourceforge/jnlp/Parser.java >>>> @@ -504,6 +504,11 @@ class Parser { >>>> child = child.getNextSibling(); >>>> } >>>> >>>> + if (info.getTitle() == null || info.getTitle().equals("")) >>>> + throw new ParseException(R("PNoTitleElement")); >>>> + if (info.getVendor() == null || info.getVendor().equals("")) >>>> + throw new ParseException(R("PNoVendorElement")); >>>> + >>>> return info; >>>> } >>>> >>> I would suggest "".equals(info.get*().trim()) instead of >>> info.get*().equals("") >>> Usage of trim i straight forward and I think it is necessary. >>> The "".equals instead of string.equals("") really just minor nitpick >>> :) "".equals(null) returns false instead of NUllPointerException. I do >>> not believe trim() will ever return null, but it is good habit (IMHO >>> O:) ) >>> If no need for trim will be here, then just "".equals(info.get*()) will >>> be enough instead of both conditions. >> >> String.trim() does not return null so you don't need to worry > Yy - as I have already said ;) but STILL it is good habit O:) >> >> Then you could use predicate isEmpty() which is IMHO more readable >> than equals("") (since 1.6) > isEmpty do not trim :((( => info.get*() == null || > info.get*().trim().isEmpty() ... :D (if we can live with method which > appeared in 1.6) Yeah I mean info.get*().trim().isEmpty() (btw I think we could end with this basic stuff ;-) > > But this leads me to question - which javaSE version is icedtea-web > comaptible with and which _should_ be compatible with? I assume it should be compatible with 1.6 and 1.7 (and I'm pretty sure that the code already contains some 1.6-related code ;-) which could be easy to check using --source and --target) >> >> >>> >>>> diff --git a/netx/net/sourceforge/jnlp/resources/Messages.properties > snip > > J. From jvanek at redhat.com Mon Mar 12 04:26:28 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 12:26:28 +0100 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5DDC73.9030609@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> Message-ID: <4F5DDD64.5030005@redhat.com> On 03/12/2012 12:22 PM, Pavel Tisnovsky wrote: > Jiri Vanek wrote: >> On 03/12/2012 11:50 AM, Pavel Tisnovsky wrote: >>> Jiri Vanek wrote: >>>> On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: >>>>> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >>>>>> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>>>>>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>>>>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>>>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Looking at the plugin docs[1],<title> and<vendor> are required >> snip >>>>> >>>>> diff --git a/netx/net/sourceforge/jnlp/Parser.java >>>>> b/netx/net/sourceforge/jnlp/Parser.java >>>>> --- a/netx/net/sourceforge/jnlp/Parser.java >>>>> +++ b/netx/net/sourceforge/jnlp/Parser.java >>>>> @@ -504,6 +504,11 @@ class Parser { >>>>> child = child.getNextSibling(); >>>>> } >>>>> >>>>> + if (info.getTitle() == null || info.getTitle().equals("")) >>>>> + throw new ParseException(R("PNoTitleElement")); >>>>> + if (info.getVendor() == null || info.getVendor().equals("")) >>>>> + throw new ParseException(R("PNoVendorElement")); >>>>> + >>>>> return info; >>>>> } >>>>> >>>> I would suggest "".equals(info.get*().trim()) instead of >>>> info.get*().equals("") >>>> Usage of trim i straight forward and I think it is necessary. >>>> The "".equals instead of string.equals("") really just minor nitpick >>>> :) "".equals(null) returns false instead of NUllPointerException. I do >>>> not believe trim() will ever return null, but it is good habit (IMHO >>>> O:) ) >>>> If no need for trim will be here, then just "".equals(info.get*()) will >>>> be enough instead of both conditions. >>> >>> String.trim() does not return null so you don't need to worry >> Yy - as I have already said ;) but STILL it is good habit O:) >>> >>> Then you could use predicate isEmpty() which is IMHO more readable >>> than equals("") (since 1.6) >> isEmpty do not trim :((( => info.get*() == null || >> info.get*().trim().isEmpty() ... :D (if we can live with method which >> appeared in 1.6) > Yeah I mean info.get*().trim().isEmpty() > (btw I think we could end with this basic stuff ;-) >> >> But this leads me to question - which javaSE version is icedtea-web >> comaptible with and which _should_ be compatible with? > > I assume it should be compatible with 1.6 and 1.7 Yap, I guess the same... Poor mainframes with ibm 1.4.2 are out of luck again ;) > (and I'm pretty sure that > the code already contains some 1.6-related code ;-) which could be easy Although i do not KNOW about it I BELIEVE to it too !-) ..and I think there is no need to keep older javas supported anyway... > to check using --source and --target) Ah Yah! > >>> >>> >>>> >>>>> diff --git a/netx/net/sourceforge/jnlp/resources/Messages.properties >> snip >> >> J. > From jvanek at redhat.com Mon Mar 12 05:30:34 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 13:30:34 +0100 Subject: Applet's in browser, slow loading, remote and (in some bright future) graphical testing and some minor improvements (was Re: Icedtea-web splashscreen implementation) In-Reply-To: <4F5DD9D7.7030905@redhat.com> References: <4F50BE87.5070508@redhat.com> <4F5DD9D7.7030905@redhat.com> Message-ID: <4F5DEC6A.8040802@redhat.com> On 03/12/2012 12:11 PM, Pavel Tisnovsky wrote: > Hi Jiri, > > I'd like to comment the last patch with new test framework functionality: > > 1) the idea of adding some delay to see/test splashscreen is great, but is not > it better to add some annotation to such tests instead of using "magic" test name? > Similar functionality is used in JTreg tests (not "true" annotations, but similar approach). > I'm sure we'll need to add more per-test parameters in the future. hmhm interesting idea, but I need to specify this inside JNLP file or inside applet tag in html file. And I wanted to lunch it outside the engine.... Have you any clue how to do this with annotation? > > 2) some notes to the patch: > Indentation - Damn this:-/ I was doublechecking this across all the files :-/ > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: > - seems there's a bad indentation for the last 11 lines ..not found...?? > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java > - bad indentation in a method getIndependentInstance() fixed > - -//- for executeJavawsHeadless fixed > - -//- executeJavaws, executeBrowser fixed And concept of executeBrowser and listeners at all? Is it worthy to continue this way? What about "firefox" issue? And posted testcases? Especially the applet in browser one? And change in main method? And issue with link? The issue with link and with browser is quit fundamental and I'm not sure how to continue with it. There is -Dvariable for setting up bowser, but it do not solve anything at all :( And the link issue is even more tricky with various (means supported x the testing one) browsers. Or should ve be happy with firefox? Or should this test to be multi-browsers? (== during each run, each html test wil be lunched in all possibel browser [I do not believe this is worthy, but recent regression on chromium shows differently]) Although I have posted this in-browser tests as proof-of concept, there is already need for applets tests so I'm for to push it in, because abstraction, as it is written, is quite enough and improvements can be done in "runtime". > - -//- splitArray (it needs JavaDoc definitely. Sorry for forgot it. too, contains double ";;" on one line etc.) damn. YY - fixed > I think it could be simplified to use one loop only and two index variables > (we can talk about this personally) Can it? Make your shot! O:) Btw - I have *one* loop, tehn second O:) for copyying of aray (As I'm not friend of copyarray method :( ) and *one* index, but yes, the header of method is not nice. But it was still fighting with me:-/ Make your shot! > > - I'm probably wrong but is seems that all applet/jnlp tests are using only "localhost" network interface. > If it is true I'm afraid we miss some iptables-related or IPv6 related issues. Hmhm.. very interesting topic (== you are not wrong), but it should be raised when the test-engine was done (bud good that wasnt O!o) ) On the other side, the testing framework on client itself can handle this. The problem is to have some server running. To have it integrated inside current makefile can be quit tricky, and I'm strongly against. Currently I'm against to add this feature at all, because there is no known issue with this and local host seem to be enough. In case this issue will rise with higher priority, then my suggestion will be: 1) to have some remote server running and working - absolutely out of icetea-web makefile's control 2) set eg --with-remote-server=my.server.org:xyz/something the remote server configurated for coopeartion 3) makefile will sed urls in (selected?) jnlps/htmls and, and will pass this url to testengine so it will know where to requests jnlps and htmls 4) makefile will copy (selected?) resources to this remote server, 5) the tests run will run as usual, because stdout/err/gui examination will behave in same way as in localhost. Acctually I do not see some big issue with this approach at all, and in case it will become handy it can be implemented. The only change in current implementation will be passing list of tests which should run remotly. In testengine run I can imageine some extension to executeJavaws(..) method Eg executeRemoteJavaws(...) - there is enough abstraction level to handle this properly. During compilation of reproducers and copying of resources it will need some list (or directory) to specify remote ones . But really - until there is some real need for this reproducers, I would rather stand without this. > > Cheers, > Pavel > > (Hint: Eclipse Ctrl+F) Yap NB have the same. But the issue is between computer and keyboard (as always with me and indentation) > > Jiri Vanek wrote: Snip > > *Testing* > _splash tests_ > I was "facing really huge problem" When I wanted to see spalshscreen > inside browser - it was always to quickly lost :) So Ihave added magic > prefix XslowX to be rocgnized by internal server. When some resource > starts with this prefix, its without-prefix-version is returned as > resource. The difference is that its downloading is delayed to 10s > (10%per seccond). It is done by spliting this resource's byte[] to 10 > peaces. This throws BrokenPipe Exception, but is working fine. > Minor improvement inside ServerAcces.main() is tighter integration with > testing framework - It can now be lunched instead of eg python > smallHTTPserver and working directory is set in same way as during tests > by -D property (so it can be lunched with same environment settings as > in-ide tests) > Second problem I was facing was automated testing of applets in firefox. > The integration of "lunch html with browser, examine stdout/stderr,kill > firefox" required just small changes and is working really well. > But there is one big TODO - to configure (in make?) browser so it works > with JUST BUILT iced-tea-web-plugin. Currently it expects to have > firefox well configured (= to link > /usr/lib/mozzila/libs/plugins/icedteaweb-plugin.so (or wherever firefox > have plugins) with the one in --prefix path). But it is not the best > way. To future I'm thinking about customised "embeded" firefox or to > some link-plugin makefile target (run under root) which fill create > this link (currently iced tea-web's install do not create this link, it > is done in RPM post), or to have some local firefox which can be > linkable without root and provide --with_browser.... - *any ideas > welcomed* ! > And one small to do - in some future integrate awt-robot (+stdin/out) > listeners > _new tests_ > One new automated test is added to demonstrate the powers of testing of > applets inside browser > Bunch of new test which are using XslowX to allow everybody to see > various cases of spalshscreens. Those tests are not automated and are > testing custom splash, broken custom splash, my splashes... broken > stuff..both for applets and javaws ...snip... J. -------------- next part -------------- A non-text attachment was scrubbed... Name: splasScreenTests3.diff Type: text/x-patch Size: 41428 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120312/b480d90b/splasScreenTests3.diff From ptisnovs at redhat.com Mon Mar 12 06:07:02 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 12 Mar 2012 14:07:02 +0100 Subject: Applet's in browser, slow loading, remote and (in some bright future) graphical testing and some minor improvements (was Re: Icedtea-web splashscreen implementation) In-Reply-To: <4F5DEC6A.8040802@redhat.com> References: <4F50BE87.5070508@redhat.com> <4F5DD9D7.7030905@redhat.com> <4F5DEC6A.8040802@redhat.com> Message-ID: <4F5DF4F6.905@redhat.com> Jiri Vanek wrote: > On 03/12/2012 12:11 PM, Pavel Tisnovsky wrote: >> Hi Jiri, >> >> I'd like to comment the last patch with new test framework functionality: >> >> 1) the idea of adding some delay to see/test splashscreen is great, >> but is not >> it better to add some annotation to such tests instead of using >> "magic" test name? >> Similar functionality is used in JTreg tests (not "true" >> annotations, but similar approach). >> I'm sure we'll need to add more per-test parameters in the future. > > hmhm interesting idea, but I need to specify this inside JNLP file or > inside applet tag in html file. And I wanted to lunch it outside the > engine.... Have you any clue how to do this with annotation? Yes, you can AFAIK use "property" tag in JNLP file. It contains "name" and "value" and this pair should be available through System.getProperty() (there probably exist tests which check this functionality :-) So we could prepare a list of some properties used by the test machinery. >> >> 2) some notes to the patch: >> > Indentation - Damn this:-/ I was doublechecking this across all the > files :-/ >> tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: >> - seems there's a bad indentation for the last 11 lines > ..not found...?? >> tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java >> - bad indentation in a method getIndependentInstance() > fixed >> - -//- for executeJavawsHeadless > fixed >> - -//- executeJavaws, executeBrowser > fixed > > > And concept of executeBrowser and listeners at all? > Is it worthy to continue this way? What about "firefox" issue? > And posted testcases? Especially the applet in browser one? And change > in main method? And issue with link? Well it's focused to test Firefox only at this moment, but I think that we can start with your solution and then update it to support Chrome etc. etc. (it should be easy IMHO). > > The issue with link and with browser is quit fundamental and I'm not > sure how to continue with it. There is -Dvariable for setting up bowser, > but it do not solve anything at all :( And the link issue is even more > tricky with various (means supported x the testing one) browsers. Or > should ve be happy with firefox? Or should this test to be > multi-browsers? (== during each run, each html test wil be lunched in > all possibel browser [I do not believe this is worthy, but recent > regression on chromium shows differently]) But why not? After all the number of browsers supported is still quite small (er Opera er ;-) > > Although I have posted this in-browser tests as proof-of concept, there > is already need for applets tests so I'm for to push it in, because > abstraction, as it is written, is quite enough and improvements can be > done in "runtime". I agree. > >> - -//- splitArray (it needs JavaDoc > definitely. Sorry for forgot it. > too, contains double ";;" on one line etc.) > damn. YY - fixed >> I think it could be simplified to use one loop only and two index >> variables >> (we can talk about this personally) > Can it? Make your shot! O:) Btw - I have *one* loop, tehn second O:) > for copyying of aray (As I'm not friend of copyarray method :( ) and > *one* index, but yes, the header of method is not nice. But it was still > fighting with me:-/ Make your shot! will send :-) > >> - I'm probably wrong but is seems that all applet/jnlp tests are using >> only "localhost" network interface. >> If it is true I'm afraid we miss some iptables-related or IPv6 related >> issues. > Hmhm.. very interesting topic (== you are not wrong), but it should be > raised when the test-engine was done (bud good that wasnt O!o) ) > On the other side, the testing framework on client itself can handle > this. The problem is to have some server running. To have it integrated > inside current makefile can be quit tricky, and I'm strongly against. > Currently I'm against to add this feature at all, because there is no > known issue with this and local host seem to be enough. > In case this issue will rise with higher priority, then my suggestion > will be: > 1) to have some remote server running and working - absolutely out of > icetea-web makefile's control > 2) set eg --with-remote-server=my.server.org:xyz/something the remote > server configurated for coopeartion > 3) makefile will sed urls in (selected?) jnlps/htmls and, and will pass > this url to testengine so it will know where to requests jnlps and htmls > 4) makefile will copy (selected?) resources to this remote server, > 5) the tests run will run as usual, because stdout/err/gui examination > will behave in same way as in localhost. > > Acctually I do not see some big issue with this approach at all, and in > case it will become handy it can be implemented. > The only change in current implementation will be passing list of tests > which should run remotly. In testengine run I can imageine some > extension to executeJavaws(..) method Eg executeRemoteJavaws(...) - > there is enough abstraction level to handle this properly. During > compilation of reproducers and copying of resources it will need some > list (or directory) to specify remote ones . > > But really - until there is some real need for this reproducers, I would > rather stand without this. >> >> Cheers, >> Pavel >> >> (Hint: Eclipse Ctrl+F) > Yap NB have the same. But the issue is between computer and keyboard (as > always with me and indentation) >> >> Jiri Vanek wrote: > Snip >> >> *Testing* >> _splash tests_ >> I was "facing really huge problem" When I wanted to see spalshscreen >> inside browser - it was always to quickly lost :) So Ihave added magic >> prefix XslowX to be rocgnized by internal server. When some resource >> starts with this prefix, its without-prefix-version is returned as >> resource. The difference is that its downloading is delayed to 10s >> (10%per seccond). It is done by spliting this resource's byte[] to 10 >> peaces. This throws BrokenPipe Exception, but is working fine. >> Minor improvement inside ServerAcces.main() is tighter integration with >> testing framework - It can now be lunched instead of eg python >> smallHTTPserver and working directory is set in same way as during tests >> by -D property (so it can be lunched with same environment settings as >> in-ide tests) >> Second problem I was facing was automated testing of applets in firefox. >> The integration of "lunch html with browser, examine stdout/stderr,kill >> firefox" required just small changes and is working really well. >> But there is one big TODO - to configure (in make?) browser so it works >> with JUST BUILT iced-tea-web-plugin. Currently it expects to have >> firefox well configured (= to link >> /usr/lib/mozzila/libs/plugins/icedteaweb-plugin.so (or wherever firefox >> have plugins) with the one in --prefix path). But it is not the best >> way. To future I'm thinking about customised "embeded" firefox or to >> some link-plugin makefile target (run under root) which fill create >> this link (currently iced tea-web's install do not create this link, it >> is done in RPM post), or to have some local firefox which can be >> linkable without root and provide --with_browser.... - *any ideas >> welcomed* ! >> And one small to do - in some future integrate awt-robot (+stdin/out) >> listeners >> _new tests_ >> One new automated test is added to demonstrate the powers of testing of >> applets inside browser >> Bunch of new test which are using XslowX to allow everybody to see >> various cases of spalshscreens. Those tests are not automated and are >> testing custom splash, broken custom splash, my splashes... broken >> stuff..both for applets and javaws > > ...snip... > > J. > > From jvanek at redhat.com Mon Mar 12 07:40:10 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 15:40:10 +0100 Subject: Applet's in browser, slow loading, remote and (in some bright future) graphical testing and some minor improvements (was Re: Icedtea-web splashscreen implementation) In-Reply-To: <4F5DF4F6.905@redhat.com> References: <4F50BE87.5070508@redhat.com> <4F5DD9D7.7030905@redhat.com> <4F5DEC6A.8040802@redhat.com> <4F5DF4F6.905@redhat.com> Message-ID: <4F5E0ACA.8010503@redhat.com> On 03/12/2012 02:07 PM, Pavel Tisnovsky wrote: > Jiri Vanek wrote: >> On 03/12/2012 12:11 PM, Pavel Tisnovsky wrote: >>> Hi Jiri, >>> >>> I'd like to comment the last patch with new test framework functionality: >>> >>> 1) the idea of adding some delay to see/test splashscreen is great, >>> but is not >>> it better to add some annotation to such tests instead of using >>> "magic" test name? >>> Similar functionality is used in JTreg tests (not "true" >>> annotations, but similar approach). >>> I'm sure we'll need to add more per-test parameters in the future. >> >> hmhm interesting idea, but I need to specify this inside JNLP file or >> inside applet tag in html file. And I wanted to lunch it outside the >> engine.... Have you any clue how to do this with annotation? > > Yes, you can AFAIK use "property" tag in JNLP file. It contains "name" > and "value" and this pair should be available through System.getProperty() > (there probably exist tests which check this functionality :-) > > So we could prepare a list of some properties used by the test machinery. ugh ugh... Can you say little bit more about this idea? And applets? And usage inside/outside/itself engine? > >>> >>> 2) some notes to the patch: >>> >> Indentation - Damn this:-/ I was doublechecking this across all the >> files :-/ >>> tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: >>> - seems there's a bad indentation for the last 11 lines >> ..not found...?? >>> tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java >>> - bad indentation in a method getIndependentInstance() >> fixed >>> - -//- for executeJavawsHeadless >> fixed >>> - -//- executeJavaws, executeBrowser >> fixed >> >> >> And concept of executeBrowser and listeners at all? >> Is it worthy to continue this way? What about "firefox" issue? >> And posted testcases? Especially the applet in browser one? And change >> in main method? And issue with link? > > Well it's focused to test Firefox only at this moment, but I think > that we can start with your solution and then update it to support Chrome > etc. etc. (it should be easy IMHO). True. I will add function which will return iterator for all possible browsers. So each test will be possible to run in all set browsers. > >> >> The issue with link and with browser is quit fundamental and I'm not >> sure how to continue with it. There is -Dvariable for setting up bowser, >> but it do not solve anything at all :( And the link issue is even more >> tricky with various (means supported x the testing one) browsers. Or >> should ve be happy with firefox? Or should this test to be >> multi-browsers? (== during each run, each html test wil be lunched in >> all possibel browser [I do not believe this is worthy, but recent >> regression on chromium shows differently]) > > But why not? After all the number of browsers supported is still quite small (er Opera er ;-) As told above... Will be done. So we have Firefox and Chromium supported? Waht about chrome? opera? safari? Still I don't know how to handle link for firefox, and have absolutly no clue about other browser.... This is becoming quite funny :) > >> >> Although I have posted this in-browser tests as proof-of concept, there >> is already need for applets tests so I'm for to push it in, because >> abstraction, as it is written, is quite enough and improvements can be >> done in "runtime". > > I agree. Is there something more then javadoc, browser iterator, and tuned byte[] split You want me to do before next review round? > >> >>> - -//- splitArray (it needs JavaDoc >> definitely. Sorry for forgot it. >> too, contains double ";;" on one line etc.) >> damn. YY - fixed >>> I think it could be simplified to use one loop only and two index >>> variables >>> (we can talk about this personally) >> Can it? Make your shot! O:) Btw - I have *one* loop, tehn second O:) >> for copyying of aray (As I'm not friend of copyarray method :( ) and >> *one* index, but yes, the header of method is not nice. But it was still >> fighting with me:-/ Make your shot! > will send :-) >> >>> - I'm probably wrong but is seems that all applet/jnlp tests are using >>> only "localhost" network interface. >>> If it is true I'm afraid we miss some iptables-related or IPv6 related >>> issues. >> Hmhm.. very interesting topic (== you are not wrong), but it should be >> raised when the test-engine was done (bud good that wasnt O!o) ) >> On the other side, the testing framework on client itself can handle >> this. The problem is to have some server running. To have it integrated >> inside current makefile can be quit tricky, and I'm strongly against. >> Currently I'm against to add this feature at all, because there is no >> known issue with this and local host seem to be enough. >> In case this issue will rise with higher priority, then my suggestion >> will be: >> 1) to have some remote server running and working - absolutely out of >> icetea-web makefile's control >> 2) set eg --with-remote-server=my.server.org:xyz/something the remote >> server configurated for coopeartion >> 3) makefile will sed urls in (selected?) jnlps/htmls and, and will pass >> this url to testengine so it will know where to requests jnlps and htmls >> 4) makefile will copy (selected?) resources to this remote server, >> 5) the tests run will run as usual, because stdout/err/gui examination >> will behave in same way as in localhost. >> >> Acctually I do not see some big issue with this approach at all, and in >> case it will become handy it can be implemented. >> The only change in current implementation will be passing list of tests >> which should run remotly. In testengine run I can imageine some >> extension to executeJavaws(..) method Eg executeRemoteJavaws(...) - >> there is enough abstraction level to handle this properly. During >> compilation of reproducers and copying of resources it will need some >> list (or directory) to specify remote ones . >> >> But really - until there is some real need for this reproducers, I would >> rather stand without this. >>> >>> Cheers, >>> Pavel >>> >>> (Hint: Eclipse Ctrl+F) >> Yap NB have the same. But the issue is between computer and keyboard (as >> always with me and indentation) >>> >>> Jiri Vanek wrote: >> Snip >>> >>> *Testing* >>> _splash tests_ >>> I was "facing really huge problem" When I wanted to see spalshscreen >>> inside browser - it was always to quickly lost :) So Ihave added magic >>> prefix XslowX to be rocgnized by internal server. When some resource >>> starts with this prefix, its without-prefix-version is returned as >>> resource. The difference is that its downloading is delayed to 10s >>> (10%per seccond). It is done by spliting this resource's byte[] to 10 >>> peaces. This throws BrokenPipe Exception, but is working fine. >>> Minor improvement inside ServerAcces.main() is tighter integration with >>> testing framework - It can now be lunched instead of eg python >>> smallHTTPserver and working directory is set in same way as during tests >>> by -D property (so it can be lunched with same environment settings as >>> in-ide tests) >>> Second problem I was facing was automated testing of applets in firefox. >>> The integration of "lunch html with browser, examine stdout/stderr,kill >>> firefox" required just small changes and is working really well. >>> But there is one big TODO - to configure (in make?) browser so it works >>> with JUST BUILT iced-tea-web-plugin. Currently it expects to have >>> firefox well configured (= to link >>> /usr/lib/mozzila/libs/plugins/icedteaweb-plugin.so (or wherever firefox >>> have plugins) with the one in --prefix path). But it is not the best >>> way. To future I'm thinking about customised "embeded" firefox or to >>> some link-plugin makefile target (run under root) which fill create >>> this link (currently iced tea-web's install do not create this link, it >>> is done in RPM post), or to have some local firefox which can be >>> linkable without root and provide --with_browser.... - *any ideas >>> welcomed* ! >>> And one small to do - in some future integrate awt-robot (+stdin/out) >>> listeners >>> _new tests_ >>> One new automated test is added to demonstrate the powers of testing of >>> applets inside browser >>> Bunch of new test which are using XslowX to allow everybody to see >>> various cases of spalshscreens. Those tests are not automated and are >>> testing custom splash, broken custom splash, my splashes... broken >>> stuff..both for applets and javaws >> >> ...snip... >> >> J. >> >> > From ddadacha at redhat.com Mon Mar 12 07:59:12 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 12 Mar 2012 10:59:12 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5C31BA.6000701@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> Message-ID: <4F5E0F40.1040001@redhat.com> On 11/03/12 12:01 AM, Omair Majid wrote: > On 03/09/2012 12:16 PM, Danesh Dadachanji wrote: >> If javaws is run with -headless and a launch error occurs, no message is >> printed and javaws exits. > > By no message do you mean nothing at all (or is a single line message > printed without an exception stack trace)? > Unfortunately nothing at all. I would not have noticed this if it printed something. =) The method printMessage() setup that one-liner that needed to be printed but never actually did the printing. :/ Don't think I mentioned this in the original email but the reason behind -headless or -verbose printing a stack trace is to make it similar to when neither are passed. In this case, javaws prints the dialog with a stack trace so in order to make -headless act similarly, Jiri and I concluded it would be best to print the entire stacktrace if just -headless was passed (regardless of -verbose). >> An exception is only shown if -verbose is >> passed too. This patch fixes it so that if -headless OR -verbose is >> used, the error and stacktrace are shown. >> >> Furthermore, when javaws -verbose is used (_without_ -headless), the >> stacktrace is printed to stderr too. This will come in handy once GUI >> testing for applets is available. > > I am not sure how. Applets don't use GuiLaunchHandler. > Commenting on this to my reply to Jiri's email. >> diff --git a/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java b/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java >> --- a/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java >> +++ b/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java >> @@ -101,6 +94,17 @@ public class DefaultLaunchHandler implem >> result.append(causes[i].getMessage()); >> result.append(")"); >> } >> + >> + System.err.println(result); >> + >> + // When isHeadless() is false, the message dialog would display the full >> + // stacktrace. To be consistent, display it when isHeadless() as well. >> + if (JNLPRuntime.isDebug() || JNLPRuntime.isHeadless()) { > > This if statement looks redundant. DefaultLaunchHandler is only used as > the LaunchHandler in headless mode. I thought so too until I checked where printMessage() was called from. See launchWarning in GuiLaunchHandler[1], it explicitly calls DefaultLaunchHandler.printMessage(). I didn't look into why it was doing that so if you think that's a bug, I can look into it further. Thanks for the comments! Cheers, Danesh [1] http://icedtea.classpath.org/hg/icedtea-web/file/tip/netx/net/sourceforge/jnlp/GuiLaunchHandler.java#l144 From ddadacha at redhat.com Mon Mar 12 08:07:59 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 12 Mar 2012 11:07:59 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5DB26B.1050906@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5DB26B.1050906@redhat.com> Message-ID: <4F5E114F.5050300@redhat.com> On 12/03/12 04:23 AM, Jiri Vanek wrote: > On 03/11/2012 06:01 AM, Omair Majid wrote: >> On 03/09/2012 12:16 PM, Danesh Dadachanji wrote: >>> If javaws is run with -headless and a launch error occurs, no message is >>> printed and javaws exits. >> >> By no message do you mean nothing at all (or is a single line message >> printed without an exception stack trace)? >> >>> An exception is only shown if -verbose is >>> passed too. This patch fixes it so that if -headless OR -verbose is >>> used, the error and stacktrace are shown. >>> >>> Furthermore, when javaws -verbose is used (_without_ -headless), the >>> stacktrace is printed to stderr too. This will come in handy once GUI >>> testing for applets is available. >> >> I am not sure how. Applets don't use GuiLaunchHandler. They do from what I can tell. The handler is set to a DefaultLaunchHandler if -headless is passed, otherwise to GuiLaunchHandler - see JNLPRuntime.initialize(). From here, I can see a number of methods calling Launcher.launchError() which calls the handler's launchError(), the method I've modified. For example, Launcher.createApplet() does. > I guess he have been thinking about gui tests at all. There will be gui > tests also for javaws launches and in this case this become handy. > For applets inside browser this should be solved in new spalshscreen. > Also it is not possible to lunch applets inside browser headless. > Also javaws -headless someAppelt is not working curently - the gui is > still shown. There is a bug for it. Yes, the only reason I added this was for our test suite. The scenario I had in my head was that an applet is run with GUI (i.e. javaws _without_ -headless) and may or may not throw an exception. It would be easier to parse this from stderr rather than going through the dialog. Thanks for the reviews, I hope this clears things up. Cheers, Danesh From ptisnovs at redhat.com Mon Mar 12 07:13:54 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 12 Mar 2012 15:13:54 +0100 Subject: Applet's in browser, slow loading, remote and (in some bright future) graphical testing and some minor improvements (was Re: Icedtea-web splashscreen implementation) In-Reply-To: <4F5DEC6A.8040802@redhat.com> References: <4F50BE87.5070508@redhat.com> <4F5DD9D7.7030905@redhat.com> <4F5DEC6A.8040802@redhat.com> Message-ID: <4F5E04A2.9030103@redhat.com> > done in "runtime". > >> - -//- splitArray (it needs JavaDoc > definitely. Sorry for forgot it. > too, contains double ";;" on one line etc.) > damn. YY - fixed >> I think it could be simplified to use one loop only and two index >> variables >> (we can talk about this personally) > Can it? Make your shot! O:) Btw - I have *one* loop, tehn second O:) > for copyying of aray (As I'm not friend of copyarray method :( ) and > *one* index, but yes, the header of method is not nice. But it was still > fighting with me:-/ Make your shot! Version w/o your loved System.arraycopy :-) I personally dislike these two ifs on the beginning because I think it should be done differently without the need to multiply and modulo: public static byte[][] splitArray(byte[] input, int pieces) { int rest = input.length; int rowLength = rest / pieces; if (rest % pieces > 0) rowLength++; if (pieces * rowLength >= rest + rowLength) pieces--; int i = 0, j = 0; byte[][] array = new byte[pieces][]; array[0] = new byte[rowLength]; for (byte b : input) { if (i >= rowLength) { i = 0; array[++j] = new byte[Math.min(rowLength, rest)]; } array[j][i++] = b; rest--; } return array; } From omajid at redhat.com Mon Mar 12 08:14:52 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 12 Mar 2012 11:14:52 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5E114F.5050300@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5DB26B.1050906@redhat.com> <4F5E114F.5050300@redhat.com> Message-ID: <4F5E12EC.3070800@redhat.com> On 03/12/2012 11:07 AM, Danesh Dadachanji wrote: > On 12/03/12 04:23 AM, Jiri Vanek wrote: >> On 03/11/2012 06:01 AM, Omair Majid wrote: >>> On 03/09/2012 12:16 PM, Danesh Dadachanji wrote: >>>> If javaws is run with -headless and a launch error occurs, no >>>> message is >>>> printed and javaws exits. >>> >>> By no message do you mean nothing at all (or is a single line message >>> printed without an exception stack trace)? >>> >>>> An exception is only shown if -verbose is >>>> passed too. This patch fixes it so that if -headless OR -verbose is >>>> used, the error and stacktrace are shown. >>>> >>>> Furthermore, when javaws -verbose is used (_without_ -headless), the >>>> stacktrace is printed to stderr too. This will come in handy once GUI >>>> testing for applets is available. >>> >>> I am not sure how. Applets don't use GuiLaunchHandler. > > They do from what I can tell. The handler is set to a > DefaultLaunchHandler if -headless is passed, otherwise to > GuiLaunchHandler - see JNLPRuntime.initialize(). From here, I can see a > number of methods calling Launcher.launchError() which calls the > handler's launchError(), the method I've modified. For example, > Launcher.createApplet() does. > Hm.... I guess you mean applet as in through javaws? /me was thinking of applets as in plugin. See plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java if (System.getSecurityManager() == null) { JNLPRuntime.initialize(/* isApplication */false); JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler()); } If it wasn't being set, that would be a bug. We don't want to show prompts to the user for every applet that is running in the browser. >> I guess he have been thinking about gui tests at all. There will be gui >> tests also for javaws launches and in this case this become handy. >> For applets inside browser this should be solved in new spalshscreen. >> Also it is not possible to lunch applets inside browser headless. >> Also javaws -headless someAppelt is not working curently - the gui is >> still shown. There is a bug for it. > > Yes, the only reason I added this was for our test suite. The scenario I > had in my head was that an applet is run with GUI (i.e. javaws _without_ > -headless) and may or may not throw an exception. It would be easier to > parse this from stderr rather than going through the dialog. I was thinking in terms of the user. Is it better to show the user entire stack traces rather than a single-line error message? I agree that with -verbose, stack traces should be printed. But even without? Cheers, Omair From omajid at redhat.com Mon Mar 12 08:41:10 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 12 Mar 2012 11:41:10 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5E0F40.1040001@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5E0F40.1040001@redhat.com> Message-ID: <4F5E1916.2010903@redhat.com> On 03/12/2012 10:59 AM, Danesh Dadachanji wrote: > On 11/03/12 12:01 AM, Omair Majid wrote: >> On 03/09/2012 12:16 PM, Danesh Dadachanji wrote: >>> If javaws is run with -headless and a launch error occurs, no message is >>> printed and javaws exits. >> >> By no message do you mean nothing at all (or is a single line message >> printed without an exception stack trace)? >> > > Unfortunately nothing at all. I would not have noticed this if it > printed something. =) The method printMessage() setup that one-liner > that needed to be printed but never actually did the printing. :/ >From the point of view of a user (and not a test), I would think that single line error message explaining what went wrong would be more important than a stack trace (which would be meaningless to most users). > Don't think I mentioned this in the original email but the reason behind > -headless or -verbose printing a stack trace is to make it similar to > when neither are passed. In this case, javaws prints the dialog with a > stack trace so in order to make -headless act similarly, Jiri and I > concluded it would be best to print the entire stacktrace if just > -headless was passed (regardless of -verbose). > I think it would be better to leave out the stack trace in headless mode, but if others think that the stack trace should be printed, then that's fine by me. > I thought so too until I checked where printMessage() was called from. > See launchWarning in GuiLaunchHandler[1], it explicitly calls > DefaultLaunchHandler.printMessage(). I didn't look into why it was doing > that so if you think that's a bug, I can look into it further. That might be best. The more we can get rid of these corner cases and conditionals, the fewer bugs we should have. Cheers, Omair From jvanek at redhat.com Mon Mar 12 08:46:43 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 16:46:43 +0100 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5E12EC.3070800@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5DB26B.1050906@redhat.com> <4F5E114F.5050300@redhat.com> <4F5E12EC.3070800@redhat.com> Message-ID: <4F5E1A63.8040501@redhat.com> On 03/12/2012 04:14 PM, Omair Majid wrote: > On 03/12/2012 11:07 AM, Danesh Dadachanji wrote: >> On 12/03/12 04:23 AM, Jiri Vanek wrote: >>> On 03/11/2012 06:01 AM, Omair Majid wrote: >>>> On 03/09/2012 12:16 PM, Danesh Dadachanji wrote: >>>>> If javaws is run with -headless and a launch error occurs, no >>>>> message is >>>>> printed and javaws exits. >>>> >>>> By no message do you mean nothing at all (or is a single line message >>>> printed without an exception stack trace)? >>>> >>>>> An exception is only shown if -verbose is >>>>> passed too. This patch fixes it so that if -headless OR -verbose is >>>>> used, the error and stacktrace are shown. >>>>> >>>>> Furthermore, when javaws -verbose is used (_without_ -headless), the >>>>> stacktrace is printed to stderr too. This will come in handy once GUI >>>>> testing for applets is available. >>>> >>>> I am not sure how. Applets don't use GuiLaunchHandler. >> >> They do from what I can tell. The handler is set to a >> DefaultLaunchHandler if -headless is passed, otherwise to >> GuiLaunchHandler - see JNLPRuntime.initialize(). From here, I can see a >> number of methods calling Launcher.launchError() which calls the >> handler's launchError(), the method I've modified. For example, >> Launcher.createApplet() does. >> > > Hm.... I guess you mean applet as in through javaws? /me was thinking of > applets as in plugin. > > See plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > > if (System.getSecurityManager() == null) { > JNLPRuntime.initialize(/* isApplication */false); > JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler()); > } > > If it wasn't being set, that would be a bug. We don't want to show > prompts to the user for every applet that is running in the browser. > >>> I guess he have been thinking about gui tests at all. There will be gui >>> tests also for javaws launches and in this case this become handy. >>> For applets inside browser this should be solved in new spalshscreen. >>> Also it is not possible to lunch applets inside browser headless. >>> Also javaws -headless someAppelt is not working curently - the gui is >>> still shown. There is a bug for it. >> >> Yes, the only reason I added this was for our test suite. The scenario I >> had in my head was that an applet is run with GUI (i.e. javaws _without_ >> -headless) and may or may not throw an exception. It would be easier to >> parse this from stderr rather than going through the dialog. > > I was thinking in terms of the user. Is it better to show the user > entire stack traces rather than a single-line error message? I agree > that with -verbose, stack traces should be printed. But even without? It was me who suggested this. After reading this paragraph it looks like you are correct. My opinion come from precedes, that during NOT headless session, user receive WHOLE stacktrace in error dialogue. Thats why I wanted to show the whole stacktrace in headless mode. From your paragraph opinion --verbose looks like button >>more<< in NOT headless mode. What I have also on my mind is, that when user fill bug, then mostly first thing by which we are replying to him is something like "can you run it with verbose and in debug mode"? Now I'm 50/50 :) > > Cheers, > Omair From ddadacha at redhat.com Mon Mar 12 09:01:33 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 12 Mar 2012 12:01:33 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5DC162.5010508@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> Message-ID: <4F5E1DDD.6010407@redhat.com> On 12/03/12 05:26 AM, Jiri Vanek wrote: > On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: >> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >>> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>>> Hi, >>>>>>> >>>>>>> Looking at the plugin docs[1], <title> and <vendor> are required >>>>>>> elements of <information>, without them the plugin should stop >>>>>>> with a >>>>>>> fatal error. Currently, icedtea-web just returns null from their >>>>>>> respective getters and handles null accordingly. However it >>>>>>> should not >>>>>>> even reach that far. Here's a simple patch that throws a >>>>>>> ParseException when not found. >>>>>>> >>>>>>> ChangeLog >>>>>>> +2012-01-06 Danesh Dadachanji <ddadacha at redhat.com> >>>>>>> + >>>>>>> + Applications using JNLP files without a title or vendor section >>>>>>> + still run, despite them being required elements. >>>>>>> + * netx/net/sourceforge/jnlp/Parser.java: >>>>>>> + (getInformationDesc): If title or vendor are not found in info, >>>>>>> + a new ParseException is thrown. >>>>>>> + * netx/net/sourceforge/jnlp/resources/Messages.properties: Add >>>>>>> + PNoTitleElement and PNoVendorElement >>>>>>> + >>>>>>> >>>>>>> Any comments? Is this okay for HEAD? > In title of this email you write "Plugin" but it seems to me this is fix > IN java web start with impact to plugin. Woops, yes it is meant to be in both webstart and plugin. I noticed this while running plugin applets but developed it with general icedtea-web in mind. > If it is also for applets, can you add javaws someAppelt.jnlp tests? (as > AppeltTest is dooing now) and test the same exceptions as in case of > javaws some-application.jnlp? You can use already translated jar-ed > applet and just call jnlp fiels upon him (same as I'm suggesting for > your current javaws tests-set) Hmm am I misunderstanding this? I think you're asking for what TitleVendorParser does, would you like something on top of this? Just to clarify, TitleVendorParser is for javaws right now, not for the plugin (as the misleading subject says!) > Soon there will be intorudcued in-browser applet testing, do you think > to remind me to add html tests for this case later? (Or you can do this, > if you will want to check the in-browser "engine" ;) > I had it on my to-do along with the CheckServices test. ;) > Few more comment in-line: [snip] >> >> + if (info.getTitle() == null || info.getTitle().equals("")) >> + throw new ParseException(R("PNoTitleElement")); >> + if (info.getVendor() == null || info.getVendor().equals("")) >> + throw new ParseException(R("PNoVendorElement")); >> + >> return info; >> } >> > I would suggest "".equals(info.get*().trim()) instead of > info.get*().equals("") > Usage of trim i straight forward and I think it is necessary. > The "".equals instead of string.equals("") really just minor nitpick :) > "".equals(null) returns false instead of NUllPointerException. I do not > believe trim() will ever return null, but it is good habit (IMHO O:) ) > If no need for trim will be here, then just "".equals(info.get*()) will > be enough instead of both conditions. > Commenting on this in the other responses from yourself and Pavel. [snip] >> a/tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp >> >> +++ >> b/tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp >> >> @@ -4,6 +4,7 @@ >> href="SetContextClassLoader.jnlp"> >> <information> >> <title>set context classloader >> +Red Hat >> >> >> > > Yap, tahnx for this. I think you can push them asap - independently on > rest of the fix. > Okay, I'll do that now. [snip..again] > > Now you will hate me : > I think it is worthy to add also one testy with both missing, and few > tests which will try to paly with count and order of mandatory and > obligatory elements. > Also I woud asuggest to introduce > String s1 = "Sould not be reached but JNLP was parsed fine."; > Assert.assertFalse("testForVendor stdout should not contain " + s1 + " > but did.", pr.stdout.contains(s1)); > String s2 = "net.sourceforge.jnlp.ParseException: The vendor section has > not been defined in the JNLP file."; > Assert.assertTrue("testForVendor stderr should contain " + s2 + " but > did not.", pr.stderr.contains(s2)); > Assert.assertFalse(pr.wasTerminated); > Assert.assertEquals((Integer)0, pr.returnValue); > > as separate method (especialy if more tests will be added) > Ah smart thinking! > > Do I understand correctly that when information element is missing, then > jnlp is processed correctly? No, information is also required from the spec[1]. > For both yes and no - can you add test for it? Sure. > If yes - what does getInformationDesc() returns?? null?? I believe jnlp > should not be processed :-/ Yes, it should not be processed. Currently, javaws throws an exception when is missing. I believe that's where I got the idea for this from. =) > Also I think you do not need to add new jar with new srcs class > (TitleVendorParser) (==just remove thsi file and no jar will be > created), but you can yuse eg simpletest1) and just use your new jnlps > to call this old jar. But this is really up to you, if you want to have > by-your-test-controlled jar, then as you wish. (Me, personally, should > probably stay with my own jar ;) Good idea, I can probably do without making new ones. If it gives me too much trouble, I might be lazy and just use my own. =) > I got used to check for ClassNotFound exception, which is here for > reason that netx.jar is broken, javaws is broken or the whole test is > compeltly broken. But when you are checking for stdout of your jar, then > it is not necessary, it just helps to see imidietly that soemting more > bad then just test failure have occured. Do you think it is worthy to > add? By other words - Should I get rid of this "habit" ? Hmm so it's basically a sanity check? I'm not sure TBH, on the one hand it is easier to identify issues outside of the test's scope. However, on the other hand, it's a redundant test that should be passing all the time once you have the test working properly. Does it have any use after the test runs properly? If it doesn't, I don't see the point in keeping it. >> diff --git >> a/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> --- a/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >> @@ -1,5 +1,9 @@ >> >> >> + >> +Sample Test >> +RedHat >> + >> >> >> > Thsi one should be pushed with rest of in-tests vendor/title fixes > > > TYVM! > My pleasure! I'll push these minor fixes now. Thanks for the feedback! Cheers, Danesh [1] http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html From ptisnovs at redhat.com Mon Mar 12 09:09:04 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 12 Mar 2012 17:09:04 +0100 Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: <43059643-80dc-4e43-8e2c-ca836621803e@zmail17.collab.prod.int.phx2.redhat.com> References: <43059643-80dc-4e43-8e2c-ca836621803e@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F5E1FA0.70905@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Andrew Hughes wrote: >>> ----- Original Message ----- >>>> Hi, >>>> >>>> I'd like to add following "small" (well 1MB of size ;-) backport >>>> to >>>> IcedTea6: >>>> "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" >>>> >>>> This patch fixes (among other thing) following issue: >>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>> >>>> hg diff created against recent IcedTea6 HEAD version is stored in >>>> an >>>> attachment >>>> in a BZIP archive (because I don't want to send quite big 1MB >>>> attachment to public mail list). >>>> >>>> Please note that it's not a direct backport because of (quite >>>> minor) >>>> differences >>>> between IT6 and OpenJDK7 sources. This patch applies cleanly and >>>> it >>>> does not >>>> seem to cause any compatibility issues. >>>> >>>> Here's ChangeLog entry: >>>> >>>> 2012-02-28 Pavel Tisnovsky >>>> >>>> * Makefile.am: Add new patch. >>>> * NEWS: Mention backport. >>>> * patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: >>>> Backport of S6469266: Integrate Apache XMLSec 1.4.2 into JDK 7 >>>> >>>> >>>> Can anybody please review this change? >>>> >>>> Thank you in advance, >>>> Pavel >>>> >>> What's the motivation for this? Does the proprietary JDK 6 use >>> this version? >> Can not say anything about JDK 6, but tests mentioned here: >> >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >> >> failed only on IcedTea6. IT7/O7 looks ok, the same for proprietary >> JDK6. >> >> Pavel >> >> > > Yes, but IcedTea6/OpenJDK6 has to meet the Java 6 specification. > IcedTea7/OpenJDK7 obviously don't. Do you have a link to the original > changeset? Hi Andrew, here's bug with description: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6469266 and here the original changeset: http://hg.openjdk.java.net/jdk7/jsn/jdk/rev/74fc78477907 Pavel From ddadacha at redhat.com Mon Mar 12 08:29:02 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 12 Mar 2012 11:29:02 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5E12EC.3070800@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5DB26B.1050906@redhat.com> <4F5E114F.5050300@redhat.com> <4F5E12EC.3070800@redhat.com> Message-ID: <4F5E163E.6020207@redhat.com> On 12/03/12 11:14 AM, Omair Majid wrote: > On 03/12/2012 11:07 AM, Danesh Dadachanji wrote: >> On 12/03/12 04:23 AM, Jiri Vanek wrote: >>> On 03/11/2012 06:01 AM, Omair Majid wrote: >>>> On 03/09/2012 12:16 PM, Danesh Dadachanji wrote: >>>>> If javaws is run with -headless and a launch error occurs, no >>>>> message is >>>>> printed and javaws exits. >>>> >>>> By no message do you mean nothing at all (or is a single line message >>>> printed without an exception stack trace)? >>>> >>>>> An exception is only shown if -verbose is >>>>> passed too. This patch fixes it so that if -headless OR -verbose is >>>>> used, the error and stacktrace are shown. >>>>> >>>>> Furthermore, when javaws -verbose is used (_without_ -headless), the >>>>> stacktrace is printed to stderr too. This will come in handy once GUI >>>>> testing for applets is available. >>>> >>>> I am not sure how. Applets don't use GuiLaunchHandler. >> >> They do from what I can tell. The handler is set to a >> DefaultLaunchHandler if -headless is passed, otherwise to >> GuiLaunchHandler - see JNLPRuntime.initialize(). From here, I can see a >> number of methods calling Launcher.launchError() which calls the >> handler's launchError(), the method I've modified. For example, >> Launcher.createApplet() does. >> > > Hm.... I guess you mean applet as in through javaws? /me was thinking of > applets as in plugin. > Yep, this is only regarding javaws. As you mentioned below, the plugin doesn't send dialog prompts at all. > See plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > > if (System.getSecurityManager() == null) { > JNLPRuntime.initialize(/* isApplication */false); > JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler()); > } > > If it wasn't being set, that would be a bug. We don't want to show > prompts to the user for every applet that is running in the browser. > >>> I guess he have been thinking about gui tests at all. There will be gui >>> tests also for javaws launches and in this case this become handy. >>> For applets inside browser this should be solved in new spalshscreen. >>> Also it is not possible to lunch applets inside browser headless. >>> Also javaws -headless someAppelt is not working curently - the gui is >>> still shown. There is a bug for it. >> >> Yes, the only reason I added this was for our test suite. The scenario I >> had in my head was that an applet is run with GUI (i.e. javaws _without_ >> -headless) and may or may not throw an exception. It would be easier to >> parse this from stderr rather than going through the dialog. > > I was thinking in terms of the user. Is it better to show the user > entire stack traces rather than a single-line error message? I agree > that with -verbose, stack traces should be printed. But even without? > I mentioned this in the other email...seems like this one got through first even though it was sent after! > Don't think I mentioned this in the original email but the reason behind > -headless or -verbose printing a stack trace is to make it similar to > when neither are passed. In this case, javaws prints the dialog with a > stack trace so in order to make -headless act similarly, Jiri and I > concluded it would be best to print the entire stacktrace if just > -headless was passed (regardless of -verbose). Now whether we want this is a different thing, I think consistency is better but if it's more messy, I don't mind changing this. Either way, the one-liner's printed. Cheers, Danesh From jvanek at redhat.com Mon Mar 12 09:20:00 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 17:20:00 +0100 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5E1DDD.6010407@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5E1DDD.6010407@redhat.com> Message-ID: <4F5E2230.9040501@redhat.com> On 03/12/2012 05:01 PM, Danesh Dadachanji wrote: > On 12/03/12 05:26 AM, Jiri Vanek wrote: >> On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: >>> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >>>> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>>>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> Looking at the plugin docs[1], and <vendor> are required >>>>>>>> elements of <information>, without them the plugin should stop >>>>>>>> with a >>>>>>>> fatal error. Currently, icedtea-web just returns null from their >>>>>>>> respective getters and handles null accordingly. However it >>>>>>>> should not >>>>>>>> even reach that far. Here's a simple patch that throws a >>>>>>>> ParseException when not found. >>>>>>>> >>>>>>>> ChangeLog >>>>>>>> +2012-01-06 Danesh Dadachanji <ddadacha at redhat.com> >>>>>>>> + >>>>>>>> + Applications using JNLP files without a title or vendor section >>>>>>>> + still run, despite them being required elements. >>>>>>>> + * netx/net/sourceforge/jnlp/Parser.java: >>>>>>>> + (getInformationDesc): If title or vendor are not found in info, >>>>>>>> + a new ParseException is thrown. >>>>>>>> + * netx/net/sourceforge/jnlp/resources/Messages.properties: Add >>>>>>>> + PNoTitleElement and PNoVendorElement >>>>>>>> + >>>>>>>> >>>>>>>> Any comments? Is this okay for HEAD? >> In title of this email you write "Plugin" but it seems to me this is fix >> IN java web start with impact to plugin. > > Woops, yes it is meant to be in both webstart and plugin. I noticed this while running plugin applets but developed it with general icedtea-web in mind. Fair enough;) > >> If it is also for applets, can you add javaws someAppelt.jnlp tests? (as >> AppeltTest is dooing now) and test the same exceptions as in case of >> javaws some-application.jnlp? You can use already translated jar-ed >> applet and just call jnlp fiels upon him (same as I'm suggesting for >> your current javaws tests-set) > > Hmm am I misunderstanding this? I think you're asking for what TitleVendorParser does, would you like something on top of this? Just to clarify, TitleVendorParser is for javaws right now, not for the plugin (as the misleading subject says!) When applet is launched from jnlp the same parser is used, so your changes will have effect here. Can yo just add one or two tests to verify that when applet is launched by javaws teh information element have it correct impact? (you will be launching jnlp with applet-desc inside) The plugin is not affected (as I was confused by title) so no html tests are needed. > >> Soon there will be intorudcued in-browser applet testing, do you think >> to remind me to add html tests for this case later? (Or you can do this, >> if you will want to check the in-browser "engine" ;) >> > > I had it on my to-do along with the CheckServices test. ;) +1! > >> Few more comment in-line: > > [snip] > >>> >>> + if (info.getTitle() == null || info.getTitle().equals("")) >>> + throw new ParseException(R("PNoTitleElement")); >>> + if (info.getVendor() == null || info.getVendor().equals("")) >>> + throw new ParseException(R("PNoVendorElement")); >>> + >>> return info; >>> } >>> >> I would suggest "".equals(info.get*().trim()) instead of >> info.get*().equals("") >> Usage of trim i straight forward and I think it is necessary. >> The "".equals instead of string.equals("") really just minor nitpick :) >> "".equals(null) returns false instead of NUllPointerException. I do not >> believe trim() will ever return null, but it is good habit (IMHO O:) ) >> If no need for trim will be here, then just "".equals(info.get*()) will >> be enough instead of both conditions. >> > > Commenting on this in the other responses from yourself and Pavel. looking forward it:) But for future of this patch I believe trim() is necessary (as parsers trims as they wishes...). > > [snip] > >>> a/tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp >>> >>> +++ >>> b/tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp >>> >>> @@ -4,6 +4,7 @@ >>> href="SetContextClassLoader.jnlp"> >>> <information> >>> <title>set context classloader >>> +Red Hat >>> >>> >>> >> >> Yap, tahnx for this. I think you can push them asap - independently on >> rest of the fix. >> > > Okay, I'll do that now. > > [snip..again] > >> >> Now you will hate me : >> I think it is worthy to add also one testy with both missing, and few >> tests which will try to paly with count and order of mandatory and >> obligatory elements. >> Also I woud asuggest to introduce >> String s1 = "Sould not be reached but JNLP was parsed fine."; >> Assert.assertFalse("testForVendor stdout should not contain " + s1 + " >> but did.", pr.stdout.contains(s1)); >> String s2 = "net.sourceforge.jnlp.ParseException: The vendor section has >> not been defined in the JNLP file."; >> Assert.assertTrue("testForVendor stderr should contain " + s2 + " but >> did not.", pr.stderr.contains(s2)); >> Assert.assertFalse(pr.wasTerminated); >> Assert.assertEquals((Integer)0, pr.returnValue); >> >> as separate method (especialy if more tests will be added) >> > > Ah smart thinking! > >> >> Do I understand correctly that when information element is missing, then >> jnlp is processed correctly? > > No, information is also required from the spec[1]. > >> For both yes and no - can you add test for it? > > Sure. > >> If yes - what does getInformationDesc() returns?? null?? I believe jnlp >> should not be processed :-/ > > Yes, it should not be processed. Currently, javaws throws an exception when is missing. I believe that's where I got the idea for this from. =) excellent (also all above;) ) ! > >> Also I think you do not need to add new jar with new srcs class >> (TitleVendorParser) (==just remove thsi file and no jar will be >> created), but you can yuse eg simpletest1) and just use your new jnlps >> to call this old jar. But this is really up to you, if you want to have >> by-your-test-controlled jar, then as you wish. (Me, personally, should >> probably stay with my own jar ;) > > Good idea, I can probably do without making new ones. If it gives me too much trouble, I might be lazy and just use my own. =) > >> I got used to check for ClassNotFound exception, which is here for >> reason that netx.jar is broken, javaws is broken or the whole test is >> compeltly broken. But when you are checking for stdout of your jar, then >> it is not necessary, it just helps to see imidietly that soemting more >> bad then just test failure have occured. Do you think it is worthy to >> add? By other words - Should I get rid of this "habit" ? > > Hmm so it's basically a sanity check? I'm not sure TBH, on the one hand it is easier to identify issues outside of the test's scope. However, on the other hand, it's a redundant test that should be passing all the time once you have the test working properly. Does it have any use after the test runs properly? If it doesn't, I don't see the point in keeping it. As I wrote, it is catching issues isnide netx.jar itself... Feel free to live with/without it as you wish. I will do some more investigations about this. > >>> diff --git >>> a/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >>> b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >>> --- a/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >>> +++ b/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp >>> @@ -1,5 +1,9 @@ >>> >>> >>> + >>> +Sample Test >>> +RedHat >>> + >>> >>> >>> >> Thsi one should be pushed with rest of in-tests vendor/title fixes >> >> >> TYVM! >> > > My pleasure! I'll push these minor fixes now. Thanks for the feedback! > > Cheers, > Danesh > > [1] http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html From ddadacha at redhat.com Mon Mar 12 09:21:49 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 12 Mar 2012 12:21:49 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5DDD64.5030005@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> Message-ID: <4F5E229D.4010607@redhat.com> On 12/03/12 07:26 AM, Jiri Vanek wrote: > On 03/12/2012 12:22 PM, Pavel Tisnovsky wrote: >> Jiri Vanek wrote: >>> On 03/12/2012 11:50 AM, Pavel Tisnovsky wrote: >>>> Jiri Vanek wrote: >>>>> On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: >>>>>> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >>>>>>> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>>>>>>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>>>>>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>>>>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> Looking at the plugin docs[1], and<vendor> are required >>> snip >>>>>> >>>>>> diff --git a/netx/net/sourceforge/jnlp/Parser.java >>>>>> b/netx/net/sourceforge/jnlp/Parser.java >>>>>> --- a/netx/net/sourceforge/jnlp/Parser.java >>>>>> +++ b/netx/net/sourceforge/jnlp/Parser.java >>>>>> @@ -504,6 +504,11 @@ class Parser { >>>>>> child = child.getNextSibling(); >>>>>> } >>>>>> >>>>>> + if (info.getTitle() == null || info.getTitle().equals("")) >>>>>> + throw new ParseException(R("PNoTitleElement")); >>>>>> + if (info.getVendor() == null || info.getVendor().equals("")) >>>>>> + throw new ParseException(R("PNoVendorElement")); >>>>>> + >>>>>> return info; >>>>>> } >>>>>> >>>>> I would suggest "".equals(info.get*().trim()) instead of >>>>> info.get*().equals("") >>>>> Usage of trim i straight forward and I think it is necessary. >>>>> The "".equals instead of string.equals("") really just minor nitpick >>>>> :) "".equals(null) returns false instead of NUllPointerException. I do >>>>> not believe trim() will ever return null, but it is good habit (IMHO >>>>> O:) ) >>>>> If no need for trim will be here, then just "".equals(info.get*()) >>>>> will >>>>> be enough instead of both conditions. I would still need 2 conditions because I want the if to pass when info.get*() is null. That check is not to look out for a NPE, it's the opposite. If it's null, the tags aren't there! So I'd still need both. Also, I remember thinking about this case before posting the patch. It already trims it before saving vendor into the info var. =) However I think you're right, it should still be there in case somewhere down the line, the trim before saving is removed. >>>> >>>> String.trim() does not return null so you don't need to worry >>> Yy - as I have already said ;) but STILL it is good habit O:) >>>> >>>> Then you could use predicate isEmpty() which is IMHO more readable >>>> than equals("") (since 1.6) >>> isEmpty do not trim :((( => info.get*() == null || >>> info.get*().trim().isEmpty() ... :D (if we can live with method which >>> appeared in 1.6) >> Yeah I mean info.get*().trim().isEmpty() >> (btw I think we could end with this basic stuff ;-) >>> >>> But this leads me to question - which javaSE version is icedtea-web >>> comaptible with and which _should_ be compatible with? >> >> I assume it should be compatible with 1.6 and 1.7 > Yap, I guess the same... Poor mainframes with ibm 1.4.2 are out of luck > again ;) >> (and I'm pretty sure that >> the code already contains some 1.6-related code ;-) which could be easy > Although i do not KNOW about it I BELIEVE to it too !-) ..and I think > there is no need to keep older javas supported anyway... >> to check using --source and --target) > Ah Yah! I think it's safe to use this here. I will definitely use isEmpty() then! Updated patch coming shortly. Thanks again for all the comments! Cheers, Danesh From jvanek at redhat.com Mon Mar 12 09:36:42 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 12 Mar 2012 17:36:42 +0100 Subject: [RFC][icedtea-web] Test for regression of ServiceManager not setup correctly In-Reply-To: <4F43EB54.4070000@redhat.com> References: <4F3ED5DB.6000006@redhat.com> <4F3EDDE3.4020705@redhat.com> <4F43EB54.4070000@redhat.com> Message-ID: <4F5E261A.3030003@redhat.com> On 02/21/2012 08:07 PM, Danesh Dadachanji wrote: > On 17/02/12 06:08 PM, Omair Majid wrote: >> On 02/17/2012 05:34 PM, Danesh Dadachanji wrote: >>> Hi, >>> >>> Here's a test that checks whether or not ServiceManager is setup >>> correctly by the time an applet constructor is called. The constructor >>> uses BasicService and will throw a NPE if it is not setup. >>> >> >> Would it be possible to extend this test to check that services are >> available in init(), start(), stop() and destroy() as well? > > This is definitely a good idea, I've added checking in init/start but I don't see a way of reaching stop/destroy without the awt robot actually closing the applet window. I looked into sending a WINDOW_CLOSING event somehow but don't have access to the window object. When that event is heard, AppletInstance#destroy() is called (eventually) but the application instance is something we don't have access to from within the applet itself. I have left the methods and respective test cases commented out with FIXMEs, if you'd rather me remove them then let me know. > awt robot is getting longer and longer run :( But in-browser tests are lttle bit closer. This will needs to be checked in browser later too. > That's the main reason the killer thread is there though, if (hopefully once) we have a way of closing the applet, all the killer threads being used just to destroy the applet should be removed. > > > >> There also seem to be some spacing/indentation issues in the patch. > > Ah I thought I cleaned this up before sending, fixed in this patch. > >>> The test is for checking regression against this changeset: >>> http://icedtea.classpath.org/hg/icedtea-web/rev/221174bcd4ec >>> >>> Thank you very much to Jiri for helping me get this through the door! >>> >>> +2012-02-17 Danesh Dadachanji<ddadacha at redhat.com> >>> + >>> + Adding test for regression of JNLP API accessibility in constructor >>> + methods of applets. >>> + * Makefile.am: Added classes.jar to classpath when compiling >>> jnlp_tests. >>> + * tests/jnlp_tests/simple/CheckServices/: Tests ServiceManager is >>> setup >>> + correctly when called from applet constructors. >> >> Please list all the files added or changed. >> > > Done below, apologies for being lazy. =) > > +2012-02-21 Danesh Dadachanji <ddadacha at redhat.com> > + > + Adding test for regression of JNLP API accessibility in constructor > + methods of applets. > + * Makefile.am: Added classes.jar to classpath when compiling jnlp_tests. > + * tests/jnlp_tests/simple/CheckServices/resources/CheckServices.jnlp: > + New test file added. Tests ServiceManager is setup correctly when called > + from applet constructors. > + * tests/jnlp_tests/simple/CheckServices/srcs/CheckServices.java: Same. > + * tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: > + Same as above. > + > >> In general, am not sure how good these applet tests might be. We know >> that applets run under javaws use different code paths from applets run >> under a browser. Still it's better to have a few tests than none. > As mentioned above in-html tests will be necessary to be added when browser-testing will be pushed. There are spaces instead of tabs in changelog. After fixing it, looks OK. TYVM and feel free to add this to growing family of tests;) J. > Responding to this in the reply to Jiri's email. > > Thanks for the review! > > Cheers, > Danesh From ddadacha at redhat.com Mon Mar 12 10:02:39 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 12 Mar 2012 13:02:39 -0400 Subject: [RFC][icedtea-web] Fix for single instance service with applets using jnlp_href In-Reply-To: <4F5DD2F8.8000904@redhat.com> References: <4F2849F3.2030003@redhat.com> <4F5DD2F8.8000904@redhat.com> Message-ID: <4F5E2C2F.7090603@redhat.com> On 12/03/12 06:42 AM, Jiri Vanek wrote: > On 01/31/2012 09:07 PM, Danesh Dadachanji wrote: >> Hi, >> > I must confess I can not guess motivation for this and not even find > 100% what is it doing and why. > Can you please write little bit (..much...;) ) more about background of > this patch? > > My current thoughts - when two completely same appelts are on the page, > they are not lunched - correct? Why this restriction? > Yeah, it was a confusing service to wrap my head around. :S Right now, SingleInstanceService is available to use from applets/applications run by javaws. I am trying to port this over to the plugin so that when jnlp_href is used, applets have access to it. The point of the service itself is to only let one instance of an applet run at a time. There's a catch to running another instance of the applet though. While the first one is running, it is setup with a listener for later instances to use. The idea is that the second instance can communicate with the running instance, passing along some args to be handled by the listener, and then exit. When you run another instance of the applet, icedtea-web is supposed to recognize this as the second instance and pass on a list of arguments provided by the dev. See the API for SingleInstanceListener[1] for the methods. I think the following signleapp example[2] might help you too. Here's an example run path: 1. Start single instance app. The dev has set it up to handle params accordingly, say to spit it out on the screen to log. 2. IcedTea-Web sets up a single instance server to keep track of the instance running. 3. The second app is run, args are passed in by the dev again. Let's say they are the current date/time. 4. IcedTea-Web notices the second app is a second instance of the first one and checks that the first one's server is still running, then denies init of the second applet. The second instance's args are taken and passed along to the first instance's newActivation(String[] args) method. 5. Dev's newActivation method reacts accordingly. I hope the example[2] helps clear up any doubts I have not covered but please ask if it doesn't! >> Attached is a patch to fix SingleInstanceService to work when applets >> use jnlp_href. >> >> If a single instance exists, it'll throw a fatal exception for the >> second applet and stop running it. The applet passes the args along >> while checking. However, proprietary documentation is unclear about >> which args are passed so for now I have left it as a FIXME until >> that's cleared up. > I believe applets parameters inside tag/jnlp descriptor are correct way. These args I was referring to are from the second instance being run so we're talking about different things here. =) Please see above. >> >> ChangeLog: >> +2012-01-31 Danesh Dadachanji <ddadacha at redhat.com> >> + >> + Fixed SingleInstanceService to work with jnlp_href. >> + * netx/net/sourceforge/jnlp/Launcher.java >> + (launchApplication): Print existing single instance in debug mode. >> + (launchApplet): Added check for single instance, throws launchError if >> + single instance already exists. >> + (getApplet): Same as above. >> + (launchInstaller): Added TODO reminder for when it is implemented. >> + * netx/net/sourceforge/jnlp/resources/Messages.properties: >> + Added LSingleInstanceExists. >> + * netx/net/sourceforge/jnlp/services/XSingleInstanceService.java >> + (initializeSingleInstance): Modified to always initialize if the >> applet is >> + being run by the plugin. >> + (checkSingleInstanceRunning): Modified args passed to >> SingleInstanceListener. >> + Marked applets' args as FIXME, for now it passes an empty args array. >> + >> >> Okay for HEAD? >> >> Cheers, >> Danesh >> >> >> single-instance-service-01.patch >> >> >> diff --git a/netx/net/sourceforge/jnlp/Launcher.java >> b/netx/net/sourceforge/jnlp/Launcher.java >> --- a/netx/net/sourceforge/jnlp/Launcher.java >> +++ b/netx/net/sourceforge/jnlp/Launcher.java >> @@ -536,6 +536,9 @@ public class Launcher { >> try { >> ServiceUtil.checkExistingSingleInstance(file); >> } catch (InstanceExistsException e) { >> + if (JNLPRuntime.isDebug()) { >> + System.out.println("Single instance application is already running."); > > * > >> + } >> return null; >> } >> >> @@ -653,11 +656,17 @@ public class Launcher { >> throw launchError(new LaunchException(file, null, R("LSFatal"), >> R("LCClient"), R("LNotApplet"), R("LNotAppletInfo"))); >> >> try { >> + ServiceUtil.checkExistingSingleInstance(file); >> AppletInstance applet = createApplet(file, enableCodeBase, cont); >> applet.initialize(); >> >> applet.getAppletEnvironment().startApplet(); // this should be a >> direct call to applet instance >> return applet; >> + } catch (InstanceExistsException ieex) { >> + if (JNLPRuntime.isDebug()) { >> + System.out.println("Single instance applet is already running."); > > * > >> + } >> + throw launchError(new LaunchException(file, ieex, R("LSFatal"), >> R("LCLaunching"), R("LCouldNotLaunch"), R("LSingleInstanceExists"))); >> } catch (LaunchException lex) { >> throw launchError(lex); >> } catch (Exception ex) { >> @@ -673,9 +682,17 @@ public class Launcher { >> throw launchError(new LaunchException(file, null, R("LSFatal"), >> R("LCClient"), R("LNotApplet"), R("LNotAppletInfo"))); >> >> try { >> + ServiceUtil.checkExistingSingleInstance(file); >> + >> AppletInstance applet = createApplet(file, enableCodeBase, cont); >> applet.initialize(); >> return applet; >> + >> + } catch (InstanceExistsException ieex) { >> + if (JNLPRuntime.isDebug()) { >> + System.out.println("Single instance applet is already running."); > > * Why not also stacktraces? > The thing is this service uses exceptions as a means of telling icedtea-web that it shouldn't run the second applet. It's not really an exception that something went wrong, it's more of a means to check that there is a current single instance running. I figured that while debugging, it would be useful to have though. Also, the other thread throws the exception IIRC later on so it would really just be the same one being printed twice. Please ask more questions if I was unclear! [1] http://docs.oracle.com/javase/7/docs/jre/api/javaws/jnlp/javax/jnlp/SingleInstanceListener.html [2] http://pscode.org/jws/api.html From dbhole at redhat.com Mon Mar 12 11:03:57 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 12 Mar 2012 14:03:57 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <4F5AA97D.9080301@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> Message-ID: <20120312180357.GE2401@redhat.com> * Omair Majid <omajid at redhat.com> [2012-03-09 20:08]: > On 03/09/2012 05:19 PM, Deepak Bhole wrote: > > Hi, > > > > Attached patch fixes PR895: > > "IcedTea-Web searches for missing classes on each loadClass or findClass" > > > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 > > The bug doesn't seem to have any additional information. Is there a test > case or a reproducer? Do you know why the server is being hammered? If > the actual issue is under our control (for example, we are attempting to > re-download stuff we already downloaded), it might be better to fix this > underlying issue. > Yes, this one: http://jdk6.java.net/nonav/plugin2/liveconnect/LiveConnectTests/ Without the patch it takes 2+ minutes to run.. with patch, it is down to about 15 seconds. > > ChangeLog: > > 2012-03-09 Deepak Bhole <dbhole at redhat.com> > > > > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Added new > > notFoundClasses list. > > (loadClass): Record if a class is not found and on next call for that > > class, return immediately. > > (findClass): Same. > > > > Can you please include a test case for icedtea-web? I think it would be > nice if we could tell if/when this issue reappears later. I would be > fine with either unit tests or jnlp tests. > I am not sure if I can. It is really only an issue with the CodeBaseClassLoader, since looking into local jars multiple times has comparatively trivial cost. CBCL is only used with the plug-in and not webstart and I don't think the plugin test framework is fully in place yet. Jiri? > Some other thoughts: > > Won't this patch break applications that use the following pattern? > (Assume the application has enough permissions to download the jar) > - Try and load a class > - If that fails, download a new jar > - Add new jar to classpath > - Try to load the class again. > > I am not sure how many applications do this; perhaps it's a non-issue. > > The pattern of adding a new line before every return looks scary. I am > quite sure the next person to touch this method and add a new return > will miss adding the code to update notFoundClasses. How about something > like this instead: > > - rename findClass to findClassNoCacheCheck (or a better name ;) ) > - add a new method findClass(): > > protected Class findClass(String name) throws ClassNotFoundException { > if (notFoundClasses.contains(name)) { > throw new ClassNotFoundException; > } > > try { > Class klass = findClassNoCacheCheck(name); > return klass; > } catch (ClassNotFoundException cnfe) { > notFoundClasses.add(name); > throw cnfe; > } > } > While writing the above, I realized that it is really just CBCL that we want to fix. What about moving the logic just into CBCL? See attached patch. In most cases, notFoundResources.get() will return null so I don't think that the Array comparisons will add a significant delay. Thanks, Deepak From dbhole at redhat.com Mon Mar 12 11:20:23 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 12 Mar 2012 14:20:23 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <20120312180357.GE2401@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> Message-ID: <20120312182022.GF2401@redhat.com> * Deepak Bhole <dbhole at redhat.com> [2012-03-12 14:13]: > * Omair Majid <omajid at redhat.com> [2012-03-09 20:08]: > > On 03/09/2012 05:19 PM, Deepak Bhole wrote: > > > Hi, > > > > > > Attached patch fixes PR895: > > > "IcedTea-Web searches for missing classes on each loadClass or findClass" > > > > > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 > > > > The bug doesn't seem to have any additional information. Is there a test > > case or a reproducer? Do you know why the server is being hammered? If > > the actual issue is under our control (for example, we are attempting to > > re-download stuff we already downloaded), it might be better to fix this > > underlying issue. > > > > Yes, this one: > http://jdk6.java.net/nonav/plugin2/liveconnect/LiveConnectTests/ > > Without the patch it takes 2+ minutes to run.. with patch, it is down to > about 15 seconds. > > > > ChangeLog: > > > 2012-03-09 Deepak Bhole <dbhole at redhat.com> > > > > > > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Added new > > > notFoundClasses list. > > > (loadClass): Record if a class is not found and on next call for that > > > class, return immediately. > > > (findClass): Same. > > > > > > > Can you please include a test case for icedtea-web? I think it would be > > nice if we could tell if/when this issue reappears later. I would be > > fine with either unit tests or jnlp tests. > > > > I am not sure if I can. It is really only an issue with the > CodeBaseClassLoader, since looking into local jars multiple times has > comparatively trivial cost. CBCL is only used with the plug-in and not > webstart and I don't think the plugin test framework is fully in place > yet. Jiri? > > > Some other thoughts: > > > > Won't this patch break applications that use the following pattern? > > (Assume the application has enough permissions to download the jar) > > - Try and load a class > > - If that fails, download a new jar > > - Add new jar to classpath > > - Try to load the class again. > > > > I am not sure how many applications do this; perhaps it's a non-issue. > > > > The pattern of adding a new line before every return looks scary. I am > > quite sure the next person to touch this method and add a new return > > will miss adding the code to update notFoundClasses. How about something > > like this instead: > > > > - rename findClass to findClassNoCacheCheck (or a better name ;) ) > > - add a new method findClass(): > > > > protected Class findClass(String name) throws ClassNotFoundException { > > if (notFoundClasses.contains(name)) { > > throw new ClassNotFoundException; > > } > > > > try { > > Class klass = findClassNoCacheCheck(name); > > return klass; > > } catch (ClassNotFoundException cnfe) { > > notFoundClasses.add(name); > > throw cnfe; > > } > > } > > > > While writing the above, I realized that it is really just CBCL that we > want to fix. What about moving the logic just into CBCL? See attached > patch. > annndddd... here is the patch Deepak > In most cases, notFoundResources.get() will return null so I don't think > that the Array comparisons will add a significant delay. > > Thanks, > Deepak -------------- next part -------------- diff -r d2aff3800f4f netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Mar 08 15:54:39 2012 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Mar 12 14:01:52 2012 -0400 @@ -37,6 +37,7 @@ import java.security.PrivilegedAction; import java.security.PrivilegedExceptionAction; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; @@ -47,9 +48,11 @@ import java.util.Set; import java.util.TreeSet; import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.Manifest; + import net.sourceforge.jnlp.AppletDesc; import net.sourceforge.jnlp.ApplicationDesc; import net.sourceforge.jnlp.DownloadOptions; @@ -1874,6 +1877,11 @@ JNLPClassLoader parentJNLPClassLoader; + /** + * Classes that are not found, so that findClass can skip them next time + */ + ConcurrentHashMap<String, URL[]> notFoundResources = new ConcurrentHashMap<String, URL[]>(); + public CodeBaseClassLoader(URL[] urls, JNLPClassLoader cl) { super(urls); parentJNLPClassLoader = cl; @@ -1885,8 +1893,18 @@ } @Override - public Class<?> findClass(String name) throws ClassNotFoundException { - return super.findClass(name); + public Class<?> findClass(String name) throws ClassNotFoundException { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + throw new ClassNotFoundException(name); + + try { + return super.findClass(name); + } catch (ClassNotFoundException cnfe) { + notFoundResources.put(name, super.getURLs()); + throw cnfe; + } } /** @@ -1913,17 +1931,41 @@ @Override public Enumeration<URL> findResources(String name) throws IOException { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + return (new Vector<URL>(0)).elements(); + if (!name.startsWith("META-INF")) { - return super.findResources(name); + Enumeration<URL> urls = super.findResources(name); + + if (!urls.hasMoreElements()) { + notFoundResources.put(name, super.getURLs()); + } + + return urls; } + return (new Vector<URL>(0)).elements(); } @Override public URL findResource(String name) { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + return null; + if (!name.startsWith("META-INF")) { - return super.findResource(name); + URL url = super.findResource(name); + + if (url == null) { + notFoundResources.put(name, super.getURLs()); + } + + return url; } + return null; } } From omajid at redhat.com Mon Mar 12 11:31:58 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 12 Mar 2012 14:31:58 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <20120312182022.GF2401@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> Message-ID: <4F5E411E.6070505@redhat.com> On 03/12/2012 02:20 PM, Deepak Bhole wrote: > * Deepak Bhole <dbhole at redhat.com> [2012-03-12 14:13]: >> * Omair Majid <omajid at redhat.com> [2012-03-09 20:08]: >>> On 03/09/2012 05:19 PM, Deepak Bhole wrote: >>>> Hi, >>>> >>>> Attached patch fixes PR895: >>>> "IcedTea-Web searches for missing classes on each loadClass or findClass" >>>> >>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 >>> >>> The bug doesn't seem to have any additional information. Is there a test >>> case or a reproducer? Do you know why the server is being hammered? If >>> the actual issue is under our control (for example, we are attempting to >>> re-download stuff we already downloaded), it might be better to fix this >>> underlying issue. >>> >> >> Yes, this one: >> http://jdk6.java.net/nonav/plugin2/liveconnect/LiveConnectTests/ >> Please do add this to http://icedtea.classpath.org/wiki/IcedTea-Web-Tests as well. >> Without the patch it takes 2+ minutes to run.. with patch, it is down to >> about 15 seconds. >> Do you know what this test is doing? While the patch looks fine, I would hate for us to paper over the problem rather than fixing it. >> >> While writing the above, I realized that it is really just CBCL that we >> want to fix. What about moving the logic just into CBCL? See attached >> patch. >> > > annndddd... here is the patch > Just one request: can you please add a unit test for this classloader so we can verify that this behaviour does not regress later? Thanks, Omair From ddadacha at icedtea.classpath.org Mon Mar 12 12:11:03 2012 From: ddadacha at icedtea.classpath.org (ddadacha at icedtea.classpath.org) Date: Mon, 12 Mar 2012 19:11:03 +0000 Subject: /hg/icedtea-web: Update JNLPs of tests to include required infor... Message-ID: <hg.c2a4e01e84d8.1331579463.8643924302249223276@icedtea.classpath.org> changeset c2a4e01e84d8 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=c2a4e01e84d8 author: Danesh Dadachanji <ddadacha at redhat.com> date: Mon Mar 12 15:10:36 2012 -0400 Update JNLPs of tests to include required information/title/vendor tags. diffstat: ChangeLog | 26 ++++++++++ tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp | 1 + tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp | 1 + tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp | 1 + tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp | 3 +- tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp | 1 + tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp | 1 + tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp | 1 + tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp | 1 + tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp | 1 + tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp | 1 + tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp | 1 + tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp | 1 + tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp | 1 + tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp | 1 + tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp | 1 + tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp | 1 + tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp | 1 + tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp | 1 + tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp | 1 + tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp | 1 + tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp | 4 + 22 files changed, 51 insertions(+), 1 deletions(-) diffs (268 lines): diff -r d2aff3800f4f -r c2a4e01e84d8 ChangeLog --- a/ChangeLog Thu Mar 08 15:54:39 2012 +0100 +++ b/ChangeLog Mon Mar 12 15:10:36 2012 -0400 @@ -1,3 +1,29 @@ +2012-03-12 Danesh Dadachanji <ddadacha at redhat.com> + + Update tests that are missing title/vendor tag in their JNLPs. + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp, + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp, + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp, + * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp, + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp, + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp, + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp, + * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp, + * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp, + * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp, + * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp, + * tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp, + * tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp + * tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp, + * tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp, + * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp, + * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp, + * tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp, + * tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp, + * tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp, + * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: + Added missing title/vendor tags that make them fail with this changeset. + 2012-03-05 Jiri Vanek <jvanek at redhat.com> Added test for main-class in manifest for jnlp diff -r d2aff3800f4f -r c2a4e01e84d8 tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp --- a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp Thu Mar 08 15:54:39 2012 +0100 +++ b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp Mon Mar 12 15:10:36 2012 -0400 @@ -4,6 +4,7 @@ href="CacheReproducer1.jnlp"> <information> <title>Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar + Red Hat diff -r d2aff3800f4f -r c2a4e01e84d8 tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp --- a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp Thu Mar 08 15:54:39 2012 +0100 +++ b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp Mon Mar 12 15:10:36 2012 -0400 @@ -4,6 +4,7 @@ href="CacheReproducer1_1.jnlp"> Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar + Red Hat diff -r d2aff3800f4f -r c2a4e01e84d8 tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp --- a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp Thu Mar 08 15:54:39 2012 +0100 +++ b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp Mon Mar 12 15:10:36 2012 -0400 @@ -4,6 +4,7 @@ href="CacheReproducer2.jnlp"> Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar + Red Hat diff -r d2aff3800f4f -r c2a4e01e84d8 tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp --- a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp Thu Mar 08 15:54:39 2012 +0100 +++ b/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp Mon Mar 12 15:10:36 2012 -0400 @@ -3,7 +3,8 @@ codebase="./" href="CacheReproducer2_1.jnlp"> - <title>Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar + Just prints out "Good simple javaws exapmle" using reflection call from CacheReproducer.jar SimpletestSigned1.jar + Red Hat diff -r d2aff3800f4f -r c2a4e01e84d8 tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp --- a/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp Thu Mar 08 15:54:39 2012 +0100 +++ b/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp Mon Mar 12 15:10:36 2012 -0400 @@ -4,6 +4,7 @@ href="MissingJar.jnlp"> test MissingJar + Red Hat + + + + CheckServices + IcedTea + + CheckServices + + + + + + + + diff -r c2a4e01e84d8 -r 0de1a0ec2ddc tests/jnlp_tests/simple/CheckServices/srcs/CheckServices.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/CheckServices/srcs/CheckServices.java Mon Mar 12 16:36:12 2012 -0400 @@ -0,0 +1,109 @@ +/* CheckServices.java +Copyright (C) 2012 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. + */ + +import javax.jnlp.ServiceManager; +import javax.jnlp.BasicService; +import java.applet.Applet; + +public class CheckServices extends Applet { + + public CheckServices() { + System.out.println("Applet constructor reached."); + checkSetup("constructor"); + } + + public void checkSetup(String method) { + try { + BasicService basicService = + (BasicService)ServiceManager.lookup("javax.jnlp.BasicService"); + // getCodeBase() will return null if ServiceManager does not + // have access to ApplicationInstance. + String codebase = basicService.getCodeBase().toString(); + System.out.println("Codebase for applet was found in " + method + + ": " + codebase); + } catch (NullPointerException npe) { + System.err.println("Exception occurred with null codebase in " + method); + npe.printStackTrace(); + } catch (Exception ex) { + System.err.println("Exception occurred (probably with ServiceManager)."); + ex.printStackTrace(); + } + } + + @Override + public void init() { + System.out.println("Applet is initializing."); + checkSetup("init()"); + } + + @Override + public void start() { + System.out.println("Applet is starting."); + checkSetup("start()"); + // FIXME: Instead of killing the thread, use the AWT robot to close + // the applet window, signaling the event that runs stop/destroy. + System.out.println("Killer thread is starting."); + Thread killer = new Thread() { + public int n = 2000; + + @Override + public void run() { + try { + Thread.sleep(n); + System.out.println("Applet killing itself after " + n + " ms of life"); + System.exit(0); + } catch (Exception ex) { + } + } + }; + killer.start(); + } + + /* FIXME: Check ServiceManagaer is setup once stop/destroy can be called. + @Override + public void stop() { + System.out.println("Applet is stopping."); + checkSetup("stop()"); + } + + @Override + public void destroy() { + System.out.println("Applet is destorying itself."); + checkSetup("destroy()"); + } + */ +} diff -r c2a4e01e84d8 -r 0de1a0ec2ddc tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java Mon Mar 12 16:36:12 2012 -0400 @@ -0,0 +1,71 @@ +/* CheckServicesTests.java +Copyright (C) 2012 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. + */ + +import net.sourceforge.jnlp.ServerAccess; +import org.junit.Assert; +import org.junit.Test; + +public class CheckServicesTests { + + private static ServerAccess server = new ServerAccess(); + @Test + public void CheckServices() throws Exception { + System.out.println("connecting CheckServices request"); + System.err.println("connecting CheckServices request"); + ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/CheckServices.jnlp"); + System.out.println(pr.stdout); + System.err.println(pr.stderr); + String s0 = "Codebase for applet was found in constructor"; + Assert.assertTrue("CheckServices stdout should contain `" + s0 + "' bud didn't.", pr.stdout.contains(s0)); + String s1 = "Codebase for applet was found in init()"; + Assert.assertTrue("CheckServices stdout should contain `" + s1 + "' bud didn't.", pr.stdout.contains(s1)); + String s2 = "Codebase for applet was found in start()"; + Assert.assertTrue("CheckServices stdout should contain `" + s2 + "' bud didn't.", pr.stdout.contains(s2)); + /* FIXME: Once the awt robot can close the applet window (i.e. send + * a stop event), stdout should be checked for these asserts. + String s3 = "Codebase for applet was found in stop()"; + Assert.assertTrue("CheckServices stdout should contain `" + s3 + "' bud didn't.", pr.stdout.contains(s3)); + String s4 = "Codebase for applet was found in destroy()"; + Assert.assertTrue("CheckServices stdout should contain `" + s4 + "' bud didn't.", pr.stdout.contains(s4)); + */ + String s5 = "Exception occurred with null codebase in"; + Assert.assertFalse("CheckServices stderr should not contain `" + s5 + "' bud did.", pr.stdout.contains(s5)); + String s6 = "Applet killing itself after 2000 ms of life"; + Assert.assertTrue("CheckServices stdout should contain `" + s6 + "' bud didn't.", pr.stdout.contains(s6)); + Assert.assertEquals((Integer)0, pr.returnValue); + } +} From ddadacha at redhat.com Mon Mar 12 13:40:31 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 12 Mar 2012 16:40:31 -0400 Subject: [RFC][icedtea-web] Test for regression of ServiceManager not setup correctly In-Reply-To: <4F5E261A.3030003@redhat.com> References: <4F3ED5DB.6000006@redhat.com> <4F3EDDE3.4020705@redhat.com> <4F43EB54.4070000@redhat.com> <4F5E261A.3030003@redhat.com> Message-ID: <4F5E5F3F.4010302@redhat.com> On 12/03/12 12:36 PM, Jiri Vanek wrote: > On 02/21/2012 08:07 PM, Danesh Dadachanji wrote: >> On 17/02/12 06:08 PM, Omair Majid wrote: >>> On 02/17/2012 05:34 PM, Danesh Dadachanji wrote: >>>> Hi, >>>> >>>> Here's a test that checks whether or not ServiceManager is setup >>>> correctly by the time an applet constructor is called. The constructor >>>> uses BasicService and will throw a NPE if it is not setup. >>>> >>> >>> Would it be possible to extend this test to check that services are >>> available in init(), start(), stop() and destroy() as well? >> >> This is definitely a good idea, I've added checking in init/start but >> I don't see a way of reaching stop/destroy without the awt robot >> actually closing the applet window. I looked into sending a >> WINDOW_CLOSING event somehow but don't have access to the window >> object. When that event is heard, AppletInstance#destroy() is called >> (eventually) but the application instance is something we don't have >> access to from within the applet itself. I have left the methods and >> respective test cases commented out with FIXMEs, if you'd rather me >> remove them then let me know. >> > awt robot is getting longer and longer run :( > But in-browser tests are lttle bit closer. This will needs to be checked > in browser later too. >> That's the main reason the killer thread is there though, if >> (hopefully once) we have a way of closing the applet, all the killer >> threads being used just to destroy the applet should be removed. >> >> > >>> There also seem to be some spacing/indentation issues in the patch. >> >> Ah I thought I cleaned this up before sending, fixed in this patch. >> >>>> The test is for checking regression against this changeset: >>>> http://icedtea.classpath.org/hg/icedtea-web/rev/221174bcd4ec >>>> >>>> Thank you very much to Jiri for helping me get this through the door! >>>> >>>> +2012-02-17 Danesh Dadachanji >>>> + >>>> + Adding test for regression of JNLP API accessibility in constructor >>>> + methods of applets. >>>> + * Makefile.am: Added classes.jar to classpath when compiling >>>> jnlp_tests. >>>> + * tests/jnlp_tests/simple/CheckServices/: Tests ServiceManager is >>>> setup >>>> + correctly when called from applet constructors. >>> >>> Please list all the files added or changed. >>> >> >> Done below, apologies for being lazy. =) >> >> +2012-02-21 Danesh Dadachanji >> + >> + Adding test for regression of JNLP API accessibility in constructor >> + methods of applets. >> + * Makefile.am: Added classes.jar to classpath when compiling >> jnlp_tests. >> + * tests/jnlp_tests/simple/CheckServices/resources/CheckServices.jnlp: >> + New test file added. Tests ServiceManager is setup correctly when >> called >> + from applet constructors. >> + * tests/jnlp_tests/simple/CheckServices/srcs/CheckServices.java: Same. >> + * >> tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: >> + Same as above. >> + >> >>> In general, am not sure how good these applet tests might be. We know >>> that applets run under javaws use different code paths from applets run >>> under a browser. Still it's better to have a few tests than none. >> > As mentioned above in-html tests will be necessary to be added when > browser-testing will be pushed. > Will do. > > > There are spaces instead of tabs in changelog. After fixing it, looks > OK. TYVM and feel free to add this to growing family of tests;) > Thanks for the comments! Pushed to HEAD[1]. The regression could occur in 1.2 as well so can I push there too? Cheers, Danesh [1] http://icedtea.classpath.org/hg/icedtea-web/rev/0de1a0ec2ddc From ddadacha at redhat.com Mon Mar 12 13:50:19 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 12 Mar 2012 16:50:19 -0400 Subject: [RFC][icedtea-web] Fix NPE thrown when applets in the plugin fail. In-Reply-To: <4F4E925D.5070007@redhat.com> References: <4F4E925D.5070007@redhat.com> Message-ID: <4F5E618B.6050709@redhat.com> On 29/02/12 04:02 PM, Danesh Dadachanji wrote: > Hi, > > Any applet run by the plugin that throws an exception while loading > (before init() is called) will output an NPE. This is because we have > sent 3 events to the queue when the plugin is setup, APPLET_LOAD, > APPLET_INIT and APPLET_START. This was causing problems when > AppletInstance was not being set, and specifically when AppletInstance's > Applet var was left as null. > > AppletPanel's run thread continues to the next event, APPLET_INIT even > if in APPLET_LOAD, the applet var was not set (exception occurred in the > constructor of the applet, Launcher#createApplet() crashed etc). Then, > the applet var is set to null so when it is referenced in APPLET_INIT's > execution, the NPE is thrown. > > There is no way of removing an event from the queue in our given > situation. I tried finding a method that would do this so that I could > empty the queue if either AppletInstance or Applet vars were null but I > could not find one. The queue is also private to AppletPanel and since > we cannot modify that, the only resolution I saw was to conditionally > add the events to the queue later on down the line. > > The changes I've made in the attached patch simply remove sending the > init and start event when initializing the panel and send these signals > once NetxPanel confirms a non-null applet. NetxPanel's runLoader is only > executed in consequence to APPLET_LOAD so I believe it is safe to add > these events here. The patch also sends an APPLET_DISPOSE event if it > fails to run, which is just cleanup. > > Reproducer is somewhat in the works (depending on limitations of running > it in a browser). For your testing, just make an applet that throws > something and you should see an NPE in NetxPanel and an NPE in AppletPanel. > > ChangeLog: > +2012-02-29 Danesh Dadachanji > + > + Fix NPE thrown when applets run by the plugin fail to initialize. > + * netx/net/sourceforge/jnlp/NetxPanel.java > + (runLoader): Check for null applet instance, if it is then send a dispose > + event. If it is not, continue as before. If the applet is not null, send > + an init and start event to the AppletPanel queue. > + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > + (initEventQueue): Removed sending of APPLET_INIT and APPLET_START events. > + > > I'd like to push this to HEAD, are there any comments? > After thinking about this and discussing it some more, I think this patch isn't needed. While the NPE occurs, it does not affect any subsequently run applets and somewhat gracefully hangs when such an applet runs. The JVM as a whole isn't affected so I think it would be safer to stick with what we know works. The plugin does stall until the browser decides to kill of the JS. This takes irritatingly long so I have filed a bug[1] for it. That is a separate issue as it occurs regardless of this patch. Cheers, Danesh [1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=894 From dbhole at redhat.com Mon Mar 12 13:56:16 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 12 Mar 2012 16:56:16 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <4F5E411E.6070505@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> <4F5E411E.6070505@redhat.com> Message-ID: <20120312205616.GH2401@redhat.com> * Omair Majid [2012-03-12 14:32]: > On 03/12/2012 02:20 PM, Deepak Bhole wrote: > > * Deepak Bhole [2012-03-12 14:13]: > >> * Omair Majid [2012-03-09 20:08]: > >>> On 03/09/2012 05:19 PM, Deepak Bhole wrote: > >>>> Hi, > >>>> > >>>> Attached patch fixes PR895: > >>>> "IcedTea-Web searches for missing classes on each loadClass or findClass" > >>>> > >>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 > >>> > >>> The bug doesn't seem to have any additional information. Is there a test > >>> case or a reproducer? Do you know why the server is being hammered? If > >>> the actual issue is under our control (for example, we are attempting to > >>> re-download stuff we already downloaded), it might be better to fix this > >>> underlying issue. > >>> > >> > >> Yes, this one: > >> http://jdk6.java.net/nonav/plugin2/liveconnect/LiveConnectTests/ > >> > > Please do add this to > http://icedtea.classpath.org/wiki/IcedTea-Web-Tests as well. > Added. > >> Without the patch it takes 2+ minutes to run.. with patch, it is down to > >> about 15 seconds. > >> > > Do you know what this test is doing? While the patch looks fine, I would > hate for us to paper over the problem rather than fixing it. > They are a set of LiveConnect tests. From what I can tell, the js is constantly asking the plugin to get a property named 'java', 'lang', etc. Since one can have a class named java or lang, the plug-in searches all available paths. The tests repeatedly ask for these paths/packages. Looking at the code now, I think it should be possible to improve this to not have it do it over and over though. The class lookup is done from IcedTeaScriptableJavaPackageObject::getProperty so it shouldn't have to look up a class with the name. I cannot remember why I made it do it though and I would like to think about it before fiddling with it (in case I had a reason back then). I remember that some of the tests in the IcedTea LiveConnect suite fail with the Oracle plug-in because it has issues with direct access to classes/packages and I suspect this may have been the reason. I will think about it. > >> > >> While writing the above, I realized that it is really just CBCL that we > >> want to fix. What about moving the logic just into CBCL? See attached > >> patch. > >> > > > > annndddd... here is the patch > > > > Just one request: can you please add a unit test for this classloader so > we can verify that this behaviour does not regress later? > Sure, but how do you propose we test this behaviour with a unit test? The return of the function is intended to be identical when class is searched (and not found) for the first time, or subsequent ones.. Cheers, Deepak From ddadacha at redhat.com Mon Mar 12 14:25:42 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 12 Mar 2012 17:25:42 -0400 Subject: [RFC][icedtea-web] Fix handling absolute paths passed into jnlp_href's value. Message-ID: <4F5E69D6.9060401@redhat.com> Hi, The Knuddels test applet[1] uses an absolute path to the JNLP when using jnlp_href. Right now we assume it's a relative path and take the document base (i.e. the URL of the dir in which HTML file is located) concatenated with the value of jnlp_href for the new URL. The attached patch updates PluginBridge to handle absolute paths to the JNLP. I simply used the document base as the context to create a new URL. Based on the javadoc for this, if jnlp_href's value is not a properly formed URL, it will default to using the document base's URL as the base URL and append the relative part (value of jnlp_href) to the end of it. The URL constructor also handles relative paths so if codebase="../example.jnlp", the constructor will act accordingly and remove a dir if possible. +2012-03-09 Danesh Dadachanji + + Fix to handle absolute paths passed into jnlp_href's value. + * netx/net/sourceforge/jnlp/PluginBridge.java + (PluginBridge): Use the document base as a context for the URL + being initialized by jnlp_href's value. This will automatically handle + relative and absolute URL paths. + Any comments? Can I push this to HEAD? NOTE: [1] still won't work because it has invalid XML. However you should see that it can now find the JNLP at the correct URL as opposed to java.io.IOException: http://chat.knuddels.de/http://www.knuddels.de/applet.jnlp[...] Regards, Danesh [1] www.knuddels.de:8080/index.html?v=90aez&c=7 -------------- next part -------------- A non-text attachment was scrubbed... Name: knuddels-href-absolute-path-01.patch Type: text/x-patch Size: 925 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120312/f0f2fa26/knuddels-href-absolute-path-01.patch From omajid at redhat.com Mon Mar 12 17:55:11 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 12 Mar 2012 20:55:11 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5E0F40.1040001@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5E0F40.1040001@redhat.com> Message-ID: <4F5E9AEF.1030409@redhat.com> On 03/12/2012 10:59 AM, Danesh Dadachanji wrote: > I thought so too until I checked where printMessage() was called from. > See launchWarning in GuiLaunchHandler[1], it explicitly calls > DefaultLaunchHandler.printMessage(). I didn't look into why it was doing > that so if you think that's a bug, I can look into it further. > Assuming that we want to print the stack trace only in -verbose mode, how does the attached patch look? (I did get a little side tracked and fixed problems in printing the exceptions too). I can rework this if others still think printing the entire stack trace in -headless mode is a good idea. Thanks, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: print-messages-02.patch Type: text/x-patch Size: 19386 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120312/11869b31/print-messages-02.patch From omajid at redhat.com Mon Mar 12 18:42:05 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 12 Mar 2012 21:42:05 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <20120312205616.GH2401@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> <4F5E411E.6070505@redhat.com> <20120312205616.GH2401@redhat.com> Message-ID: <4F5EA5ED.2060707@redhat.com> On 03/12/2012 04:56 PM, Deepak Bhole wrote: > * Omair Majid [2012-03-12 14:32]: >> On 03/12/2012 02:20 PM, Deepak Bhole wrote: >>> * Deepak Bhole [2012-03-12 14:13]: >>>> * Omair Majid [2012-03-09 20:08]: >>>>> On 03/09/2012 05:19 PM, Deepak Bhole wrote: >>>>>> Hi, >>>>>> >>>>>> Attached patch fixes PR895: >>>>>> "IcedTea-Web searches for missing classes on each loadClass or findClass" >>>>>> >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 >>>>> >>>>> The bug doesn't seem to have any additional information. Is there a test >>>>> case or a reproducer? Do you know why the server is being hammered? If >>>>> the actual issue is under our control (for example, we are attempting to >>>>> re-download stuff we already downloaded), it might be better to fix this >>>>> underlying issue. >>>>> >>>> >>>> Yes, this one: >>>> http://jdk6.java.net/nonav/plugin2/liveconnect/LiveConnectTests/ >>>> >> >> Please do add this to >> http://icedtea.classpath.org/wiki/IcedTea-Web-Tests as well. >> > > Added. Thanks! >>>> Without the patch it takes 2+ minutes to run.. with patch, it is down to >>>> about 15 seconds. >>>> >> >> Do you know what this test is doing? While the patch looks fine, I would >> hate for us to paper over the problem rather than fixing it. >> > > They are a set of LiveConnect tests. From what I can tell, the js is > constantly asking the plugin to get a property named 'java', 'lang', > etc. Since one can have a class named java or lang, the plug-in searches > all available paths. The tests repeatedly ask for these paths/packages. > > Looking at the code now, I think it should be possible to improve this to > not have it do it over and over though. The class lookup is done from > IcedTeaScriptableJavaPackageObject::getProperty so it shouldn't have to > look up a class with the name. > > I cannot remember why I made it do it though and I would like to think > about it before fiddling with it (in case I had a reason back then). I > remember that some of the tests in the IcedTea LiveConnect suite fail > with the Oracle plug-in because it has issues with direct access to > classes/packages and I suspect this may have been the reason. I will > think about it. > Perhaps it might be better to wait then (at least for HEAD) ? > Sure, but how do you propose we test this behaviour with a unit test? > The return of the function is intended to be identical when class is > searched (and not found) for the first time, or subsequent ones.. See attached patch (fails without your patch; passes with it). It just tests timing; I can extend it to check functionality too. As a side note, we should really try and reduce the inter-dependencies (between the classloader, jnlpfile and downloading), but this works for now. Cheers, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: unit-test.patch Type: text/x-patch Size: 5904 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120312/a3d19c6d/unit-test.patch From jvanek at redhat.com Tue Mar 13 02:19:15 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 13 Mar 2012 10:19:15 +0100 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <4F5EA5ED.2060707@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> <4F5E411E.6070505@redhat.com> <20120312205616.GH2401@redhat.com> <4F5EA5ED.2060707@redhat.com> Message-ID: <4F5F1113.90508@redhat.com> On 03/13/2012 02:42 AM, Omair Majid wrote: > On 03/12/2012 04:56 PM, Deepak Bhole wrote: >> > * Omair Majid [2012-03-12 14:32]: >>> >> On 03/12/2012 02:20 PM, Deepak Bhole wrote: >>>> >>> * Deepak Bhole [2012-03-12 14:13]: >>>>> >>>> * Omair Majid [2012-03-09 20:08]: >>>>>> >>>>> On 03/09/2012 05:19 PM, Deepak Bhole wrote: >>>>>>> >>>>>> Hi, >>>>>>> >>>>>> >>>>>>> >>>>>> Attached patch fixes PR895: >>>>>>> >>>>>> "IcedTea-Web searches for missing classes on each loadClass or findClass" >>>>>>> >>>>>> >>>>>>> >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 >>>>>> >>>>> >>>>>> >>>>> The bug doesn't seem to have any additional information. Is there a test >>>>>> >>>>> case or a reproducer? Do you know why the server is being hammered? If >>>>>> >>>>> the actual issue is under our control (for example, we are attempting to >>>>>> >>>>> re-download stuff we already downloaded), it might be better to fix this >>>>>> >>>>> underlying issue. >>>>>> >>>>> >>>>> >>>> >>>>> >>>> Yes, this one: >>>>> >>>> http://jdk6.java.net/nonav/plugin2/liveconnect/LiveConnectTests/ >>>>> >>>> >>> >> >>> >> Please do add this to >>> >> http://icedtea.classpath.org/wiki/IcedTea-Web-Tests as well. >>> >> >> > >> > Added. > Thanks! > >>>>> >>>> Without the patch it takes 2+ minutes to run.. with patch, it is down to >>>>> >>>> about 15 seconds. >>>>> >>>> >>> >> >>> >> Do you know what this test is doing? While the patch looks fine, I would >>> >> hate for us to paper over the problem rather than fixing it. >>> >> >> > >> > They are a set of LiveConnect tests. From what I can tell, the js is >> > constantly asking the plugin to get a property named 'java', 'lang', >> > etc. Since one can have a class named java or lang, the plug-in searches >> > all available paths. The tests repeatedly ask for these paths/packages. >> > >> > Looking at the code now, I think it should be possible to improve this to >> > not have it do it over and over though. The class lookup is done from >> > IcedTeaScriptableJavaPackageObject::getProperty so it shouldn't have to >> > look up a class with the name. >> > >> > I cannot remember why I made it do it though and I would like to think >> > about it before fiddling with it (in case I had a reason back then). I >> > remember that some of the tests in the IcedTea LiveConnect suite fail >> > with the Oracle plug-in because it has issues with direct access to >> > classes/packages and I suspect this may have been the reason. I will >> > think about it. >> > > Perhaps it might be better to wait then (at least for HEAD) ? > >> > Sure, but how do you propose we test this behaviour with a unit test? >> > The return of the function is intended to be identical when class is >> > searched (and not found) for the first time, or subsequent ones.. > See attached patch (fails without your patch; passes with it). It just > tests timing; I can extend it to check functionality too. > > As a side note, we should really try and reduce the inter-dependencies > (between the classloader, jnlpfile and downloading), but this works for now. > > Cheers, > Omair > > > unit-test.patch > > > diff --git a/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java > new file mode 100644 > --- /dev/null > +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java > @@ -0,0 +1,142 @@ > +/* CodeBaseClassLoaderTest.java > + Copyright (C) 2012 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 net.sourceforge.jnlp.runtime; > + > +import static org.junit.Assert.assertTrue; > + > +import java.io.IOException; > +import java.net.URL; > +import java.util.Locale; > + > +import net.sourceforge.jnlp.JNLPFile; > +import net.sourceforge.jnlp.LaunchException; > +import net.sourceforge.jnlp.ParseException; > +import net.sourceforge.jnlp.ResourcesDesc; > +import net.sourceforge.jnlp.SecurityDesc; > +import net.sourceforge.jnlp.runtime.JNLPClassLoader; > +import net.sourceforge.jnlp.runtime.JNLPClassLoader.CodeBaseClassLoader; > + > +import org.junit.Test; > + > +public class CodeBaseClassLoaderTest { > + > + @Test > + public void testResourceLoadSuccessCaching() throws LaunchException, ClassNotFoundException, IOException, ParseException { > + final URL JAR_URL = new URL("http://icedtea.classpath.org/netx/about.jar"); > + final URL CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); > + > + JNLPFile dummyJnlpFile = new JNLPFile() { > + @Override > + public ResourcesDesc getResources() { > + return new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); > + } > + > + @Override > + public URL getCodeBase() { > + return CODEBASE_URL; > + } > + > + @Override > + public SecurityDesc getSecurity() { > + return new SecurityDesc(null, SecurityDesc.SANDBOX_PERMISSIONS, null); > + } > + }; > + > + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); > + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent); > + > + long startTime, stopTime; > + > + startTime = System.nanoTime(); > + classLoader.findResource("net/sourceforge/jnlp/about/Main.class"); > + stopTime = System.nanoTime(); > + long timeOnFirstTry = stopTime - startTime; > + System.out.println(timeOnFirstTry); > + > + startTime = System.nanoTime(); > + classLoader.findResource("net/sourceforge/jnlp/about/Main.class"); > + stopTime = System.nanoTime(); > + long timeOnSecondTry = stopTime - startTime; > + System.out.println(timeOnSecondTry); > + > + assertTrue(timeOnSecondTry< (timeOnFirstTry / 10)); > + } > + > + @Test > + public void testResourceLoadFailureCaching() throws LaunchException, ClassNotFoundException, IOException, ParseException { > + final URL JAR_URL = new URL("http://icedtea.classpath.org/netx/about.jar"); > + final URL CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); > + > + JNLPFile dummyJnlpFile = new JNLPFile() { > + @Override > + public ResourcesDesc getResources() { > + return new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); > + } > + > + @Override > + public URL getCodeBase() { > + return CODEBASE_URL; > + } > + > + @Override > + public SecurityDesc getSecurity() { > + return new SecurityDesc(null, SecurityDesc.SANDBOX_PERMISSIONS, null); > + } > + }; > + > + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); > + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent); > + > + long startTime, stopTime; > + > + startTime = System.nanoTime(); > + classLoader.findResource("net/sourceforge/jnlp/about/Main_FOO_.class"); > + stopTime = System.nanoTime(); > + long timeOnFirstTry = stopTime - startTime; > + System.out.println(timeOnFirstTry); > + > + startTime = System.nanoTime(); > + classLoader.findResource("net/sourceforge/jnlp/about/Main_FOO_.class"); > + stopTime = System.nanoTime(); > + long timeOnSecondTry = stopTime - startTime; > + System.out.println(timeOnSecondTry); > + > + assertTrue(timeOnSecondTry< (timeOnFirstTry / 10)); > + } > + > +} > What is causing the delay? The jar is downloaded again? In case that yes, you can use local server with slowed downloading (Pavel is just reviewing this change [1]) and so get rid of remote intent connection's requirement during unittests. (you can direct the internal server to local build of about.jar so it will remain unittest) J. [1] thread Applet's in browser, slow loading, remote and (in some bright future) graphical testing and some minor improvements (was Re: Icedtea-web splashscreen implementation) From ptisnovs at icedtea.classpath.org Tue Mar 13 03:49:12 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 13 Mar 2012 10:49:12 +0000 Subject: /hg/gfx-test: Added stubs for four new tests: Message-ID: changeset 5d9ba86b59eb in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=5d9ba86b59eb author: Pavel Tisnovsky date: Tue Mar 13 11:51:41 2012 +0100 Added stubs for four new tests: * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: * src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java: * src/org/gfxtest/testsuites/ClippingPathByConcavePolygonalShape.java: * src/org/gfxtest/testsuites/ClippingPathBySelfIntersectingPolygonalShape.java: * Makefile: updated diffstat: ChangeLog | 9 + Makefile | 8 + src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java | 75 +++++++++ src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java | 76 ++++++++++ src/org/gfxtest/testsuites/ClippingPathByConcavePolygonalShape.java | 76 ++++++++++ src/org/gfxtest/testsuites/ClippingPathBySelfIntersectingPolygonalShape.java | 76 ++++++++++ 6 files changed, 320 insertions(+), 0 deletions(-) diffs (373 lines): diff -r 818bef11d62c -r 5d9ba86b59eb ChangeLog --- a/ChangeLog Tue Mar 06 11:00:30 2012 +0100 +++ b/ChangeLog Tue Mar 13 11:51:41 2012 +0100 @@ -1,3 +1,12 @@ +2012-03-13 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: + * src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java: + * src/org/gfxtest/testsuites/ClippingPathByConcavePolygonalShape.java: + * src/org/gfxtest/testsuites/ClippingPathBySelfIntersectingPolygonalShape.java: + Added stubs for four new tests. + * Makefile: updated + 2012-03-06 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: diff -r 818bef11d62c -r 5d9ba86b59eb Makefile --- a/Makefile Tue Mar 06 11:00:30 2012 +0100 +++ b/Makefile Tue Mar 13 11:51:41 2012 +0100 @@ -160,6 +160,8 @@ $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByRectangleArea.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByEllipseShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByConvexPolygonalShape.class \ + $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByConcavePolygonalShape.class \ + $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleBySelfIntersectingPolygonalShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByRectangleShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingCircleByRoundRectangleShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByRectangleArea.class \ @@ -167,6 +169,8 @@ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByArbitraryShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByEllipseShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByConvexPolygonalShape.class \ + $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByConcavePolygonalShape.class \ + $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathBySelfIntersectingPolygonalShape.class \ $(CLASSES)/$(TESTSUITE_DIR)/ClippingPathByRoundRectangleShape.class COMPARE_RESULTS = \ @@ -227,12 +231,16 @@ $(RESULTS)/ClippingCircleByRectangleArea \ $(RESULTS)/ClippingCircleByEllipseShape \ $(RESULTS)/ClippingCircleByConvexPolygonalShape \ + $(RESULTS)/ClippingCircleByConcavePolygonalShape \ + $(RESULTS)/ClippingCircleBySelfIntersectingPolygonalShape \ $(RESULTS)/ClippingCircleByRectangleShape \ $(RESULTS)/ClippingCircleByRoundRectangleShape \ $(RESULTS)/ClippingPathByRectangleArea \ $(RESULTS)/ClippingPathByArbitraryShape \ $(RESULTS)/ClippingPathByEllipseShape \ $(RESULTS)/ClippingPathByConvexPolygonalShape \ + $(RESULTS)/ClippingPathByConcavePolygonalShape \ + $(RESULTS)/ClippingPathBySelfIntersectingPolygonalShape \ $(RESULTS)/ClippingPathByRoundRectangleShape \ $(RESULTS)/ClippingPathByRectangleShape diff -r 818bef11d62c -r 5d9ba86b59eb src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Tue Mar 13 11:51:41 2012 +0100 @@ -0,0 +1,75 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011, 2012 Red Hat + +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; either version 2, or (at your option) +any later version. + +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.gfxtest.testsuites; + +import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.annotations.GraphicsPrimitive; +import org.gfxtest.framework.annotations.GraphicsPrimitives; +import org.gfxtest.framework.annotations.TestType; +import org.gfxtest.framework.annotations.TestTypes; +import org.gfxtest.framework.annotations.Transformation; +import org.gfxtest.framework.annotations.Transformations; +import org.gfxtest.framework.annotations.Zoom; + +/** + * This test check if clipping is working correctly for an empty, filled + * and textured circle which is clipped by a polygonal shape. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at Transformation(Transformations.NONE) + at GraphicsPrimitive(GraphicsPrimitives.CIRCLE) + at Zoom(1) +public class ClippingCircleByConcavePolygonalShape extends GfxTest +{ + + /** + * Entry point to the test suite. + * + * @param args + * graphics test configuration + */ + public static void main(String[] args) + { + new ClippingCircleByConcavePolygonalShape().runTestSuite(args); + } +} diff -r 818bef11d62c -r 5d9ba86b59eb src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java Tue Mar 13 11:51:41 2012 +0100 @@ -0,0 +1,76 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011, 2012 Red Hat + +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; either version 2, or (at your option) +any later version. + +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.gfxtest.testsuites; + +import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.annotations.GraphicsPrimitive; +import org.gfxtest.framework.annotations.GraphicsPrimitives; +import org.gfxtest.framework.annotations.TestType; +import org.gfxtest.framework.annotations.TestTypes; +import org.gfxtest.framework.annotations.Transformation; +import org.gfxtest.framework.annotations.Transformations; +import org.gfxtest.framework.annotations.Zoom; + +/** + * This test check if clipping is working correctly for an empty, filled + * and textured circle which is clipped by a polygonal shape. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at Transformation(Transformations.NONE) + at GraphicsPrimitive(GraphicsPrimitives.CIRCLE) + at Zoom(1) +public class ClippingCircleBySelfIntersectingPolygonalShape extends GfxTest +{ + + + /** + * Entry point to the test suite. + * + * @param args + * graphics test configuration + */ + public static void main(String[] args) + { + new ClippingCircleBySelfIntersectingPolygonalShape().runTestSuite(args); + } +} diff -r 818bef11d62c -r 5d9ba86b59eb src/org/gfxtest/testsuites/ClippingPathByConcavePolygonalShape.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/ClippingPathByConcavePolygonalShape.java Tue Mar 13 11:51:41 2012 +0100 @@ -0,0 +1,76 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011, 2012 Red Hat + +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; either version 2, or (at your option) +any later version. + +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.gfxtest.testsuites; + +import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.annotations.GraphicsPrimitive; +import org.gfxtest.framework.annotations.GraphicsPrimitives; +import org.gfxtest.framework.annotations.TestType; +import org.gfxtest.framework.annotations.TestTypes; +import org.gfxtest.framework.annotations.Transformation; +import org.gfxtest.framework.annotations.Transformations; +import org.gfxtest.framework.annotations.Zoom; + +/** + * This test check if clipping is working correctly for a path which is clipped + * by a polygonal shape. Various path and various rendering styles are used for + * rendering. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at Transformation(Transformations.NONE) + at GraphicsPrimitive(GraphicsPrimitives.PATH) + at Zoom(1) +public class ClippingPathByConcavePolygonalShape extends GfxTest +{ + + /** + * Entry point to the test suite. + * + * @param args + * graphics test configuration + */ + public static void main(String[] args) + { + new ClippingPathByConcavePolygonalShape().runTestSuite(args); + } +} diff -r 818bef11d62c -r 5d9ba86b59eb src/org/gfxtest/testsuites/ClippingPathBySelfIntersectingPolygonalShape.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/ClippingPathBySelfIntersectingPolygonalShape.java Tue Mar 13 11:51:41 2012 +0100 @@ -0,0 +1,76 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011, 2012 Red Hat + +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; either version 2, or (at your option) +any later version. + +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.gfxtest.testsuites; + +import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.annotations.GraphicsPrimitive; +import org.gfxtest.framework.annotations.GraphicsPrimitives; +import org.gfxtest.framework.annotations.TestType; +import org.gfxtest.framework.annotations.TestTypes; +import org.gfxtest.framework.annotations.Transformation; +import org.gfxtest.framework.annotations.Transformations; +import org.gfxtest.framework.annotations.Zoom; + +/** + * This test check if clipping is working correctly for a path which is clipped + * by a polygonal shape. Various path and various rendering styles are used for + * rendering. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at Transformation(Transformations.NONE) + at GraphicsPrimitive(GraphicsPrimitives.PATH) + at Zoom(1) +public class ClippingPathBySelfIntersectingPolygonalShape extends GfxTest +{ + + /** + * Entry point to the test suite. + * + * @param args + * graphics test configuration + */ + public static void main(String[] args) + { + new ClippingPathBySelfIntersectingPolygonalShape().runTestSuite(args); + } +} From omajid at redhat.com Tue Mar 13 06:50:43 2012 From: omajid at redhat.com (Omair Majid) Date: Tue, 13 Mar 2012 09:50:43 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <4F5F1113.90508@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> <4F5E411E.6070505@redhat.com> <20120312205616.GH2401@redhat.com> <4F5EA5ED.2060707@redhat.com> <4F5F1113.90508@redhat.com> Message-ID: <4F5F50B3.1000109@redhat.com> On 03/13/2012 05:19 AM, Jiri Vanek wrote: > What is causing the delay? The jar is downloaded again? No (at least not in this case). Some applets specify a codebase parameter. Every time a resources is not found anywhere else, the classloader will search the codebase for that resource. The codebase is supposed to be remote. The delay caused by it can severely affect some applications. And this delay is what we want to reduce the second time around. Cheers, Omair From dbhole at redhat.com Tue Mar 13 06:59:45 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 13 Mar 2012 09:59:45 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <4F5EA5ED.2060707@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> <4F5E411E.6070505@redhat.com> <20120312205616.GH2401@redhat.com> <4F5EA5ED.2060707@redhat.com> Message-ID: <20120313135944.GJ2401@redhat.com> * Omair Majid [2012-03-12 21:42]: > On 03/12/2012 04:56 PM, Deepak Bhole wrote: > > * Omair Majid [2012-03-12 14:32]: > >> On 03/12/2012 02:20 PM, Deepak Bhole wrote: > >>> * Deepak Bhole [2012-03-12 14:13]: > >>>> * Omair Majid [2012-03-09 20:08]: > >>>>> On 03/09/2012 05:19 PM, Deepak Bhole wrote: > >>>>>> Hi, > >>>>>> > >>>>>> Attached patch fixes PR895: > >>>>>> "IcedTea-Web searches for missing classes on each loadClass or findClass" > >>>>>> > >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=895 > >>>>> > >>>>> The bug doesn't seem to have any additional information. Is there a test > >>>>> case or a reproducer? Do you know why the server is being hammered? If > >>>>> the actual issue is under our control (for example, we are attempting to > >>>>> re-download stuff we already downloaded), it might be better to fix this > >>>>> underlying issue. > >>>>> > >>>> > >>>> Yes, this one: > >>>> http://jdk6.java.net/nonav/plugin2/liveconnect/LiveConnectTests/ > >>>> > >> > >> Please do add this to > >> http://icedtea.classpath.org/wiki/IcedTea-Web-Tests as well. > >> > > > > Added. > > Thanks! > > >>>> Without the patch it takes 2+ minutes to run.. with patch, it is down to > >>>> about 15 seconds. > >>>> > >> > >> Do you know what this test is doing? While the patch looks fine, I would > >> hate for us to paper over the problem rather than fixing it. > >> > > > > They are a set of LiveConnect tests. From what I can tell, the js is > > constantly asking the plugin to get a property named 'java', 'lang', > > etc. Since one can have a class named java or lang, the plug-in searches > > all available paths. The tests repeatedly ask for these paths/packages. > > > > Looking at the code now, I think it should be possible to improve this to > > not have it do it over and over though. The class lookup is done from > > IcedTeaScriptableJavaPackageObject::getProperty so it shouldn't have to > > look up a class with the name. > > > > I cannot remember why I made it do it though and I would like to think > > about it before fiddling with it (in case I had a reason back then). I > > remember that some of the tests in the IcedTea LiveConnect suite fail > > with the Oracle plug-in because it has issues with direct access to > > classes/packages and I suspect this may have been the reason. I will > > think about it. > > > > Perhaps it might be better to wait then (at least for HEAD) ? > Yeah, definitely. > > Sure, but how do you propose we test this behaviour with a unit test? > > The return of the function is intended to be identical when class is > > searched (and not found) for the first time, or subsequent ones.. > > See attached patch (fails without your patch; passes with it). It just > tests timing; I can extend it to check functionality too. > Ah, yeah I thought of checking for time too but I was hoping to avoid it as it is not reliable. In any case, given that neither of us have a better way in mind, I guess this is better than nothing :) > As a side note, we should really try and reduce the inter-dependencies > (between the classloader, jnlpfile and downloading), but this works for now. > Yeah :/ there have been other cases where this has been a hindrance to writing tests too. Are you OK with the content of the patch? If so, I will commit it and your test -- thanks! Deepak From omajid at redhat.com Tue Mar 13 07:05:42 2012 From: omajid at redhat.com (Omair Majid) Date: Tue, 13 Mar 2012 10:05:42 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <20120313135944.GJ2401@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> <4F5E411E.6070505@redhat.com> <20120312205616.GH2401@redhat.com> <4F5EA5ED.2060707@redhat.com> <20120313135944.GJ2401@redhat.com> Message-ID: <4F5F5436.1090905@redhat.com> On 03/13/2012 09:59 AM, Deepak Bhole wrote: > Ah, yeah I thought of checking for time too but I was hoping to avoid it > as it is not reliable. In any case, given that neither of us have a > better way in mind, I guess this is better than nothing :) > Yeah, that's what I was thinking too. If we find a cleaner way to do this check later on, we can always change things. >> As a side note, we should really try and reduce the inter-dependencies >> (between the classloader, jnlpfile and downloading), but this works for now. >> > > Yeah :/ there have been other cases where this has been a hindrance to > writing tests too. I will poke at this some more when I have some spare time. > Are you OK with the content of the patch? Yeah, I think it's fine for 1.1 and 1.2. It looks like you agree that we should wait a bit for HEAD, and that sounds fine to me too. Cheers, Omair From ddadacha at redhat.com Tue Mar 13 09:47:18 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Tue, 13 Mar 2012 12:47:18 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5E229D.4010607@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> Message-ID: <4F5F7A16.6030402@redhat.com> On 12/03/12 12:21 PM, Danesh Dadachanji wrote: > > > On 12/03/12 07:26 AM, Jiri Vanek wrote: >> On 03/12/2012 12:22 PM, Pavel Tisnovsky wrote: >>> Jiri Vanek wrote: >>>> On 03/12/2012 11:50 AM, Pavel Tisnovsky wrote: >>>>> Jiri Vanek wrote: >>>>>> On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: >>>>>>> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >>>>>>>> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>>>>>>>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>>>>>>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>>>>>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> Looking at the plugin docs[1], and<vendor> are required >>>> snip >>>>>>> >>>>>>> diff --git a/netx/net/sourceforge/jnlp/Parser.java >>>>>>> b/netx/net/sourceforge/jnlp/Parser.java >>>>>>> --- a/netx/net/sourceforge/jnlp/Parser.java >>>>>>> +++ b/netx/net/sourceforge/jnlp/Parser.java >>>>>>> @@ -504,6 +504,11 @@ class Parser { >>>>>>> child = child.getNextSibling(); >>>>>>> } >>>>>>> >>>>>>> + if (info.getTitle() == null || info.getTitle().equals("")) >>>>>>> + throw new ParseException(R("PNoTitleElement")); >>>>>>> + if (info.getVendor() == null || info.getVendor().equals("")) >>>>>>> + throw new ParseException(R("PNoVendorElement")); >>>>>>> + >>>>>>> return info; >>>>>>> } >>>>>>> >>>>>> I would suggest "".equals(info.get*().trim()) instead of >>>>>> info.get*().equals("") >>>>>> Usage of trim i straight forward and I think it is necessary. >>>>>> The "".equals instead of string.equals("") really just minor nitpick >>>>>> :) "".equals(null) returns false instead of NUllPointerException. >>>>>> I do >>>>>> not believe trim() will ever return null, but it is good habit (IMHO >>>>>> O:) ) >>>>>> If no need for trim will be here, then just "".equals(info.get*()) >>>>>> will >>>>>> be enough instead of both conditions. > > I would still need 2 conditions because I want the if to pass when > info.get*() is null. That check is not to look out for a NPE, it's the > opposite. If it's null, the tags aren't there! So I'd still need both. > > Also, I remember thinking about this case before posting the patch. It > already trims it before saving vendor into the info var. =) However I > think you're right, it should still be there in case somewhere down the > line, the trim before saving is removed. > >>>>> >>>>> String.trim() does not return null so you don't need to worry >>>> Yy - as I have already said ;) but STILL it is good habit O:) >>>>> >>>>> Then you could use predicate isEmpty() which is IMHO more readable >>>>> than equals("") (since 1.6) >>>> isEmpty do not trim :((( => info.get*() == null || >>>> info.get*().trim().isEmpty() ... :D (if we can live with method which >>>> appeared in 1.6) >>> Yeah I mean info.get*().trim().isEmpty() >>> (btw I think we could end with this basic stuff ;-) >>>> >>>> But this leads me to question - which javaSE version is icedtea-web >>>> comaptible with and which _should_ be compatible with? >>> >>> I assume it should be compatible with 1.6 and 1.7 >> Yap, I guess the same... Poor mainframes with ibm 1.4.2 are out of luck >> again ;) >>> (and I'm pretty sure that >>> the code already contains some 1.6-related code ;-) which could be easy >> Although i do not KNOW about it I BELIEVE to it too !-) ..and I think >> there is no need to keep older javas supported anyway... >>> to check using --source and --target) >> Ah Yah! > > I think it's safe to use this here. I will definitely use isEmpty() then! > > Updated patch coming shortly. Thanks again for all the comments! I ended up using get*() == null || get*().trim().isEmpty() for the condition. As mentioned before, null needs to be checked against because this implies the tag is missing altogether. If the trimmed return is empty, that means the tag was there but contained 0 or more white spaces. I figured having trim here would be a good check in case Parser was ever changed. Currently, the values are trimmed and then stored but if this changes in the future, this will catch it. I've added 2 more tests, one with an information tag missing and another with both, title and vendor tags missing. Again, this test will not work without the LaunchHandler patch in review[1], however I've used String.matches() to account for any implementation that results in [1]'s outcome. ChangeLog: +2012-03-13 Danesh Dadachanji <ddadacha at redhat.com> + + Applications using JNLP files without a title or vendor section + still run, despite them being required elements. + * netx/net/sourceforge/jnlp/Parser.java: + (getInformationDesc): If title or vendor are not found in info, + a new ParseException is thrown. + * netx/net/sourceforge/jnlp/resources/Messages.properties: + Added PNoTitleElement and PNoVendorElement + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/srcs/TitleVendorParser.java, + * tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/TitleVendorParserTest.java: + New test that runs JNLPs in a combination of missing information, title + and vendor tags, checking for the appropriate exceptions. + Cheers, Danesh [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017666.html -------------- next part -------------- A non-text attachment was scrubbed... Name: title-vendor-required-04.patch Type: text/x-patch Size: 15150 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120313/2ba14993/title-vendor-required-04.patch From aph at redhat.com Tue Mar 13 11:19:34 2012 From: aph at redhat.com (Andrew Haley) Date: Tue, 13 Mar 2012 18:19:34 +0000 Subject: PING: ARM: More intrinsics In-Reply-To: <4F510C5B.9090207@redhat.com> References: <4F510C5B.9090207@redhat.com> Message-ID: <4F5F8FB6.1090803@redhat.com> -------------- next part -------------- An embedded message was scrubbed... From: Andrew Haley <aph at redhat.com> Subject: ARM: More intrinsics Date: Fri, 02 Mar 2012 18:07:23 +0000 Size: 14162 Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120313/b25f1909/Moreintrinsics.eml From ddadacha at redhat.com Tue Mar 13 12:57:01 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Tue, 13 Mar 2012 15:57:01 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5E9AEF.1030409@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5E0F40.1040001@redhat.com> <4F5E9AEF.1030409@redhat.com> Message-ID: <4F5FA68D.6060202@redhat.com> On 12/03/12 08:55 PM, Omair Majid wrote: > On 03/12/2012 10:59 AM, Danesh Dadachanji wrote: >> I thought so too until I checked where printMessage() was called from. >> See launchWarning in GuiLaunchHandler[1], it explicitly calls >> DefaultLaunchHandler.printMessage(). I didn't look into why it was doing >> that so if you think that's a bug, I can look into it further. >> > > Assuming that we want to print the stack trace only in -verbose mode, > how does the attached patch look? (I did get a little side tracked and > fixed problems in printing the exceptions too). > This is way better than my patch! One question, why did you choose to print the entire exception as opposed to just the cause? I realize icedtea-web does it that way and it may even be better but I found that when I did that to test, the cause was repeated. > I can rework this if others still think printing the entire stack trace > in -headless mode is a good idea. No I think you have the right idea. I completely forgot about the "Show Details" button which can be seen as somewhat similar to supplying -verbose. I'm fine with the one-liner in output. Another thing, did you intentionally leave out the part that prints the exception to stderr with -verbose in GuiLaunchHandler? If not, can you include it in this patch? Cheers, Danesh From dbhole at redhat.com Tue Mar 13 13:19:01 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 13 Mar 2012 16:19:01 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <4F5F5436.1090905@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> <4F5E411E.6070505@redhat.com> <20120312205616.GH2401@redhat.com> <4F5EA5ED.2060707@redhat.com> <20120313135944.GJ2401@redhat.com> <4F5F5436.1090905@redhat.com> Message-ID: <20120313201900.GN2401@redhat.com> * Omair Majid <omajid at redhat.com> [2012-03-13 10:05]: > On 03/13/2012 09:59 AM, Deepak Bhole wrote: > > Ah, yeah I thought of checking for time too but I was hoping to avoid it > > as it is not reliable. In any case, given that neither of us have a > > better way in mind, I guess this is better than nothing :) > > > > Yeah, that's what I was thinking too. If we find a cleaner way to do > this check later on, we can always change things. > > >> As a side note, we should really try and reduce the inter-dependencies > >> (between the classloader, jnlpfile and downloading), but this works for now. > >> > > > > Yeah :/ there have been other cases where this has been a hindrance to > > writing tests too. > > I will poke at this some more when I have some spare time. > > > Are you OK with the content of the patch? > > Yeah, I think it's fine for 1.1 and 1.2. It looks like you agree that we > should wait a bit for HEAD, and that sounds fine to me too. > Sorry, I misread the previous message. I thought we were talking about the fix to the C++ side and to put it in HEAD only initially. I think that this fix should go into all branches. IMO regardless of the fact that the C++ side may be causing excessive hammering, we should still make it so that we don't hit the server over and over for a class that we know does not exist (for that instance). Cheers, Deepak From omajid at redhat.com Tue Mar 13 13:49:46 2012 From: omajid at redhat.com (Omair Majid) Date: Tue, 13 Mar 2012 16:49:46 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <20120313201900.GN2401@redhat.com> References: <20120309221928.GI5921@redhat.com> <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> <4F5E411E.6070505@redhat.com> <20120312205616.GH2401@redhat.com> <4F5EA5ED.2060707@redhat.com> <20120313135944.GJ2401@redhat.com> <4F5F5436.1090905@redhat.com> <20120313201900.GN2401@redhat.com> Message-ID: <4F5FB2EA.7020506@redhat.com> On 03/13/2012 04:19 PM, Deepak Bhole wrote: > * Omair Majid <omajid at redhat.com> [2012-03-13 10:05]: >> On 03/13/2012 09:59 AM, Deepak Bhole wrote: >>> Ah, yeah I thought of checking for time too but I was hoping to avoid it >>> as it is not reliable. In any case, given that neither of us have a >>> better way in mind, I guess this is better than nothing :) >>> >> >> Yeah, that's what I was thinking too. If we find a cleaner way to do >> this check later on, we can always change things. >> >>>> As a side note, we should really try and reduce the inter-dependencies >>>> (between the classloader, jnlpfile and downloading), but this works for now. >>>> >>> >>> Yeah :/ there have been other cases where this has been a hindrance to >>> writing tests too. >> >> I will poke at this some more when I have some spare time. >> >>> Are you OK with the content of the patch? >> >> Yeah, I think it's fine for 1.1 and 1.2. It looks like you agree that we >> should wait a bit for HEAD, and that sounds fine to me too. >> > > Sorry, I misread the previous message. I thought we were talking about > the fix to the C++ side and to put it in HEAD only initially. > > I think that this fix should go into all branches. IMO regardless of the > fact that the C++ side may be causing excessive hammering, we should > still make it so that we don't hit the server over and over for a class > that we know does not exist (for that instance). > Fair enough. I am okay with the patch. Cheers, Omair From dbhole at redhat.com Tue Mar 13 14:08:43 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 13 Mar 2012 17:08:43 -0400 Subject: [RFC] PR858 In-Reply-To: <1331374720.1380.36.camel@localhost.localdomain> References: <1331374720.1380.36.camel@localhost.localdomain> Message-ID: <20120313210843.GO2401@redhat.com> * Thomas Meyer <thomas at m3y3r.de> [2012-03-10 05:28]: > Hello, > > looking at bug 858 (e.g. > http://www.chemaxon.com/marvin-archive/5.8.0/marvin/examples/applets/view/embed.html ) icedtea-web gets an NPE: > > java.lang.NullPointerException > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.getPermissions(JNLPClassLoader.java:603) > at > java.security.SecureClassLoader.getProtectionDomain(SecureClassLoader.java:210) > at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) > at java.net.URLClassLoader.access$000(URLClassLoader.java:73) > at java.net.URLClassLoader$1.run(URLClassLoader.java:212) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:205) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.findClass(JNLPClassLoader.java:1187) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClassExt(JNLPClassLoader.java:1214) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1029) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:186) > at chemaxon.marvin.applet.AppletLaunch.run(Unknown Source) > at java.lang.Thread.run(Thread.java:679) > > This is because of: > > 1.) the JNLPClassLoader constructor will only verify and add the jar > "appletlauncher.jar" (only this jar will get a SecurityDesc entry), but > will use the classpath defined in the manifest file, which contains all > other "marvin" jars. > > 2.) the AppletLaunch class will run next and tries to load another class > from a jar in the classpath. this jar was not jet verified, i.e. has no > SecurtiyDesc entry in the JNLPClassLoader. > > 3.) the method JNLPClassLoader.loadClass(String name) has this code that > looks like it should add jar files not yet verified, but this code will > (as far as I understand) never be executed reached: > > // search this and the extension loaders > if (result == null) { > try { > result = loadClassExt(name); > } catch (ClassNotFoundException cnfe) { > // Not found in external loader either > -> We never get here! This is odd. The code was added in that catch because at one point loadClassExt() was not automatically adding the index classes. Now it is :/ The best thing would be to somehow remove the index from the JarFile returned by CachedJarFileCallback, but entries cannot be removed without re-writing the JAR. I think given that, your logic of check for sd looks correct. However, calling addJar means that the jar is now being downloaded twice -- once by URLClassLoader (which doesn't cache it) and once by JNLPClassLoader. We could scan for INDEX.LIST beforhand and add those jars, but then that defeats lazy loading. Other suggestions? Deepak From omajid at redhat.com Tue Mar 13 14:21:49 2012 From: omajid at redhat.com (Omair Majid) Date: Tue, 13 Mar 2012 17:21:49 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5FA68D.6060202@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5E0F40.1040001@redhat.com> <4F5E9AEF.1030409@redhat.com> <4F5FA68D.6060202@redhat.com> Message-ID: <4F5FBA6D.2090500@redhat.com> On 03/13/2012 03:57 PM, Danesh Dadachanji wrote: > On 12/03/12 08:55 PM, Omair Majid wrote: >> On 03/12/2012 10:59 AM, Danesh Dadachanji wrote: >>> I thought so too until I checked where printMessage() was called from. >>> See launchWarning in GuiLaunchHandler[1], it explicitly calls >>> DefaultLaunchHandler.printMessage(). I didn't look into why it was doing >>> that so if you think that's a bug, I can look into it further. >>> >> >> Assuming that we want to print the stack trace only in -verbose mode, >> how does the attached patch look? (I did get a little side tracked and >> fixed problems in printing the exceptions too). >> > > This is way better than my patch! One question, why did you choose to > print the entire exception as opposed to just the cause? I realize > icedtea-web does it that way and it may even be better but I found that > when I did that to test, the cause was repeated. > I am not entirely clear on this. Do you mean the stack trace was repeated? As in it had duplicate "Caused by" lines? >> I can rework this if others still think printing the entire stack trace >> in -headless mode is a good idea. > > No I think you have the right idea. I completely forgot about the "Show > Details" button which can be seen as somewhat similar to supplying > -verbose. I'm fine with the one-liner in output. > > > Another thing, did you intentionally leave out the part that prints the > exception to stderr with -verbose in GuiLaunchHandler? Doh. Sorry; it was a mistake. > If not, can you > include it in this patch? Done. How does the attached patch look? Thanks, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: print-messages-03.patch Type: text/x-patch Size: 18471 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120313/69b4a2cd/print-messages-03.patch From ddadacha at redhat.com Tue Mar 13 14:26:13 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Tue, 13 Mar 2012 17:26:13 -0400 Subject: [RFC][icedtea-web] Patch to enable compilation of icedtea-web on both xulrunners apis In-Reply-To: <20111220162648.GP752@redhat.com> References: <4EE9CF2E.5090608@redhat.com> <20111219164310.GC752@redhat.com> <4EF0B0FC.8060205@redhat.com> <20111220162648.GP752@redhat.com> Message-ID: <4F5FBB75.1020009@redhat.com> On 20/12/11 11:26 AM, Deepak Bhole wrote: > * Jiri Vanek<jvanek at redhat.com> [2011-12-20 10:58]: >> On 12/19/2011 05:43 PM, Deepak Bhole wrote: >>> * Jiri Vanek<jvanek at redhat.com> [2011-12-15 05:43]: >>>> 2011-12-15 Jiri Vanek<jvanek at redhat.com> >>>> >>>> * acinclude.m4: added definition of IT_CHECK_XULLRUNNER_API_VERSION, >>>> which tryes to compile small program against new xulrunner api >>>> * configure.ac: added call of IT_CHECK_XULLRUNNER_API_VERSION >>>> * plugin/icedteanp/IcedTeaNPPlugin.cc: (NP_GetMIMEDescription) >>>> return type set-up by dependecy on defined LEGACY_XULRUNNERAPI. >>>> This one is seted by IT_CHECK_XULLRUNNER_API_VERSION during configure. >>>> if defined, then old char* is used. New const char* is used otherwise. >>>> >>>> [snip] Hey Jiri, I built icedtea6-1.9 recently, since it still has the old netx code, it builds with the same error. I'm not too sure if we want to backport this to 6-1.9 considering how large a change it is but it will completely break the build with any updated xulrunner. What do you think? Cheers, Danesh >> diff -r fb5e54f2b97e ChangeLog >> --- a/ChangeLog Thu Dec 08 16:01:06 2011 -0500 >> +++ b/ChangeLog Thu Dec 20 11:37:31 2011 +0100 >> @@ -1,3 +1,13 @@ >> +2011-12-20 Jiri Vanek<jvanek at redhat.com> >> + >> + * acinclude.m4: added definition of IT_CHECK_XULRUNNER_API_VERSION, >> + which tries to compile small program against new xulrunner api >> + * configure.ac: added call of IT_CHECK_XULRUNNER_API_VERSION >> + * plugin/icedteanp/IcedTeaNPPlugin.cc: (NP_GetMIMEDescription) >> + return type set-up by dependency on defined LEGACY_XULRUNNERAPI. >> + This one is set by IT_CHECK_XULRUNNER_API_VERSION during configure. >> + if defined, then old char* is used. New const char* is used otherwise. >> + >> 2011-12-08 Omair Majid<omajid at redhat.com> >> >> * netx/net/sourceforge/jnlp/Launcher.java >> diff -r fb5e54f2b97e acinclude.m4 >> --- a/acinclude.m4 Thu Dec 08 16:01:06 2011 -0500 >> +++ b/acinclude.m4 Thu Dec 20 11:37:31 2011 +0100 >> @@ -495,6 +495,26 @@ >> PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0>= 2.16],[],[AC_DEFINE([LEGACY_GLIB])]) >> ]) >> >> +AC_DEFUN_ONCE([IT_CHECK_XULRUNNER_API_VERSION], >> +[ >> + AC_MSG_CHECKING([for legacy xulrunner api]) >> + AC_LANG_PUSH(C++) >> + CXXFLAGS_BACKUP=$CXXFLAGS >> + CXXFLAGS=$CXXFLAGS" "$MOZILLA_CFLAGS >> + AC_TRY_COMPILE([ >> + #include<npfunctions.h> >> + const char* NP_GetMIMEDescription () >> + {return (char*) "yap!";} >> + ],[],[ >> + AC_MSG_RESULT(no) >> + ],[ >> + AC_MSG_RESULT(yes) >> + AC_DEFINE([LEGACY_XULRUNNERAPI]) >> + ]) >> + CXXFLAGS=$CXXFLAGS_BACKUP >> + AC_LANG_POP(C++) >> +]) >> + >> AC_DEFUN([IT_CHECK_WITH_GCJ], >> [ >> AC_MSG_CHECKING([whether to compile ecj natively]) >> diff -r fb5e54f2b97e configure.ac >> --- a/configure.ac Thu Dec 08 16:01:06 2011 -0500 >> +++ b/configure.ac Thu Dec 20 11:37:31 2011 +0100 >> @@ -81,6 +81,7 @@ >> IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef]) >> IT_CHECK_FOR_APPLETVIEWERPANEL_HOLE >> IT_CHECK_GLIB_VERSION >> +IT_CHECK_XULRUNNER_API_VERSION >> >> # >> # Find optional depedencies >> diff -r fb5e54f2b97e plugin/icedteanp/IcedTeaNPPlugin.cc >> --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Dec 08 16:01:06 2011 -0500 >> +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Dec 20 11:37:31 2011 +0100 >> @@ -2291,7 +2291,11 @@ >> >> // Returns a string describing the MIME type that this plugin >> // handles. >> +#ifdef LEGACY_XULRUNNERAPI >> char* >> +#else >> + const char* >> +#endif >> NP_GetMIMEDescription () >> { >> PLUGIN_DEBUG ("NP_GetMIMEDescription\n"); > From ddadacha at redhat.com Tue Mar 13 14:44:34 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Tue, 13 Mar 2012 17:44:34 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5FBA6D.2090500@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5E0F40.1040001@redhat.com> <4F5E9AEF.1030409@redhat.com> <4F5FA68D.6060202@redhat.com> <4F5FBA6D.2090500@redhat.com> Message-ID: <4F5FBFC2.9080309@redhat.com> On 13/03/12 05:21 PM, Omair Majid wrote: > On 03/13/2012 03:57 PM, Danesh Dadachanji wrote: >> > On 12/03/12 08:55 PM, Omair Majid wrote: >>> >> On 03/12/2012 10:59 AM, Danesh Dadachanji wrote: >>>> >>> I thought so too until I checked where printMessage() was called from. >>>> >>> See launchWarning in GuiLaunchHandler[1], it explicitly calls >>>> >>> DefaultLaunchHandler.printMessage(). I didn't look into why it was doing >>>> >>> that so if you think that's a bug, I can look into it further. >>>> >>> >>> >> >>> >> Assuming that we want to print the stack trace only in -verbose mode, >>> >> how does the attached patch look? (I did get a little side tracked and >>> >> fixed problems in printing the exceptions too). >>> >> >> > >> > This is way better than my patch! One question, why did you choose to >> > print the entire exception as opposed to just the cause? I realize >> > icedtea-web does it that way and it may even be better but I found that >> > when I did that to test, the cause was repeated. >> > > I am not entirely clear on this. Do you mean the stack trace was > repeated? As in it had duplicate "Caused by" lines? > >>> >> I can rework this if others still think printing the entire stack trace >>> >> in -headless mode is a good idea. >> > >> > No I think you have the right idea. I completely forgot about the "Show >> > Details" button which can be seen as somewhat similar to supplying >> > -verbose. I'm fine with the one-liner in output. >> > >> > >> > Another thing, did you intentionally leave out the part that prints the >> > exception to stderr with -verbose in GuiLaunchHandler? > Doh. Sorry; it was a mistake. > >> > If not, can you >> > include it in this patch? > Done. How does the attached patch look? > Great stuff, one more nitpick below and then it's fine with me. > diff --git a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java > --- a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java > +++ b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java [snip] > @@ -71,6 +77,9 @@ > BasicExceptionDialog.show(exception); > } > }); > + if (JNLPRuntime.isDebug()) { > + exception.printStackTrace(outputStream); Could you change that to printMessage(exception); instead? I think consistency here between what is printed to terminal between GUI and headless runs is better. We might base future tests off misinterpretations! > + } > } > Also, you forgot to include AbstractLaunchHandler. =) Cheers, Danesh From omajid at redhat.com Tue Mar 13 15:00:24 2012 From: omajid at redhat.com (Omair Majid) Date: Tue, 13 Mar 2012 18:00:24 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5FBFC2.9080309@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5E0F40.1040001@redhat.com> <4F5E9AEF.1030409@redhat.com> <4F5FA68D.6060202@redhat.com> <4F5FBA6D.2090500@redhat.com> <4F5FBFC2.9080309@redhat.com> Message-ID: <4F5FC378.5080509@redhat.com> On 03/13/2012 05:44 PM, Danesh Dadachanji wrote: > On 13/03/12 05:21 PM, Omair Majid wrote: >> On 03/13/2012 03:57 PM, Danesh Dadachanji wrote: >>> > On 12/03/12 08:55 PM, Omair Majid wrote: >>>> >> On 03/12/2012 10:59 AM, Danesh Dadachanji wrote: >>>>> >>> I thought so too until I checked where printMessage() was >>>>> called from. >>>>> >>> See launchWarning in GuiLaunchHandler[1], it explicitly calls >>>>> >>> DefaultLaunchHandler.printMessage(). I didn't look into why it >>>>> was doing >>>>> >>> that so if you think that's a bug, I can look into it further. >>>>> >>> >>>> >> >>>> >> Assuming that we want to print the stack trace only in -verbose >>>> mode, >>>> >> how does the attached patch look? (I did get a little side >>>> tracked and >>>> >> fixed problems in printing the exceptions too). >>>> >> >>> > >>> > This is way better than my patch! One question, why did you choose to >>> > print the entire exception as opposed to just the cause? I realize >>> > icedtea-web does it that way and it may even be better but I found >>> that >>> > when I did that to test, the cause was repeated. >>> > >> I am not entirely clear on this. Do you mean the stack trace was >> repeated? As in it had duplicate "Caused by" lines? >> >>>> >> I can rework this if others still think printing the entire >>>> stack trace >>>> >> in -headless mode is a good idea. >>> > >>> > No I think you have the right idea. I completely forgot about the >>> "Show >>> > Details" button which can be seen as somewhat similar to supplying >>> > -verbose. I'm fine with the one-liner in output. >>> > >>> > >>> > Another thing, did you intentionally leave out the part that >>> prints the >>> > exception to stderr with -verbose in GuiLaunchHandler? >> Doh. Sorry; it was a mistake. >> >>> > If not, can you >>> > include it in this patch? >> Done. How does the attached patch look? >> > > Great stuff, one more nitpick below and then it's fine with me. > >> diff --git a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >> b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >> --- a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >> +++ b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java > > [snip] > >> @@ -71,6 +77,9 @@ >> BasicExceptionDialog.show(exception); >> } >> }); >> + if (JNLPRuntime.isDebug()) { >> + exception.printStackTrace(outputStream); > > Could you change that to printMessage(exception); instead? I think > consistency here between what is printed to terminal between GUI and > headless runs is better. We might base future tests off misinterpretations! Sorry, I was a little confused (the original patch had an 'if JNLPRuntime.isDebug()). I prefer printMessage here too because of the consistency. I should probably add unit tests for the GUI too, except it's a little coupled with a bunch of other things. >> + } >> } >> > > Also, you forgot to include AbstractLaunchHandler. =) > Whoops. The attached patch should address both the problems. Thanks for the multiple reviews! Cheers, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: print-messages-04.patch Type: text/x-patch Size: 21510 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120313/f31df5f1/print-messages-04.patch From aph at redhat.com Wed Mar 14 02:47:48 2012 From: aph at redhat.com (Andrew Haley) Date: Wed, 14 Mar 2012 09:47:48 +0000 Subject: ARM: Replace a bunch of numeric constants Message-ID: <4F606944.4070000@redhat.com> Replace some obscure constants with symbols. Committed to trunk thusly. Andrew. 2012-03-14 Andrew Haley <aph at redhat.com> * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def (ldc, ldc_w): Replace numeric constants for constant pool with symbols. * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S (build_frame): Likewise. (fast_native_entry): Likewise. diff -r fd60dc8238c7 arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def --- a/arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def Tue Mar 13 16:56:04 2012 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def Wed Mar 14 09:29:13 2012 +0000 @@ -2091,7 +2091,7 @@ bne 2f add r0, tmp1, #CONSTANTPOOL_BASE ldr r0, [r0, lr, lsl #2] - ldr r1, [r0, #60] + ldr r1, [r0, #KLASS_PART + KLASS_JAVA_MIRROR] PUSH r1 DISPATCH 0 2: @@ -2147,7 +2147,7 @@ bne 2f add r0, r2, #CONSTANTPOOL_BASE ldr r0, [r0, lr, lsl #2] - ldr r1, [r0, #60] + ldr r1, [r0, #KLASS_PART + KLASS_JAVA_MIRROR] PUSH r1 DISPATCH 0 2: diff -r fd60dc8238c7 arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S --- a/arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Tue Mar 13 16:56:04 2012 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Wed Mar 14 09:29:13 2012 +0000 @@ -737,8 +737,8 @@ tst r2, #JVM_ACC_STATIC ldrne r2, [r1, #METHOD_CONSTANTS] ldreq r2, [r6, #0] - ldrne r2, [r2, #16] - ldrne r2, [r2, #60] + ldrne r2, [r2, #CONSTANTPOOL_POOL_HOLDER] + ldrne r2, [r2, #KLASS_PART + KLASS_JAVA_MIRROR] str r2, [r7, #4] .L10: ldr r2, [r3, #8] @@ -1125,9 +1125,9 @@ beq .do_fast_copy_args ldr r2, [r11, #METHOD_CONSTANTS] - ldr r2, [r2, #16] + ldr r2, [r2, #CONSTANTPOOL_POOL_HOLDER] str r3, [lr], #4 - ldr r2, [r2, #60] + ldr r2, [r2, #KLASS_PART + KLASS_JAVA_MIRROR] add r1, r1, #4 str r2, [r3] @@ -2861,9 +2861,9 @@ tst r3, #JVM_ACC_STATIC ldrne r3, [r0, #METHOD_CONSTANTS] ldreq sl, [locals, #0] - ldrne r2, [r3, #16] + ldrne r2, [r3, #CONSTANTPOOL_POOL_HOLDER] ldr tmp1, [istate, #ISTATE_MONITOR_BASE] - ldrne sl, [r2, #60] + ldrne sl, [r2, #KLASS_PART + KLASS_JAVA_MIRROR] ldr r3, [sl, #0] orr tmp_xxx, r3, #1 str tmp_xxx, [tmp1, #-8]! From mjw at redhat.com Wed Mar 14 03:06:59 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 14 Mar 2012 11:06:59 +0100 Subject: [PATCH 0 of 5] Some jstack fixes and improvements Message-ID: <patchbomb.1331719619@springer.wildebeest.org> Hi, Here are some fixes and enhancements to the systemtap jstack() support. I split them out in separate patches to make it easier to see what changed (one of them is basically a complete reindent with a try-catch wrapped around the body of the jstack function). These patches make jstack() more reliable by having less hard coded constants, and better error recovery if something still did go wrong. One patch relies on an unreleased Systemtap 1.8 feature (@var) which adds support for when hotspot is compiled with gcc 4.6+, it checks the systemtap version installed to fall back on the old method (using $var) if necessary. These are for IcedTea6. Next up is making sure everything works also against IcedTea7. Cheers, Mark From mjw at redhat.com Wed Mar 14 03:07:04 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 14 Mar 2012 11:07:04 +0100 Subject: [PATCH 5 of 5] * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in In-Reply-To: <patchbomb.1331719619@springer.wildebeest.org> References: <patchbomb.1331719619@springer.wildebeest.org> Message-ID: <6094e670ff67b499cee1.1331719624@springer.wildebeest.org> # HG changeset patch # User Mark Wielaard <mark at klomp.org> # Date 1331718924 -3600 # Node ID 6094e670ff67b499cee13f4566d8e96bd197042d # Parent 1ab9b476f30279bd0367d539f29b5591ae0e0e7e * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-03-14 Mark Wielaard <mjw at redhat.com> + + * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. + 2012-03-13 Mark Wielaard <mjw at redhat.com> * tapset/jstack.stp.in: Wrap heap accessors in try-catch block to be diff --git a/Makefile.am b/Makefile.am --- a/Makefile.am +++ b/Makefile.am @@ -643,6 +643,7 @@ autogen.sh \ tapset/hotspot.stp.in \ tapset/hotspot_jni.stp.in \ + tapset/jstack.stp.in \ scripts/jni_create_stap.c \ scripts/jni_desc \ rewriter/agpl-3.0.txt \ From mjw at redhat.com Wed Mar 14 03:07:01 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 14 Mar 2012 11:07:01 +0100 Subject: [PATCH 2 of 5] jstack.stp support multiple running hotspots by indexing globals by pid() In-Reply-To: <patchbomb.1331719619@springer.wildebeest.org> References: <patchbomb.1331719619@springer.wildebeest.org> Message-ID: <b6af0d77662190c10c18.1331719621@springer.wildebeest.org> # HG changeset patch # User Mark Wielaard <mark at klomp.org> # Date 1331653292 -3600 # Node ID b6af0d77662190c10c18c07f43718740631827ac # Parent c354196308a582c0801a30ea84f80d8d93450e9e jstack.stp support multiple running hotspots by indexing globals by pid(). diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Index globals on pid() to support multiple + running hotspot jstacks at the same time. + 2012-03-13 Mark Wielaard <mjw at redhat.com> * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. diff --git a/tapset/jstack.stp.in b/tapset/jstack.stp.in --- a/tapset/jstack.stp.in +++ b/tapset/jstack.stp.in @@ -67,7 +67,7 @@ probe hotspot.vm_init_end { // The parent/type oop for a methodOop. - Universe_methodKlassObj = $_methodKlassObj; + Universe_methodKlassObj[pid()] = $_methodKlassObj; // For compressed oops. // Universe_heap_base = $_heap_base; @@ -82,8 +82,8 @@ * * Note that we access it through its "short name" _collectedHeap. */ - Universe_collectedHeap = $_collectedHeap; - HeapWordSize = $HeapWordSize; + Universe_collectedHeap[pid()] = $_collectedHeap; + HeapWordSize[pid()] = $HeapWordSize; /** * The CodeCache class contains the static CodeHeap _heap that @@ -101,7 +101,7 @@ * the segment at index - N (which can be recursive if a block * contains more than 0xFE segments). */ - CodeCache_heap = $_heap; + CodeCache_heap[pid()] = $_heap; // Should really check arch of user space (for 32bit jvm on 64bit kernel). %( arch == "i386" %? @@ -127,7 +127,16 @@ HeapBlock_Header_size = 2 * ptr_size; oopDesc_size = 2 * ptr_size; - vm_inited = 1; + vm_inited[pid()] = 1; +} + +probe hotspot.vm_shutdown +{ + delete(Universe_methodKlassObj[pid()]); + delete(Universe_collectedHeap[pid()]); + delete(HeapWordSize[pid()]); + delete(CodeCache_heap[pid()]); + delete(vm_inited[pid()]); } function jstack:string() @@ -225,7 +234,7 @@ function jstack_call:string(max_depth:long, log_sig:long, log_native:long, print_frames:long) { - if (! vm_inited) + if (! vm_inited[pid()]) { frame = "<vm-not-inited>"; if (print_frames) @@ -238,23 +247,23 @@ } // Extract heap and code bounds. - heap_start = @cast(Universe_collectedHeap, + heap_start = @cast(Universe_collectedHeap[pid()], "CollectedHeap", "@ABS_SERVER_LIBJVM_SO@")->_reserved->_start; - heap_size = HeapWordSize * @cast(Universe_collectedHeap, + heap_size = HeapWordSize[pid()] * @cast(Universe_collectedHeap[pid()], "CollectedHeap", "@ABS_SERVER_LIBJVM_SO@")->_reserved->_word_size; heap_end = heap_start + heap_size; - CodeCache_low = @cast(CodeCache_heap, "CodeHeap", + CodeCache_low = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_memory->_low; - CodeCache_high = @cast(CodeCache_heap, "CodeHeap", + CodeCache_high = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_memory->_high; - CodeHeap_log2_segment_size = @cast(CodeCache_heap, + CodeHeap_log2_segment_size = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_log2_segment_size; - CodeCache_segmap_low = @cast(CodeCache_heap, + CodeCache_segmap_low = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_segmap->_low; @@ -335,7 +344,7 @@ { methodOopKlass = @cast(methodOopPtr, "methodOopDesc", "@ABS_SERVER_LIBJVM_SO@")->_metadata->_klass; - isMethodOop = (methodOopKlass == Universe_methodKlassObj); + isMethodOop = (methodOopKlass == Universe_methodKlassObj[pid()]); } if (isMethodOop) From mjw at redhat.com Wed Mar 14 03:07:00 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 14 Mar 2012 11:07:00 +0100 Subject: [PATCH 1 of 5] * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size In-Reply-To: <patchbomb.1331719619@springer.wildebeest.org> References: <patchbomb.1331719619@springer.wildebeest.org> Message-ID: <c354196308a582c0801a.1331719620@springer.wildebeest.org> # HG changeset patch # User Mark Wielaard <mark at klomp.org> # Date 1331652550 -3600 # Node ID c354196308a582c0801a30ea84f80d8d93450e9e # Parent b8d810f20366bdfecfa2354f2e15af7f92b97838 * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. The size of constantPoolOopDesc had changed, but it was hard coded. We use a trick now to calculate it from the DWARF data. Pretend we have an array at address zero and take address of second element and we have the size. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. + 2012-03-02 Xerxes R?nby <xerxes at zafena.se> Andrew Haley <aph at redhat.com> diff --git a/tapset/jstack.stp.in b/tapset/jstack.stp.in --- a/tapset/jstack.stp.in +++ b/tapset/jstack.stp.in @@ -1,5 +1,5 @@ /* jstack systemtap tapset, for extracting hotspot java backtraces. - Copyright (C) 2009, Red Hat Inc. + Copyright (C) 2009, 2012 Red Hat Inc. This file is part of IcedTea. @@ -110,17 +110,19 @@ pc_register = "eip"; ptr_size = 4; ptr_mask = 0xFFFFFFFF; - constantPoolOopDesc_size = 32; // Should use dwarf @size %: %(arch == "x86_64" %? sp_register = "rsp"; fp_register = "rbp"; pc_register = "rip"; ptr_size = 8; // XXX - might be probing 32-on-64 jvm. ptr_mask = 0xFFFFFFFFFFFFFFFF; - constantPoolOopDesc_size = 56; // Should use dwarf @size %: **ERROR** unknown architecture %) %) + // Pretend we have an array at address zero and take address of second + // element and we have the size. + constantPoolOopDesc_size = &@cast(0, "constantPoolOopDesc")[1]; + // Really should get from dwarf: @size("HeapBlock::Header"), @size("oopDesc") HeapBlock_Header_size = 2 * ptr_size; oopDesc_size = 2 * ptr_size; From mjw at redhat.com Wed Mar 14 03:07:02 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 14 Mar 2012 11:07:02 +0100 Subject: [PATCH 3 of 5] * tapset/jstack.stp.in: Use @var construct if available In-Reply-To: <patchbomb.1331719619@springer.wildebeest.org> References: <patchbomb.1331719619@springer.wildebeest.org> Message-ID: <131b26ec835a11d3f310.1331719622@springer.wildebeest.org> # HG changeset patch # User Mark Wielaard <mark at klomp.org> # Date 1331655890 -3600 # Node ID 131b26ec835a11d3f310fe42dd7caa5bb79463ea # Parent b6af0d77662190c10c18c07f43718740631827ac * tapset/jstack.stp.in: Use @var construct if available. Newer versions of systemtap (since 1.8) make it possible to use the @var construct if available to pick target variables from the right CU. Which is needed by newer DWARF/gcc versions which don't add a defining variable declaration to each CU anymore. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Use @var construct if available to pick + target variable from the right CU (needed by newer DWARF/gcc + versions). + 2012-03-13 Mark Wielaard <mjw at redhat.com> * tapset/jstack.stp.in: Index globals on pid() to support multiple diff --git a/tapset/jstack.stp.in b/tapset/jstack.stp.in --- a/tapset/jstack.stp.in +++ b/tapset/jstack.stp.in @@ -67,7 +67,9 @@ probe hotspot.vm_init_end { // The parent/type oop for a methodOop. - Universe_methodKlassObj[pid()] = $_methodKlassObj; + Universe_methodKlassObj[pid()] = %( systemtap_v >= "1.8" + %? @var("_methodKlassObj at universe.cpp") + %: $_methodKlassObj %); // For compressed oops. // Universe_heap_base = $_heap_base; @@ -82,7 +84,9 @@ * * Note that we access it through its "short name" _collectedHeap. */ - Universe_collectedHeap[pid()] = $_collectedHeap; + Universe_collectedHeap[pid()] = %( systemtap_v >= "1.8" + %? @var("_collectedHeap at universe.cpp") + %: $_collectedHeap %); HeapWordSize[pid()] = $HeapWordSize; /** @@ -101,7 +105,9 @@ * the segment at index - N (which can be recursive if a block * contains more than 0xFE segments). */ - CodeCache_heap[pid()] = $_heap; + CodeCache_heap[pid()] = %( systemtap_v >= "1.8" + %? @var("_heap at codeCache.cpp") + %: $_heap %); // Should really check arch of user space (for 32bit jvm on 64bit kernel). %( arch == "i386" %? From mjw at redhat.com Wed Mar 14 03:07:03 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 14 Mar 2012 11:07:03 +0100 Subject: [PATCH 4 of 5] * tapset/jstack.stp.in: Wrap heap accessors in try-catch block In-Reply-To: <patchbomb.1331719619@springer.wildebeest.org> References: <patchbomb.1331719619@springer.wildebeest.org> Message-ID: <1ab9b476f30279bd0367.1331719623@springer.wildebeest.org> # HG changeset patch # User Mark Wielaard <mark at klomp.org> # Date 1331677296 -3600 # Node ID 1ab9b476f30279bd0367d539f29b5591ae0e0e7e # Parent 131b26ec835a11d3f310fe42dd7caa5bb79463ea * tapset/jstack.stp.in: Wrap heap accessors in try-catch block. When we cannot read some part of the hotspot code heap catch that error and report the frame (address) without trying to decode it. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Wrap heap accessors in try-catch block to be + able to report unusual frames. + 2012-03-13 Mark Wielaard <mjw at redhat.com> * tapset/jstack.stp.in: Use @var construct if available to pick diff --git a/tapset/jstack.stp.in b/tapset/jstack.stp.in --- a/tapset/jstack.stp.in +++ b/tapset/jstack.stp.in @@ -309,129 +309,143 @@ } block = CodeCache_low + (segment << CodeHeap_log2_segment_size); - // Do some sanity checking. - used = @cast(block, "HeapBlock", - "@ABS_SERVER_LIBJVM_SO@")->_header->_used; - if (used != 1) + // Some of this is "fuzzy" so catch any read error in case we + // "guessed" wrong. + try { - // Something very odd has happened. - frame = sprintf("0x%x <?unused-code-block?>", pc); - blob_name = "unused"; - trust_fp = 0; - frame_size = 0; - } - else - { - // We don't like spaces in frames (makes it hard to return - // a space separated frame list). So make sure they are - // replaced by underscores when used in frames. - blob = block + HeapBlock_Header_size; - blob_name_ptr = @cast(blob, "CodeBlob", - "@ABS_SERVER_LIBJVM_SO@")->_name; - blob_name = ((blob_name_ptr == 0) ? "<unknown-code-blob>" - : user_string(blob_name_ptr)); - } - // For compiled code the methodOop is part of the code blob. - // For the interpreter (and other code blobs) it is on the - // stack relative to the frame pointer. - if (blob_name == "nmethod") - methodOopPtr = @cast(blob, "nmethod", - "@ABS_SERVER_LIBJVM_SO@")->_method - else - methodOopPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask - - // Start optimistic. A methodOop is only valid if it was - // heap allocated. And if the "type class" oop equals the - // Universe::methodKlassObj. - if (heap_start > methodOopPtr || methodOopPtr >= heap_end) - isMethodOop = 0 - else - { - methodOopKlass = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_metadata->_klass; - isMethodOop = (methodOopKlass == Universe_methodKlassObj[pid()]); - } - - if (isMethodOop) - { - // The java class is the holder of the constants (strings) - // that describe the method and signature. This constant pool - // contains symbolic information that describe the properties - // of the class. The indexes for methods and signaturates in - // the constant pool are symbolOopDescs that contain utf8 - // strings (plus lenghts). (We could also sanity check that - // the tag value is correct [CONSTANT_String = 8]). - // Note that the class name uses '/' instead of '.' as - // package name separator and that the method signature is - // encoded as a method descriptor string. Both of which we - // don't demangle here. - constantPoolOopDesc = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_constants; - constantPoolOop_base = constantPoolOopDesc + constantPoolOopDesc_size; - - klassPtr = @cast(constantPoolOopDesc, "constantPoolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_pool_holder; - klassSymbol = @cast(klassPtr + oopDesc_size, "Klass", - "@ABS_SERVER_LIBJVM_SO@")->_name; - klassName = &@cast(klassSymbol, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - klassLength = @cast(klassSymbol, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_length; - - methodIndex = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index; - methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)); - methodName = &@cast(methodOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - methodLength = @cast(methodOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_length; - - if (log_sig) + // Do some sanity checking. + used = @cast(block, "HeapBlock", + "@ABS_SERVER_LIBJVM_SO@")->_header->_used; + if (used != 1) { - sigIndex = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index; - sigOopDesc = user_long(constantPoolOop_base - + (sigIndex * ptr_size)); - sigName = &@cast(sigOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - sigLength = @cast(sigOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_length; - sig = user_string_n(sigName, sigLength); + // Something very odd has happened. + frame = sprintf("<unused_code_block at 0x%x>", pc); + blob_name = "unused"; + trust_fp = 0; + frame_size = 0; } else - sig = ""; + { + // We don't like spaces in frames (makes it hard to return + // a space separated frame list). So make sure they are + // replaced by underscores when used in frames. + blob = block + HeapBlock_Header_size; + blob_name_ptr = @cast(blob, "CodeBlob", + "@ABS_SERVER_LIBJVM_SO@")->_name; + blob_name = ((blob_name_ptr == 0) ? "<unknown-code-blob>" + : user_string(blob_name_ptr)); + } - code_name = (log_native - ? sprintf("<%s at 0x%x>", - str_replace(blob_name, " ", "_"), pc) - : ""); + // For compiled code the methodOop is part of the code blob. + // For the interpreter (and other code blobs) it is on the + // stack relative to the frame pointer. + if (blob_name == "nmethod") + methodOopPtr = @cast(blob, "nmethod", + "@ABS_SERVER_LIBJVM_SO@")->_method + else + methodOopPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask - frame = sprintf("%s.%s%s%s", - user_string_n(klassName, klassLength), - user_string_n(methodName, methodLength), - sig, code_name); + // Start optimistic. A methodOop is only valid if it was + // heap allocated. And if the "type class" oop equals the + // Universe::methodKlassObj. + if (heap_start > methodOopPtr || methodOopPtr >= heap_end) + isMethodOop = 0 + else + { + methodOopKlass = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_metadata->_klass; + isMethodOop = (methodOopKlass == Universe_methodKlassObj[pid()]); + } + + if (isMethodOop) + { + // The java class is the holder of the constants (strings) + // that describe the method and signature. This constant pool + // contains symbolic information that describe the properties + // of the class. The indexes for methods and signaturates in + // the constant pool are symbolOopDescs that contain utf8 + // strings (plus lenghts). (We could also sanity check that + // the tag value is correct [CONSTANT_String = 8]). + // Note that the class name uses '/' instead of '.' as + // package name separator and that the method signature is + // encoded as a method descriptor string. Both of which we + // don't demangle here. + constantPoolOopDesc = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_constants; + constantPoolOop_base = constantPoolOopDesc + constantPoolOopDesc_size; + + klassPtr = @cast(constantPoolOopDesc, "constantPoolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_pool_holder; + klassSymbol = @cast(klassPtr + oopDesc_size, "Klass", + "@ABS_SERVER_LIBJVM_SO@")->_name; + klassName = &@cast(klassSymbol, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_body[0]; + klassLength = @cast(klassSymbol, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_length; + + methodIndex = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index; + methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)); + methodName = &@cast(methodOopDesc, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_body[0]; + methodLength = @cast(methodOopDesc, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_length; + + if (log_sig) + { + sigIndex = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index; + sigOopDesc = user_long(constantPoolOop_base + + (sigIndex * ptr_size)); + sigName = &@cast(sigOopDesc, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_body[0]; + sigLength = @cast(sigOopDesc, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_length; + sig = user_string_n(sigName, sigLength); + } + else + sig = ""; + + code_name = (log_native + ? sprintf("<%s at 0x%x>", + str_replace(blob_name, " ", "_"), pc) + : ""); + + frame = sprintf("%s.%s%s%s", + user_string_n(klassName, klassLength), + user_string_n(methodName, methodLength), + sig, code_name); + } + else + { + // This is probably just an internal function, not a java + // method, just print the blob_name and continue. + // fp is probably still trusted. + if (log_native) + frame = sprintf("<%s at 0x%x>", + str_replace(blob_name, " ", "_"), pc); + } + + // We cannot trust the frame pointer of compiled methods. + // The server (c2) jit compiler uses the fp register. + // We do know the method frame size on the stack. But + // this seems to be useful only as a hint of the minimum + // stack being used. + if (blob_name == "nmethod") + { + trust_fp = 0; + frame_size = @cast(blob, "CodeBlob", + "@ABS_SERVER_LIBJVM_SO@")->_frame_size; + } + } - else + catch { - // This is probably just an internal function, not a java - // method, just print the blob_name and continue. - // fp is probably still trusted. - if (log_native) - frame = sprintf("<%s at 0x%x>", - str_replace(blob_name, " ", "_"), pc); - } - - // We cannot trust the frame pointer of compiled methods. - // The server (c2) jit compiler uses the fp register. - // We do know the method frame size on the stack. But - // this seems to be useful only as a hint of the minimum - // stack being used. - if (blob_name == "nmethod") - { + // Some assumption above totally failed and we got an address + // read error. Give up and mark frame pointer as suspect. + frame = sprintf("<unknown_frame at 0x%x>", pc); trust_fp = 0; - frame_size = @cast(blob, "CodeBlob", - "@ABS_SERVER_LIBJVM_SO@")->_frame_size; } } else From mjw at icedtea.classpath.org Wed Mar 14 03:13:01 2012 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Wed, 14 Mar 2012 10:13:01 +0000 Subject: /hg/icedtea6: 5 new changesets Message-ID: <hg.c354196308a5.1331719981.2873452341184383832@icedtea.classpath.org> changeset c354196308a5 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c354196308a5 author: Mark Wielaard <mark at klomp.org> date: Tue Mar 13 16:29:10 2012 +0100 * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. The size of constantPoolOopDesc had changed, but it was hard coded. We use a trick now to calculate it from the DWARF data. Pretend we have an array at address zero and take address of second element and we have the size. changeset b6af0d776621 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b6af0d776621 author: Mark Wielaard <mark at klomp.org> date: Tue Mar 13 16:41:32 2012 +0100 jstack.stp support multiple running hotspots by indexing globals by pid(). changeset 131b26ec835a in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=131b26ec835a author: Mark Wielaard <mark at klomp.org> date: Tue Mar 13 17:24:50 2012 +0100 * tapset/jstack.stp.in: Use @var construct if available. Newer versions of systemtap (since 1.8) make it possible to use the @var construct if available to pick target variables from the right CU. Which is needed by newer DWARF/gcc versions which don't add a defining variable declaration to each CU anymore. changeset 1ab9b476f302 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=1ab9b476f302 author: Mark Wielaard <mark at klomp.org> date: Tue Mar 13 23:21:36 2012 +0100 * tapset/jstack.stp.in: Wrap heap accessors in try-catch block. When we cannot read some part of the hotspot code heap catch that error and report the frame (address) without trying to decode it. changeset 6094e670ff67 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=6094e670ff67 author: Mark Wielaard <mark at klomp.org> date: Wed Mar 14 10:55:24 2012 +0100 * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. diffstat: ChangeLog | 24 ++++ Makefile.am | 1 + tapset/jstack.stp.in | 287 ++++++++++++++++++++++++++++---------------------- 3 files changed, 184 insertions(+), 128 deletions(-) diffs (420 lines): diff -r b8d810f20366 -r 6094e670ff67 ChangeLog --- a/ChangeLog Fri Mar 02 16:08:50 2012 +0100 +++ b/ChangeLog Wed Mar 14 10:55:24 2012 +0100 @@ -1,3 +1,27 @@ +2012-03-14 Mark Wielaard <mjw at redhat.com> + + * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. + +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Wrap heap accessors in try-catch block to be + able to report unusual frames. + +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Use @var construct if available to pick + target variable from the right CU (needed by newer DWARF/gcc + versions). + +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Index globals on pid() to support multiple + running hotspot jstacks at the same time. + +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. + 2012-03-02 Xerxes R??nby <xerxes at zafena.se> Andrew Haley <aph at redhat.com> diff -r b8d810f20366 -r 6094e670ff67 Makefile.am --- a/Makefile.am Fri Mar 02 16:08:50 2012 +0100 +++ b/Makefile.am Wed Mar 14 10:55:24 2012 +0100 @@ -643,6 +643,7 @@ autogen.sh \ tapset/hotspot.stp.in \ tapset/hotspot_jni.stp.in \ + tapset/jstack.stp.in \ scripts/jni_create_stap.c \ scripts/jni_desc \ rewriter/agpl-3.0.txt \ diff -r b8d810f20366 -r 6094e670ff67 tapset/jstack.stp.in --- a/tapset/jstack.stp.in Fri Mar 02 16:08:50 2012 +0100 +++ b/tapset/jstack.stp.in Wed Mar 14 10:55:24 2012 +0100 @@ -1,5 +1,5 @@ /* jstack systemtap tapset, for extracting hotspot java backtraces. - Copyright (C) 2009, Red Hat Inc. + Copyright (C) 2009, 2012 Red Hat Inc. This file is part of IcedTea. @@ -67,7 +67,9 @@ probe hotspot.vm_init_end { // The parent/type oop for a methodOop. - Universe_methodKlassObj = $_methodKlassObj; + Universe_methodKlassObj[pid()] = %( systemtap_v >= "1.8" + %? @var("_methodKlassObj at universe.cpp") + %: $_methodKlassObj %); // For compressed oops. // Universe_heap_base = $_heap_base; @@ -82,8 +84,10 @@ * * Note that we access it through its "short name" _collectedHeap. */ - Universe_collectedHeap = $_collectedHeap; - HeapWordSize = $HeapWordSize; + Universe_collectedHeap[pid()] = %( systemtap_v >= "1.8" + %? @var("_collectedHeap at universe.cpp") + %: $_collectedHeap %); + HeapWordSize[pid()] = $HeapWordSize; /** * The CodeCache class contains the static CodeHeap _heap that @@ -101,7 +105,9 @@ * the segment at index - N (which can be recursive if a block * contains more than 0xFE segments). */ - CodeCache_heap = $_heap; + CodeCache_heap[pid()] = %( systemtap_v >= "1.8" + %? @var("_heap at codeCache.cpp") + %: $_heap %); // Should really check arch of user space (for 32bit jvm on 64bit kernel). %( arch == "i386" %? @@ -110,22 +116,33 @@ pc_register = "eip"; ptr_size = 4; ptr_mask = 0xFFFFFFFF; - constantPoolOopDesc_size = 32; // Should use dwarf @size %: %(arch == "x86_64" %? sp_register = "rsp"; fp_register = "rbp"; pc_register = "rip"; ptr_size = 8; // XXX - might be probing 32-on-64 jvm. ptr_mask = 0xFFFFFFFFFFFFFFFF; - constantPoolOopDesc_size = 56; // Should use dwarf @size %: **ERROR** unknown architecture %) %) + // Pretend we have an array at address zero and take address of second + // element and we have the size. + constantPoolOopDesc_size = &@cast(0, "constantPoolOopDesc")[1]; + // Really should get from dwarf: @size("HeapBlock::Header"), @size("oopDesc") HeapBlock_Header_size = 2 * ptr_size; oopDesc_size = 2 * ptr_size; - vm_inited = 1; + vm_inited[pid()] = 1; +} + +probe hotspot.vm_shutdown +{ + delete(Universe_methodKlassObj[pid()]); + delete(Universe_collectedHeap[pid()]); + delete(HeapWordSize[pid()]); + delete(CodeCache_heap[pid()]); + delete(vm_inited[pid()]); } function jstack:string() @@ -223,7 +240,7 @@ function jstack_call:string(max_depth:long, log_sig:long, log_native:long, print_frames:long) { - if (! vm_inited) + if (! vm_inited[pid()]) { frame = "<vm-not-inited>"; if (print_frames) @@ -236,23 +253,23 @@ } // Extract heap and code bounds. - heap_start = @cast(Universe_collectedHeap, + heap_start = @cast(Universe_collectedHeap[pid()], "CollectedHeap", "@ABS_SERVER_LIBJVM_SO@")->_reserved->_start; - heap_size = HeapWordSize * @cast(Universe_collectedHeap, + heap_size = HeapWordSize[pid()] * @cast(Universe_collectedHeap[pid()], "CollectedHeap", "@ABS_SERVER_LIBJVM_SO@")->_reserved->_word_size; heap_end = heap_start + heap_size; - CodeCache_low = @cast(CodeCache_heap, "CodeHeap", + CodeCache_low = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_memory->_low; - CodeCache_high = @cast(CodeCache_heap, "CodeHeap", + CodeCache_high = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_memory->_high; - CodeHeap_log2_segment_size = @cast(CodeCache_heap, + CodeHeap_log2_segment_size = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_log2_segment_size; - CodeCache_segmap_low = @cast(CodeCache_heap, + CodeCache_segmap_low = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_segmap->_low; @@ -292,129 +309,143 @@ } block = CodeCache_low + (segment << CodeHeap_log2_segment_size); - // Do some sanity checking. - used = @cast(block, "HeapBlock", - "@ABS_SERVER_LIBJVM_SO@")->_header->_used; - if (used != 1) + // Some of this is "fuzzy" so catch any read error in case we + // "guessed" wrong. + try { - // Something very odd has happened. - frame = sprintf("0x%x <?unused-code-block?>", pc); - blob_name = "unused"; - trust_fp = 0; - frame_size = 0; - } - else - { - // We don't like spaces in frames (makes it hard to return - // a space separated frame list). So make sure they are - // replaced by underscores when used in frames. - blob = block + HeapBlock_Header_size; - blob_name_ptr = @cast(blob, "CodeBlob", - "@ABS_SERVER_LIBJVM_SO@")->_name; - blob_name = ((blob_name_ptr == 0) ? "<unknown-code-blob>" - : user_string(blob_name_ptr)); - } - // For compiled code the methodOop is part of the code blob. - // For the interpreter (and other code blobs) it is on the - // stack relative to the frame pointer. - if (blob_name == "nmethod") - methodOopPtr = @cast(blob, "nmethod", - "@ABS_SERVER_LIBJVM_SO@")->_method - else - methodOopPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask - - // Start optimistic. A methodOop is only valid if it was - // heap allocated. And if the "type class" oop equals the - // Universe::methodKlassObj. - if (heap_start > methodOopPtr || methodOopPtr >= heap_end) - isMethodOop = 0 - else - { - methodOopKlass = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_metadata->_klass; - isMethodOop = (methodOopKlass == Universe_methodKlassObj); - } - - if (isMethodOop) - { - // The java class is the holder of the constants (strings) - // that describe the method and signature. This constant pool - // contains symbolic information that describe the properties - // of the class. The indexes for methods and signaturates in - // the constant pool are symbolOopDescs that contain utf8 - // strings (plus lenghts). (We could also sanity check that - // the tag value is correct [CONSTANT_String = 8]). - // Note that the class name uses '/' instead of '.' as - // package name separator and that the method signature is - // encoded as a method descriptor string. Both of which we - // don't demangle here. - constantPoolOopDesc = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_constants; - constantPoolOop_base = constantPoolOopDesc + constantPoolOopDesc_size; - - klassPtr = @cast(constantPoolOopDesc, "constantPoolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_pool_holder; - klassSymbol = @cast(klassPtr + oopDesc_size, "Klass", - "@ABS_SERVER_LIBJVM_SO@")->_name; - klassName = &@cast(klassSymbol, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - klassLength = @cast(klassSymbol, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_length; - - methodIndex = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index; - methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)); - methodName = &@cast(methodOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - methodLength = @cast(methodOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_length; - - if (log_sig) + // Do some sanity checking. + used = @cast(block, "HeapBlock", + "@ABS_SERVER_LIBJVM_SO@")->_header->_used; + if (used != 1) { - sigIndex = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index; - sigOopDesc = user_long(constantPoolOop_base - + (sigIndex * ptr_size)); - sigName = &@cast(sigOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - sigLength = @cast(sigOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_length; - sig = user_string_n(sigName, sigLength); + // Something very odd has happened. + frame = sprintf("<unused_code_block at 0x%x>", pc); + blob_name = "unused"; + trust_fp = 0; + frame_size = 0; } else - sig = ""; + { + // We don't like spaces in frames (makes it hard to return + // a space separated frame list). So make sure they are + // replaced by underscores when used in frames. + blob = block + HeapBlock_Header_size; + blob_name_ptr = @cast(blob, "CodeBlob", + "@ABS_SERVER_LIBJVM_SO@")->_name; + blob_name = ((blob_name_ptr == 0) ? "<unknown-code-blob>" + : user_string(blob_name_ptr)); + } - code_name = (log_native - ? sprintf("<%s at 0x%x>", - str_replace(blob_name, " ", "_"), pc) - : ""); + // For compiled code the methodOop is part of the code blob. + // For the interpreter (and other code blobs) it is on the + // stack relative to the frame pointer. + if (blob_name == "nmethod") + methodOopPtr = @cast(blob, "nmethod", + "@ABS_SERVER_LIBJVM_SO@")->_method + else + methodOopPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask - frame = sprintf("%s.%s%s%s", - user_string_n(klassName, klassLength), - user_string_n(methodName, methodLength), - sig, code_name); + // Start optimistic. A methodOop is only valid if it was + // heap allocated. And if the "type class" oop equals the + // Universe::methodKlassObj. + if (heap_start > methodOopPtr || methodOopPtr >= heap_end) + isMethodOop = 0 + else + { + methodOopKlass = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_metadata->_klass; + isMethodOop = (methodOopKlass == Universe_methodKlassObj[pid()]); + } + + if (isMethodOop) + { + // The java class is the holder of the constants (strings) + // that describe the method and signature. This constant pool + // contains symbolic information that describe the properties + // of the class. The indexes for methods and signaturates in + // the constant pool are symbolOopDescs that contain utf8 + // strings (plus lenghts). (We could also sanity check that + // the tag value is correct [CONSTANT_String = 8]). + // Note that the class name uses '/' instead of '.' as + // package name separator and that the method signature is + // encoded as a method descriptor string. Both of which we + // don't demangle here. + constantPoolOopDesc = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_constants; + constantPoolOop_base = constantPoolOopDesc + constantPoolOopDesc_size; + + klassPtr = @cast(constantPoolOopDesc, "constantPoolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_pool_holder; + klassSymbol = @cast(klassPtr + oopDesc_size, "Klass", + "@ABS_SERVER_LIBJVM_SO@")->_name; + klassName = &@cast(klassSymbol, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_body[0]; + klassLength = @cast(klassSymbol, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_length; + + methodIndex = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index; + methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)); + methodName = &@cast(methodOopDesc, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_body[0]; + methodLength = @cast(methodOopDesc, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_length; + + if (log_sig) + { + sigIndex = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index; + sigOopDesc = user_long(constantPoolOop_base + + (sigIndex * ptr_size)); + sigName = &@cast(sigOopDesc, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_body[0]; + sigLength = @cast(sigOopDesc, "symbolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_length; + sig = user_string_n(sigName, sigLength); + } + else + sig = ""; + + code_name = (log_native + ? sprintf("<%s at 0x%x>", + str_replace(blob_name, " ", "_"), pc) + : ""); + + frame = sprintf("%s.%s%s%s", + user_string_n(klassName, klassLength), + user_string_n(methodName, methodLength), + sig, code_name); + } + else + { + // This is probably just an internal function, not a java + // method, just print the blob_name and continue. + // fp is probably still trusted. + if (log_native) + frame = sprintf("<%s at 0x%x>", + str_replace(blob_name, " ", "_"), pc); + } + + // We cannot trust the frame pointer of compiled methods. + // The server (c2) jit compiler uses the fp register. + // We do know the method frame size on the stack. But + // this seems to be useful only as a hint of the minimum + // stack being used. + if (blob_name == "nmethod") + { + trust_fp = 0; + frame_size = @cast(blob, "CodeBlob", + "@ABS_SERVER_LIBJVM_SO@")->_frame_size; + } + } - else + catch { - // This is probably just an internal function, not a java - // method, just print the blob_name and continue. - // fp is probably still trusted. - if (log_native) - frame = sprintf("<%s at 0x%x>", - str_replace(blob_name, " ", "_"), pc); - } - - // We cannot trust the frame pointer of compiled methods. - // The server (c2) jit compiler uses the fp register. - // We do know the method frame size on the stack. But - // this seems to be useful only as a hint of the minimum - // stack being used. - if (blob_name == "nmethod") - { + // Some assumption above totally failed and we got an address + // read error. Give up and mark frame pointer as suspect. + frame = sprintf("<unknown_frame at 0x%x>", pc); trust_fp = 0; - frame_size = @cast(blob, "CodeBlob", - "@ABS_SERVER_LIBJVM_SO@")->_frame_size; } } else From aph at redhat.com Wed Mar 14 03:24:21 2012 From: aph at redhat.com (Andrew Haley) Date: Wed, 14 Mar 2012 10:24:21 +0000 Subject: [PATCH 0 of 5] Some jstack fixes and improvements In-Reply-To: <patchbomb.1331719619@springer.wildebeest.org> References: <patchbomb.1331719619@springer.wildebeest.org> Message-ID: <4F6071D5.9050407@redhat.com> On 03/14/2012 10:06 AM, Mark Wielaard wrote: > Here are some fixes and enhancements to the systemtap jstack() support. > I split them out in separate patches to make it easier to see what > changed (one of them is basically a complete reindent with a try-catch > wrapped around the body of the jstack function). These patches make > jstack() more reliable by having less hard coded constants, and better > error recovery if something still did go wrong. One patch relies on > an unreleased Systemtap 1.8 feature (@var) which adds support for > when hotspot is compiled with gcc 4.6+, it checks the systemtap version > installed to fall back on the old method (using $var) if necessary. These look fine. Are there any unit tests for this stuff? Andrew. From ChrisPhi at redhat.com Wed Mar 14 03:27:32 2012 From: ChrisPhi at redhat.com (Chris Phillips) Date: Wed, 14 Mar 2012 06:27:32 -0400 Subject: ARM: More intrinsics In-Reply-To: <4F510C5B.9090207@redhat.com> References: <4F510C5B.9090207@redhat.com> Message-ID: <4F607294.6000103@RedHat.Com> Hi Looks OK to me, but I'm still at the stage of having to go and read the instruction def'n for a lot of arm stuff, so my review is proceeding very slowly. Cheers? Chris On 02/03/12 01:07 PM, Andrew Haley wrote: > I've been adding _compareAndSwapInt and _compareAndSwapLong to the set > of intrinsics. It's never that easy, of course, and while I was doing > that I found a bug in the code for abs that would cause locals to be > corrupted. > > I also realized that if the JIT does long atomic swaps, so must the > interpreter, so this patch also provides a long atomic swap for Zero > on ARM. It'll be used even if you don't have the JIT or the asm > interpreter. There isn't a kernel builtin we can use to do 64-bit > swaps because the operation is only provided by the very most recent > Linux kernels. This means we can't use it, really. > > I also reorganized handle_special_method() a bit so that it uses VM > intrinsic_id. This provides the opportunity for many more intrinsics > than Interpreter::method_kind(). > > Andrew. > > > 2012-03-02 Andrew Haley<aph at redhat.com> > > * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: New file. > * patches/arm.patch (void get_processor_features): New function > that enables compareAndSwap on jlongs. > (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New > function. > (atomic_linux_zero.inline.hpp: Atomic::store): Use > arm_val_compare_and_swap. > > * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) > (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT > encodings. > (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. > (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. > (handle_special_method): Use intrinsic_id instead of method_kind. > Add handlers for _compareAndSwapInt and _compareAndSwapLong. > (Thumb2_codegen): Call handle_special_method() for invokevirtual. > Pass stackdepth to handle_special_method(). > > diff -r 01123e3102cc arm_port/hotspot/src/cpu/zero/vm/arm_cas.S > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/arm_port/hotspot/src/cpu/zero/vm/arm_cas.S Fri Mar 02 17:52:08 2012 +0000 > @@ -0,0 +1,30 @@ > +#ifdef __ARM_ARCH_7A__ > +@ jlong > +@ arm_val_compare_and_swap_long(volatile void *ptr, > +@ jlong oldval, > +@ jlong newval) { > + .pushsection .text > + .global arm_val_compare_and_swap_long > +#ifdef __thumb__ > + .thumb_func > +#endif > + .type arm_val_compare_and_swap_long, %function > +arm_val_compare_and_swap_long: > + stmfd sp!, {r4, r5, r6, r7} > + ldrd r4, [sp, #16] > + dmb sy > +0: ldrexd r6, [r0] > + cmp r6, r2 > + it eq > + cmpeq r7, r3 > + bne 1f > + strexd r1, r4, [r0] > + cmp r1, #0 > + bne 0b > + dmb sy > +1: mov r0, r6 > + mov r1, r7 > + ldmfd sp!, {r4, r5, r6, r7} > + bx lr > + .popsection > +#endif // __ARM_ARCH_7A__ > diff -r 01123e3102cc arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp > --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Feb 22 15:36:29 2012 +0000 > +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Mar 02 17:52:08 2012 +0000 > @@ -3042,6 +3042,10 @@ > #define T_IT(cond, mask) (0xbf00 | (conds[cond]<< 4) | (mask)) > > #define IT_MASK_T 8 > +#define IT_MASK_TE 0x14 > +#define IT_MASK_TT 0x1e > +#define IT_MASK_TTT 0x1e > +#define IT_MASK_TEE 0x12 > > #define PATCH(loc) do { \ > unsigned oldidx = codebuf->idx; \ > @@ -4233,7 +4237,8 @@ > eor_imm(jinfo->codebuf, r_result, r, 0x80000000); > } > > -void Thumb2_dNeg(Thumb2_Info *jinfo, u32 opc) > +// arm_op is either DP_EOR (for dnegate) or DP_BIC (for dabs) > +static void Thumb2_dUnaryOp(Thumb2_Info *jinfo, u32 arm_op) > { > Thumb2_Stack *jstack = jinfo->jstack; > unsigned r_lo, r_hi, r_res_lo, r_res_hi; > @@ -4248,7 +4253,17 @@ > JASSERT(r_res_lo != r_res_hi, "oops"); > JASSERT(r_res_lo != r_hi, "r_res_lo != r_hi"); > mov_reg(jinfo->codebuf, r_res_lo, r_lo); > - eor_imm(jinfo->codebuf, r_res_hi, r_hi, 0x80000000); > + dop_imm(jinfo->codebuf, arm_op, r_res_hi, r_hi, 0x80000000); > +} > + > +void Thumb2_dNeg(Thumb2_Info *jinfo) > +{ > + Thumb2_dUnaryOp(jinfo, DP_EOR); > +} > + > +void Thumb2_dAbs(Thumb2_Info *jinfo) > +{ > + Thumb2_dUnaryOp(jinfo, DP_BIC); > } > > void Thumb2_lOp(Thumb2_Info *jinfo, u32 opc) > @@ -5008,42 +5023,34 @@ > > // Expand a call to a "special" method. These are usually inlines of > // java.lang.Math methods. Return true if the inlining succeeded. > -static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo) { > +static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo, > + unsigned stackdepth) { > + Thumb2_Stack *jstack = jinfo->jstack; > + CodeBuf *codebuf = jinfo->codebuf; > + > + const char *entry_name; > + > + switch (callee->intrinsic_id()) { > + case vmIntrinsics::_dabs: > + { > + Thumb2_dAbs(jinfo); > + return true; > + } > + > #ifdef __ARM_PCS_VFP > - Thumb2_Stack *jstack = jinfo->jstack; > - > - const char *entry_name; > - > - unsigned loc1 = 0; > - > - switch (Interpreter::method_kind(callee)) { > - case Interpreter::java_lang_math_abs: > - { > - unsigned r_lo, r_hi; > - > - Thumb2_Fill(jinfo, 2); > - r_lo = POP(jstack); > - r_hi = POP(jstack); > - dop_imm_s(jinfo->codebuf, DP_BIC, r_hi, r_hi, 0x80000000, 0); > - PUSH(jstack, r_hi); > - PUSH(jstack, r_lo); > - > - return true; > - } > - > - case Interpreter::java_lang_math_sin: > + case vmIntrinsics::_dsin: > entry_name = "Java_java_lang_StrictMath_sin"; > break; > > - case Interpreter::java_lang_math_cos: > + case vmIntrinsics::_dcos: > entry_name = "Java_java_lang_StrictMath_cos"; > break; > > - case Interpreter::java_lang_math_tan: > + case vmIntrinsics::_dtan: > entry_name = "Java_java_lang_StrictMath_tan"; > break; > > - case Interpreter::java_lang_math_sqrt: > + case vmIntrinsics::_dsqrt: > { > void *entry_point = dlsym(NULL, "Java_java_lang_StrictMath_sqrt"); > if (! entry_point) > @@ -5077,13 +5084,104 @@ > return true; > } > > - case Interpreter::java_lang_math_log: > + case vmIntrinsics::_dlog: > entry_name = "Java_java_lang_StrictMath_log"; > break; > > - case Interpreter::java_lang_math_log10: > + case vmIntrinsics::_dlog10: > entry_name = "Java_java_lang_StrictMath_log10"; > break; > +#endif // __ARM_PCS_VFP > + > + case vmIntrinsics::_compareAndSwapInt: > + { > + Thumb2_Fill(jinfo, 4); > + > + unsigned update = POP(jstack); > + unsigned expect = POP(jstack); > + unsigned offset = POP(jstack); > + POP(jstack); // Actually the high part of the offset > + > + // unsigned object = POP(jstack); > + // unsigned unsafe = POP(jstack); // Initially an instance of java.lang.Unsafe > + > + Thumb2_Flush(jinfo); > + // Get ourself a result reg that's not one of the inputs > + unsigned exclude = (1<<update)|(1<<expect)|(1<<offset); > + unsigned result = JSTACK_PREFER(jstack, ~exclude); > + > + ldm(codebuf, (1<<ARM_IP)|(1<<ARM_LR), Rstack, POP_FD, 1); // Object addr > + add_reg(codebuf, result, offset, ARM_IP); // result now points to word > + ldr_imm(codebuf, ARM_LR, ARM_LR, 0, 0, 0); // Security check > + > + fullBarrier(codebuf); > + > + int retry = out_loc(codebuf); > + ldrex_imm(codebuf, ARM_LR, result, 0); > + cmp_reg(codebuf, ARM_LR, expect); > + int loc_failed = forward_16(codebuf); > + strex_imm(codebuf, ARM_IP, update, result, 0); > + cmp_imm(codebuf, ARM_IP, 0); > + branch(codebuf, COND_NE, retry); > + bcc_patch(jinfo->codebuf, COND_NE, loc_failed); > + > + it(codebuf, COND_NE, IT_MASK_TEE); > + mov_imm(codebuf, result, 0); > + mov_imm(codebuf, result, 1); > + fullBarrier(codebuf); > + > + PUSH(jstack, result); > + } > + return true; > + > + case vmIntrinsics::_compareAndSwapLong: > + { > + Thumb2_Fill(jinfo, 4); > + > + unsigned update_lo = POP(jstack); > + unsigned update_hi = POP(jstack); > + unsigned expect_lo = POP(jstack); > + unsigned expect_hi = POP(jstack); > + > + Thumb2_Flush(jinfo); > + Thumb2_save_locals(jinfo, stackdepth - 4); // 4 args popped above > + > + // instance of java.lang.Unsafe: > + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 3 * wordSize, 1, 0); > + ldr_imm(codebuf, ARM_LR, ARM_LR, 0, 0, 0); // Security check > + > + // Object: > + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 2 * wordSize, 1, 0); > + // Offset: > + ldr_imm(jinfo->codebuf, ARM_IP, Rstack, 0 * wordSize, 1, 0); > + add_reg(codebuf, ARM_LR, ARM_LR, ARM_IP); // ARM_LR now points to word > + > + fullBarrier(codebuf); > + > + int retry = out_loc(codebuf); > + ldrexd(codebuf, JAZ_V2, JAZ_V3, ARM_LR); > + cmp_reg(codebuf, JAZ_V2, expect_lo); > + it(jinfo->codebuf, COND_EQ, IT_MASK_T); > + cmp_reg(codebuf, JAZ_V3, expect_hi); > + > + int loc_failed = forward_16(codebuf); > + strexd(codebuf, JAZ_V1, update_lo, update_hi, ARM_LR); > + cmp_imm(codebuf, JAZ_V1, 0); > + branch(codebuf, COND_NE, retry); > + bcc_patch(jinfo->codebuf, COND_NE, loc_failed); > + > + unsigned result = JSTACK_REG(jinfo->jstack); > + > + it(codebuf, COND_NE, IT_MASK_TEE); > + mov_imm(codebuf, result, 0); > + mov_imm(codebuf, result, 1); > + fullBarrier(codebuf); > + > + Thumb2_restore_locals(jinfo, stackdepth - 4); // 4 args popped above > + add_imm(codebuf, Rstack, Rstack, 4 * wordSize); > + PUSH(jstack, result); > + } > + return true; > > default: > return false; > @@ -5093,8 +5191,6 @@ > if (! entry_point) > return false; > > - unsigned r_lo, r_hi, r_res_lo, r_res_hi; > - > jstack_to_vfp(jinfo, VFP_D0); > // FIXME: The JNI StrictMath routines don't use the JNIEnv *env > // parameter, so it's arguably pointless to pass it here. > @@ -5103,9 +5199,6 @@ > vfp_to_jstack(jinfo, VFP_D0); > > return true; > -#else > - return false; > -#endif // __ARM_PCS_VFP > } > > void Thumb2_codegen(Thumb2_Info *jinfo, unsigned start) > @@ -5766,7 +5859,7 @@ > break; > > case opc_dneg: > - Thumb2_dNeg(jinfo, opcode); > + Thumb2_dNeg(jinfo); > break; > > case opc_i2l: { > @@ -6177,7 +6270,7 @@ > > callee = (methodOop)cache->f1(); > > - if (handle_special_method(callee, jinfo)) > + if (handle_special_method(callee, jinfo, stackdepth)) > break; > > if (callee->is_accessor()) { > @@ -6302,6 +6395,10 @@ > > if (cache->is_vfinal()) { > methodOop callee = (methodOop)cache->f2(); > + > + if (handle_special_method(callee, jinfo, stackdepth)) > + break; > + > if (callee->is_accessor()) { > u1 *code = callee->code_base(); > int index = GET_NATIVE_U2(&code[2]); > @@ -7857,7 +7954,7 @@ > > #define DEBUG_REGSET ((1<<ARM_R0)|(1<<ARM_R1)|(1<<ARM_R2)|(1<<ARM_R3)|(1<<ARM_IP)) > > -// DEBUG_METHODENTRY > +// DEBUG_METHDENTRY > handlers[H_DEBUG_METHODENTRY] = out_pos(&codebuf); > stm(&codebuf, DEBUG_REGSET | (1<<ARM_LR), ARM_SP, PUSH_FD, 1); > mov_reg(&codebuf, ARM_R2, ARM_R0); > diff -r 01123e3102cc patches/arm.patch > --- a/patches/arm.patch Wed Feb 22 15:36:29 2012 +0000 > +++ b/patches/arm.patch Fri Mar 02 17:52:08 2012 +0000 > @@ -230,3 +230,57 @@ > -a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \))) > endef > > +diff -r -uw icedtea6.pristine/openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.hpp icedtea6/openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.hpp > +--- openjdk.orig/hotspot/src/cpu/zero/vm/vm_version_zero.hpp 2011-11-14 22:07:31.000000000 +0000 > ++++ openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.hpp 2012-02-29 17:27:11.472996427 +0000 > +@@ -30,7 +30,18 @@ > + #include "runtime/vm_version.hpp" > + > + class VM_Version : public Abstract_VM_Version { > ++ > + public: > ++ static void get_processor_features() { > ++#ifdef __ARM_ARCH_7A__ > ++ Abstract_VM_Version::_supports_cx8 = true; > ++#endif > ++ } > ++ > ++ static void initialize() { > ++ get_processor_features(); > ++ } > ++ > + static const char* cpu_features() { > + return ""; > + } > +diff -r -uw openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp > +--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp 2011-11-14 22:07:32.000000000 +0000 > ++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp 2012-02-29 16:57:28.412360724 +0000 > +@@ -160,6 +160,16 @@ > + return prev; > + } > + } > ++ > ++#ifdef __ARM_ARCH_7A__ > ++/* Perform an atomic compare and swap: if the current value of `*PTR' > ++ is OLDVAL, then write NEWVAL into `*PTR'. Return the contents of > ++ `*PTR' before the operation.*/ > ++extern "C" jlong arm_val_compare_and_swap_long(volatile void *ptr, > ++ jlong oldval, > ++ jlong newval); > ++ > ++#endif // __ARM_ARCH_7A__ > + #endif // ARM > + > + inline void Atomic::store(jint store_value, volatile jint* dest) { > +@@ -274,7 +322,11 @@ > + volatile jlong* dest, > + jlong compare_value) { > + > ++#ifndef __ARM_ARCH_7A__ > + return __sync_val_compare_and_swap(dest, compare_value, exchange_value); > ++#else > ++ return arm_val_compare_and_swap_long(dest, compare_value, exchange_value); > ++#endif > + } > + > + inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value, From mjw at redhat.com Wed Mar 14 03:43:42 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 14 Mar 2012 11:43:42 +0100 Subject: [PATCH 0 of 5] Some jstack fixes and improvements In-Reply-To: <4F6071D5.9050407@redhat.com> References: <patchbomb.1331719619@springer.wildebeest.org> <4F6071D5.9050407@redhat.com> Message-ID: <1331721822.22814.2.camel@springer.wildebeest.org> On Wed, 2012-03-14 at 10:24 +0000, Andrew Haley wrote: > Are there any unit tests for this stuff? *cough* There actually a couple written some time ago by Jon. But never automated/integrated. It is next on my list after making sure no patch is left behind for IcedTea7. It would have caught the breakage of the constantPoolOopDesc size change earlier... From aph at redhat.com Wed Mar 14 03:49:20 2012 From: aph at redhat.com (Andrew Haley) Date: Wed, 14 Mar 2012 10:49:20 +0000 Subject: [PATCH 0 of 5] Some jstack fixes and improvements In-Reply-To: <1331721822.22814.2.camel@springer.wildebeest.org> References: <patchbomb.1331719619@springer.wildebeest.org> <4F6071D5.9050407@redhat.com> <1331721822.22814.2.camel@springer.wildebeest.org> Message-ID: <4F6077B0.2010202@redhat.com> On 03/14/2012 10:43 AM, Mark Wielaard wrote: > On Wed, 2012-03-14 at 10:24 +0000, Andrew Haley wrote: >> Are there any unit tests for this stuff? > > *cough* There actually a couple written some time ago by Jon. But never > automated/integrated. It is next on my list after making sure no patch > is left behind for IcedTea7. It would have caught the breakage of the > constantPoolOopDesc size change earlier... Yes please. Important. Andrew. From ptisnovs at icedtea.classpath.org Wed Mar 14 03:52:25 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 14 Mar 2012 10:52:25 +0000 Subject: /hg/gfx-test: 2012-03-14 Pavel Tisnovsky <ptisnovs@redhat.com> Message-ID: <hg.cd8e6f958548.1331722345.-6248649288953172555@icedtea.classpath.org> changeset cd8e6f958548 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=cd8e6f958548 author: Pavel Tisnovsky <ptisnovs at redhat.com> date: Wed Mar 14 11:54:57 2012 +0100 2012-03-14 Pavel Tisnovsky <ptisnovs at redhat.com> * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: Added plenty of new tests. * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: Make the JavaDoc more clear. * src/org/gfxtest/framework/CommonClippingOperations.java: Changed concave polygon shape for better testing. diffstat: ChangeLog | 9 + src/org/gfxtest/framework/CommonClippingOperations.java | 7 +- src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java | 513 +++++++++- src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java | 82 +- 4 files changed, 566 insertions(+), 45 deletions(-) diffs (truncated from 928 to 500 lines): diff -r 5d9ba86b59eb -r cd8e6f958548 ChangeLog --- a/ChangeLog Tue Mar 13 11:51:41 2012 +0100 +++ b/ChangeLog Wed Mar 14 11:54:57 2012 +0100 @@ -1,3 +1,12 @@ +2012-03-14 Pavel Tisnovsky <ptisnovs at redhat.com> + + * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: + Added plenty of new tests. + * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: + Make the JavaDoc more clear. + * src/org/gfxtest/framework/CommonClippingOperations.java: + Changed concave polygon shape for better testing. + 2012-03-13 Pavel Tisnovsky <ptisnovs at redhat.com> * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: diff -r 5d9ba86b59eb -r cd8e6f958548 src/org/gfxtest/framework/CommonClippingOperations.java --- a/src/org/gfxtest/framework/CommonClippingOperations.java Tue Mar 13 11:51:41 2012 +0100 +++ b/src/org/gfxtest/framework/CommonClippingOperations.java Wed Mar 14 11:54:57 2012 +0100 @@ -387,8 +387,8 @@ * * <pre> * ______ - * \ / - * \ / + * \ / + * \ / * / \ * /____\ * </pre> @@ -405,9 +405,10 @@ // add five vertexes polygon.addPoint(1, 1); polygon.addPoint(width, 1); + polygon.addPoint(10 + (width >> 1), height >> 1); polygon.addPoint(width, height); polygon.addPoint(1, height); - polygon.addPoint(width >> 1, height >> 1); + polygon.addPoint((width >> 1) - 10, height >> 1); return polygon; } diff -r 5d9ba86b59eb -r cd8e6f958548 src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Tue Mar 13 11:51:41 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Wed Mar 14 11:54:57 2012 +0100 @@ -40,7 +40,16 @@ package org.gfxtest.testsuites; +import java.awt.Graphics2D; + + + +import org.gfxtest.framework.CommonClippingOperations; +import org.gfxtest.framework.CommonRenderingStyles; +import org.gfxtest.framework.CommonShapesRenderer; import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.TestImage; +import org.gfxtest.framework.TestResult; import org.gfxtest.framework.annotations.GraphicsPrimitive; import org.gfxtest.framework.annotations.GraphicsPrimitives; import org.gfxtest.framework.annotations.TestType; @@ -61,7 +70,509 @@ @Zoom(1) public class ClippingCircleByConcavePolygonalShape extends GfxTest { - + /** + * Prepare canvas for the rendering. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void basicSetupForRendering(TestImage image, Graphics2D graphics2d) + { + // create clip area which is constructed from the concave polygonal shape + CommonClippingOperations.createClipUsingConcavePolygonalShape(image, graphics2d); + } + + /** + * Draw empty circle clipped by a concave polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void drawEmptyCircleClippedByPolygonalShape(TestImage image, Graphics2D graphics2d) + { + // prepare canvas for the rendering + basicSetupForRendering(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // draw the area + CommonShapesRenderer.drawCircle(image, graphics2d); + } + + /** + * Draw filled circle clipped by a concave polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void drawFilledCircleClippedByPolygonalShape(TestImage image, Graphics2D graphics2d) + { + // prepare canvas for the rendering + basicSetupForRendering(image, graphics2d); + // fill the area + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a concave polygonal shape. Circle is drawn using alpha + * paint with red color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintRed(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillRedColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConcavePolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a concave polygonal shape. Circle is drawn using alpha + * paint with green color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintGreen(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillGreenColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConcavePolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a concave polygonal shape. Circle is drawn using alpha + * paint with blue color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintBlue(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillBlueColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConcavePolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using extra wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeExtraWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using zero wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeZeroWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using color paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeColorPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setFillColor(graphics2d); + // create clip shape and fill the shape + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with red color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 0); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with red color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 25); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with red color at 50% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed050(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 50% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 50); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with red color at 75% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed075(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 75% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 75); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with red color at 100% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed100(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 100% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 100); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with green color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 0); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with green color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 25); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with green color at 50% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen050(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 50% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 50); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with green color at 75% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen075(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 75% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 75); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with green color at 100% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen100(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 100% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 100); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with blue color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintBlue000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave concave polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintBlue(image, graphics2d, 0); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is From jvanek at redhat.com Wed Mar 14 05:40:46 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 14 Mar 2012 13:40:46 +0100 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F5F7A16.6030402@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> Message-ID: <4F6091CE.7010707@redhat.com> TitleVendorParserOn 03/13/2012 05:47 PM, Danesh Dadachanji wrote: > On 12/03/12 12:21 PM, Danesh Dadachanji wrote: >> >> >> On 12/03/12 07:26 AM, Jiri Vanek wrote: >>> On 03/12/2012 12:22 PM, Pavel Tisnovsky wrote: >>>> Jiri Vanek wrote: >>>>> On 03/12/2012 11:50 AM, Pavel Tisnovsky wrote: >>>>>> Jiri Vanek wrote: >>>>>>> On 03/09/2012 09:32 PM, Danesh Dadachanji wrote: >>>>>>>> On 11/01/12 02:18 PM, Danesh Dadachanji wrote: >>>>>>>>> On 11/01/12 11:31 AM, Jiri Vanek wrote: >>>>>>>>>> On 01/06/2012 08:08 PM, Danesh Dadachanji wrote: >>>>>>>>>>> On 06/01/12 12:37 PM, Jiri Vanek wrote: >>>>>>>>>>>> On 01/06/2012 05:44 PM, Danesh Dadachanji wrote: >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> >>>>>>>>>>>>> Looking at the plugin docs[1],<title> and<vendor> are required >>>>> snip >>>>>>>> >>>>>>>> diff --git a/netx/net/sourceforge/jnlp/Parser.java >>>>>>>> b/netx/net/sourceforge/jnlp/Parser.java >>>>>>>> --- a/netx/net/sourceforge/jnlp/Parser.java >>>>>>>> +++ b/netx/net/sourceforge/jnlp/Parser.java >>>>>>>> @@ -504,6 +504,11 @@ class Parser { >>>>>>>> child = child.getNextSibling(); >>>>>>>> } >>>>>>>> >>>>>>>> + if (info.getTitle() == null || info.getTitle().equals("")) >>>>>>>> + throw new ParseException(R("PNoTitleElement")); >>>>>>>> + if (info.getVendor() == null || info.getVendor().equals("")) >>>>>>>> + throw new ParseException(R("PNoVendorElement")); >>>>>>>> + >>>>>>>> return info; >>>>>>>> } >>>>>>>> >>>>>>> I would suggest "".equals(info.get*().trim()) instead of >>>>>>> info.get*().equals("") >>>>>>> Usage of trim i straight forward and I think it is necessary. >>>>>>> The "".equals instead of string.equals("") really just minor nitpick >>>>>>> :) "".equals(null) returns false instead of NUllPointerException. >>>>>>> I do >>>>>>> not believe trim() will ever return null, but it is good habit (IMHO >>>>>>> O:) ) >>>>>>> If no need for trim will be here, then just "".equals(info.get*()) >>>>>>> will >>>>>>> be enough instead of both conditions. >> >> I would still need 2 conditions because I want the if to pass when >> info.get*() is null. That check is not to look out for a NPE, it's the >> opposite. If it's null, the tags aren't there! So I'd still need both. >> >> Also, I remember thinking about this case before posting the patch. It >> already trims it before saving vendor into the info var. =) However I >> think you're right, it should still be there in case somewhere down the >> line, the trim before saving is removed. >> >>>>>> >>>>>> String.trim() does not return null so you don't need to worry >>>>> Yy - as I have already said ;) but STILL it is good habit O:) >>>>>> >>>>>> Then you could use predicate isEmpty() which is IMHO more readable >>>>>> than equals("") (since 1.6) >>>>> isEmpty do not trim :((( => info.get*() == null || >>>>> info.get*().trim().isEmpty() ... :D (if we can live with method which >>>>> appeared in 1.6) >>>> Yeah I mean info.get*().trim().isEmpty() >>>> (btw I think we could end with this basic stuff ;-) >>>>> >>>>> But this leads me to question - which javaSE version is icedtea-web >>>>> comaptible with and which _should_ be compatible with? >>>> >>>> I assume it should be compatible with 1.6 and 1.7 >>> Yap, I guess the same... Poor mainframes with ibm 1.4.2 are out of luck >>> again ;) >>>> (and I'm pretty sure that >>>> the code already contains some 1.6-related code ;-) which could be easy >>> Although i do not KNOW about it I BELIEVE to it too !-) ..and I think >>> there is no need to keep older javas supported anyway... >>>> to check using --source and --target) >>> Ah Yah! >> >> I think it's safe to use this here. I will definitely use isEmpty() then! >> >> Updated patch coming shortly. Thanks again for all the comments! > > I ended up using get*() == null || get*().trim().isEmpty() for the condition. As mentioned before, null needs to be checked against because this implies the tag is missing altogether. If the trimmed return is empty, that means the tag was there but contained 0 or more white spaces. I figured having trim here would be a good check in case Parser was ever changed. Currently, the values are trimmed and then stored but if this changes in the future, this will catch it. > > I've added 2 more tests, one with an information tag missing and another with both, title and vendor tags missing. > > Again, this test will not work without the LaunchHandler patch in review[1], however I've used String.matches() to account for any implementation that results in [1]'s outcome. > > Yap. I think this can go in now with minor fix - In changelog you have mentioned + * tests/jnlp_tests/simple/InformationTitleVendorParser/srcs/TitleVendorParser.java, but this one is not going in (as you are using simpletest1 and the file is not present in patch), Ensure also if this InformationTitleVendorParser/srcs dir is really empty in your testing builds (if isn't ensure all is working when emptied). btw - spaces in changelog instead of tabs, although I suspect email clients to did so, please check before push. Thanx for test and after minor issue being fixed, please push. J. > ChangeLog: > +2012-03-13 Danesh Dadachanji <ddadacha at redhat.com> > + > + Applications using JNLP files without a title or vendor section > + still run, despite them being required elements. > + * netx/net/sourceforge/jnlp/Parser.java: > + (getInformationDesc): If title or vendor are not found in info, > + a new ParseException is thrown. > + * netx/net/sourceforge/jnlp/resources/Messages.properties: > + Added PNoTitleElement and PNoVendorElement > + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp, > + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp, > + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp, > + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp, > + * tests/jnlp_tests/simple/InformationTitleVendorParser/srcs/TitleVendorParser.java, > + * tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/TitleVendorParserTest.java: > + New test that runs JNLPs in a combination of missing information, title > + and vendor tags, checking for the appropriate exceptions. > + > > Cheers, > Danesh > > [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017666.html From jvanek at redhat.com Wed Mar 14 05:45:47 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 14 Mar 2012 13:45:47 +0100 Subject: [RFC][icedtea-web] Patch to enable compilation of icedtea-web on both xulrunners apis In-Reply-To: <4F5FBB75.1020009@redhat.com> References: <4EE9CF2E.5090608@redhat.com> <20111219164310.GC752@redhat.com> <4EF0B0FC.8060205@redhat.com> <20111220162648.GP752@redhat.com> <4F5FBB75.1020009@redhat.com> Message-ID: <4F6092FB.4090502@redhat.com> On 03/13/2012 10:26 PM, Danesh Dadachanji wrote: > On 20/12/11 11:26 AM, Deepak Bhole wrote: >> * Jiri Vanek<jvanek at redhat.com> [2011-12-20 10:58]: >>> On 12/19/2011 05:43 PM, Deepak Bhole wrote: >>>> * Jiri Vanek<jvanek at redhat.com> [2011-12-15 05:43]: >>>>> 2011-12-15 Jiri Vanek<jvanek at redhat.com> >>>>> >>>>> * acinclude.m4: added definition of IT_CHECK_XULLRUNNER_API_VERSION, >>>>> which tryes to compile small program against new xulrunner api >>>>> * configure.ac: added call of IT_CHECK_XULLRUNNER_API_VERSION >>>>> * plugin/icedteanp/IcedTeaNPPlugin.cc: (NP_GetMIMEDescription) >>>>> return type set-up by dependecy on defined LEGACY_XULRUNNERAPI. >>>>> This one is seted by IT_CHECK_XULLRUNNER_API_VERSION during configure. >>>>> if defined, then old char* is used. New const char* is used otherwise. >>>>> >>>>> > > [snip] > > Hey Jiri, > > I built icedtea6-1.9 recently, since it still has the old netx code, it builds with the same error. > > I'm not too sure if we want to backport this to 6-1.9 considering how large a change it is but it will completely break the build with any updated xulrunner. What do you think? > Thanx for catch Danesh! hmmm... 1.9 is still supported, so I'm afraid it should be backported. I have added gnu_andrew to cc, as he still knows most about this and is online now :) Are you wiling to backport this if requested? I'm still busy with applets testing environment :-/ J. > Cheers, > Danesh > >>> diff -r fb5e54f2b97e ChangeLog >>> --- a/ChangeLog Thu Dec 08 16:01:06 2011 -0500 >>> +++ b/ChangeLog Thu Dec 20 11:37:31 2011 +0100 >>> @@ -1,3 +1,13 @@ >>> +2011-12-20 Jiri Vanek<jvanek at redhat.com> >>> + >>> + * acinclude.m4: added definition of IT_CHECK_XULRUNNER_API_VERSION, >>> + which tries to compile small program against new xulrunner api >>> + * configure.ac: added call of IT_CHECK_XULRUNNER_API_VERSION >>> + * plugin/icedteanp/IcedTeaNPPlugin.cc: (NP_GetMIMEDescription) >>> + return type set-up by dependency on defined LEGACY_XULRUNNERAPI. >>> + This one is set by IT_CHECK_XULRUNNER_API_VERSION during configure. >>> + if defined, then old char* is used. New const char* is used otherwise. >>> + >>> 2011-12-08 Omair Majid<omajid at redhat.com> >>> >>> * netx/net/sourceforge/jnlp/Launcher.java >>> diff -r fb5e54f2b97e acinclude.m4 >>> --- a/acinclude.m4 Thu Dec 08 16:01:06 2011 -0500 >>> +++ b/acinclude.m4 Thu Dec 20 11:37:31 2011 +0100 >>> @@ -495,6 +495,26 @@ >>> PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0>= 2.16],[],[AC_DEFINE([LEGACY_GLIB])]) >>> ]) >>> >>> +AC_DEFUN_ONCE([IT_CHECK_XULRUNNER_API_VERSION], >>> +[ >>> + AC_MSG_CHECKING([for legacy xulrunner api]) >>> + AC_LANG_PUSH(C++) >>> + CXXFLAGS_BACKUP=$CXXFLAGS >>> + CXXFLAGS=$CXXFLAGS" "$MOZILLA_CFLAGS >>> + AC_TRY_COMPILE([ >>> + #include<npfunctions.h> >>> + const char* NP_GetMIMEDescription () >>> + {return (char*) "yap!";} >>> + ],[],[ >>> + AC_MSG_RESULT(no) >>> + ],[ >>> + AC_MSG_RESULT(yes) >>> + AC_DEFINE([LEGACY_XULRUNNERAPI]) >>> + ]) >>> + CXXFLAGS=$CXXFLAGS_BACKUP >>> + AC_LANG_POP(C++) >>> +]) >>> + >>> AC_DEFUN([IT_CHECK_WITH_GCJ], >>> [ >>> AC_MSG_CHECKING([whether to compile ecj natively]) >>> diff -r fb5e54f2b97e configure.ac >>> --- a/configure.ac Thu Dec 08 16:01:06 2011 -0500 >>> +++ b/configure.ac Thu Dec 20 11:37:31 2011 +0100 >>> @@ -81,6 +81,7 @@ >>> IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef]) >>> IT_CHECK_FOR_APPLETVIEWERPANEL_HOLE >>> IT_CHECK_GLIB_VERSION >>> +IT_CHECK_XULRUNNER_API_VERSION >>> >>> # >>> # Find optional depedencies >>> diff -r fb5e54f2b97e plugin/icedteanp/IcedTeaNPPlugin.cc >>> --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Dec 08 16:01:06 2011 -0500 >>> +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Dec 20 11:37:31 2011 +0100 >>> @@ -2291,7 +2291,11 @@ >>> >>> // Returns a string describing the MIME type that this plugin >>> // handles. >>> +#ifdef LEGACY_XULRUNNERAPI >>> char* >>> +#else >>> + const char* >>> +#endif >>> NP_GetMIMEDescription () >>> { >>> PLUGIN_DEBUG ("NP_GetMIMEDescription\n"); >> From ahughes at redhat.com Wed Mar 14 06:26:39 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 14 Mar 2012 09:26:39 -0400 (EDT) Subject: [PATCH 0 of 5] Some jstack fixes and improvements In-Reply-To: <patchbomb.1331719619@springer.wildebeest.org> Message-ID: <56db1a4c-df05-425e-a1d2-f2a4b33df4c7@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Hi, > > Here are some fixes and enhancements to the systemtap jstack() > support. > I split them out in separate patches to make it easier to see what > changed (one of them is basically a complete reindent with a > try-catch > wrapped around the body of the jstack function). These patches make > jstack() more reliable by having less hard coded constants, and > better > error recovery if something still did go wrong. One patch relies on > an unreleased Systemtap 1.8 feature (@var) which adds support for > when hotspot is compiled with gcc 4.6+, it checks the systemtap > version > installed to fall back on the old method (using $var) if necessary. > > These are for IcedTea6. Next up is making sure everything works also > against IcedTea7. > Does this mean IcedTea6 now requires an unreleased version of SystemTap? > Cheers, > > Mark > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From mjw at redhat.com Wed Mar 14 06:53:49 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 14 Mar 2012 14:53:49 +0100 Subject: [PATCH 0 of 5] Some jstack fixes and improvements In-Reply-To: <56db1a4c-df05-425e-a1d2-f2a4b33df4c7@zmail17.collab.prod.int.phx2.redhat.com> References: <56db1a4c-df05-425e-a1d2-f2a4b33df4c7@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <1331733229.22814.6.camel@springer.wildebeest.org> On Wed, 2012-03-14 at 09:26 -0400, Andrew Hughes wrote: > ----- Original Message ----- >> One patch relies on > > an unreleased Systemtap 1.8 feature (@var) which adds support for > > when hotspot is compiled with gcc 4.6+, it checks the systemtap > > version installed to fall back on the old method (using $var) >> if necessary. > > Does this mean IcedTea6 now requires an unreleased version of SystemTap? No, just that it will take advantage of it when it is released. That is what the fancy (% condition %? true %: false %) construct is about: + Universe_methodKlassObj[pid()] = %( systemtap_v >= "1.8" + %? @var("_methodKlassObj at universe.cpp") + %: $_methodKlassObj %); Cheers, Mark From ddadacha at redhat.com Wed Mar 14 06:56:51 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Wed, 14 Mar 2012 09:56:51 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F5FC378.5080509@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5E0F40.1040001@redhat.com> <4F5E9AEF.1030409@redhat.com> <4F5FA68D.6060202@redhat.com> <4F5FBA6D.2090500@redhat.com> <4F5FBFC2.9080309@redhat.com> <4F5FC378.5080509@redhat.com> Message-ID: <4F60A3A3.5070500@redhat.com> On 13/03/12 06:00 PM, Omair Majid wrote: > On 03/13/2012 05:44 PM, Danesh Dadachanji wrote: >> On 13/03/12 05:21 PM, Omair Majid wrote: >>> On 03/13/2012 03:57 PM, Danesh Dadachanji wrote: >>>>> On 12/03/12 08:55 PM, Omair Majid wrote: >>>>>>> On 03/12/2012 10:59 AM, Danesh Dadachanji wrote: >>>>>>>>> I thought so too until I checked where printMessage() was >>>>>> called from. >>>>>>>>> See launchWarning in GuiLaunchHandler[1], it explicitly calls >>>>>>>>> DefaultLaunchHandler.printMessage(). I didn't look into why it >>>>>> was doing >>>>>>>>> that so if you think that's a bug, I can look into it further. >>>>>>>>> >>>>>>> >>>>>>> Assuming that we want to print the stack trace only in -verbose >>>>> mode, >>>>>>> how does the attached patch look? (I did get a little side >>>>> tracked and >>>>>>> fixed problems in printing the exceptions too). >>>>>>> >>>>> >>>>> This is way better than my patch! One question, why did you choose to >>>>> print the entire exception as opposed to just the cause? I realize >>>>> icedtea-web does it that way and it may even be better but I found >>>> that >>>>> when I did that to test, the cause was repeated. >>>>> >>> I am not entirely clear on this. Do you mean the stack trace was >>> repeated? As in it had duplicate "Caused by" lines? >>> >>>>>>> I can rework this if others still think printing the entire >>>>> stack trace >>>>>>> in -headless mode is a good idea. >>>>> >>>>> No I think you have the right idea. I completely forgot about the >>>> "Show >>>>> Details" button which can be seen as somewhat similar to supplying >>>>> -verbose. I'm fine with the one-liner in output. >>>>> >>>>> >>>>> Another thing, did you intentionally leave out the part that >>>> prints the >>>>> exception to stderr with -verbose in GuiLaunchHandler? >>> Doh. Sorry; it was a mistake. >>> >>>>> If not, can you >>>>> include it in this patch? >>> Done. How does the attached patch look? >>> >> >> Great stuff, one more nitpick below and then it's fine with me. >> >>> diff --git a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >>> b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >>> --- a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >>> +++ b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >> >> [snip] >> >>> @@ -71,6 +77,9 @@ >>> BasicExceptionDialog.show(exception); >>> } >>> }); >>> + if (JNLPRuntime.isDebug()) { >>> + exception.printStackTrace(outputStream); >> >> Could you change that to printMessage(exception); instead? I think >> consistency here between what is printed to terminal between GUI and >> headless runs is better. We might base future tests off misinterpretations! > > Sorry, I was a little confused (the original patch had an 'if > JNLPRuntime.isDebug()). I prefer printMessage here too because of the > consistency. I should probably add unit tests for the GUI too, except > it's a little coupled with a bunch of other things. > For something like this, GUI shouldn't be too troublesome, all you need to do is pass in the -verbose option to the javaws call. Jiri has passed in params in some other jnlp_tests, refer to those. The catch is _not_ running it in headless, I'm just not sure how you'd go about killing it and getting rid of that error dialog. >>> + } >>> } >>> >> >> Also, you forgot to include AbstractLaunchHandler. =) >> > > Whoops. The attached patch should address both the problems. > > Thanks for the multiple reviews! > My pleasure! Thanks for cleaning this all up. This looks good to me, go ahead and push. Cheers, Danesh From jvanek at redhat.com Wed Mar 14 07:10:22 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 14 Mar 2012 15:10:22 +0100 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F60A3A3.5070500@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5E0F40.1040001@redhat.com> <4F5E9AEF.1030409@redhat.com> <4F5FA68D.6060202@redhat.com> <4F5FBA6D.2090500@redhat.com> <4F5FBFC2.9080309@redhat.com> <4F5FC378.5080509@redhat.com> <4F60A3A3.5070500@redhat.com> Message-ID: <4F60A6CE.90306@redhat.com> On 03/14/2012 02:56 PM, Danesh Dadachanji wrote: > > > On 13/03/12 06:00 PM, Omair Majid wrote: >> On 03/13/2012 05:44 PM, Danesh Dadachanji wrote: >>> On 13/03/12 05:21 PM, Omair Majid wrote: >>>> On 03/13/2012 03:57 PM, Danesh Dadachanji wrote: >>>>>> On 12/03/12 08:55 PM, Omair Majid wrote: >>>>>>>> On 03/12/2012 10:59 AM, Danesh Dadachanji wrote: >>>>>>>>>> I thought so too until I checked where printMessage() was >>>>>>> called from. >>>>>>>>>> See launchWarning in GuiLaunchHandler[1], it explicitly calls >>>>>>>>>> DefaultLaunchHandler.printMessage(). I didn't look into why it >>>>>>> was doing >>>>>>>>>> that so if you think that's a bug, I can look into it further. >>>>>>>>>> >>>>>>>> >>>>>>>> Assuming that we want to print the stack trace only in -verbose >>>>>> mode, >>>>>>>> how does the attached patch look? (I did get a little side >>>>>> tracked and >>>>>>>> fixed problems in printing the exceptions too). >>>>>>>> >>>>>> >>>>>> This is way better than my patch! One question, why did you choose to >>>>>> print the entire exception as opposed to just the cause? I realize >>>>>> icedtea-web does it that way and it may even be better but I found >>>>> that >>>>>> when I did that to test, the cause was repeated. >>>>>> >>>> I am not entirely clear on this. Do you mean the stack trace was >>>> repeated? As in it had duplicate "Caused by" lines? >>>> >>>>>>>> I can rework this if others still think printing the entire >>>>>> stack trace >>>>>>>> in -headless mode is a good idea. >>>>>> >>>>>> No I think you have the right idea. I completely forgot about the >>>>> "Show >>>>>> Details" button which can be seen as somewhat similar to supplying >>>>>> -verbose. I'm fine with the one-liner in output. >>>>>> >>>>>> >>>>>> Another thing, did you intentionally leave out the part that >>>>> prints the >>>>>> exception to stderr with -verbose in GuiLaunchHandler? >>>> Doh. Sorry; it was a mistake. >>>> >>>>>> If not, can you >>>>>> include it in this patch? >>>> Done. How does the attached patch look? >>>> >>> >>> Great stuff, one more nitpick below and then it's fine with me. >>> >>>> diff --git a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >>>> b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >>>> --- a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >>>> +++ b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java >>> >>> [snip] >>> >>>> @@ -71,6 +77,9 @@ >>>> BasicExceptionDialog.show(exception); >>>> } >>>> }); >>>> + if (JNLPRuntime.isDebug()) { >>>> + exception.printStackTrace(outputStream); >>> >>> Could you change that to printMessage(exception); instead? I think >>> consistency here between what is printed to terminal between GUI and >>> headless runs is better. We might base future tests off misinterpretations! >> >> Sorry, I was a little confused (the original patch had an 'if >> JNLPRuntime.isDebug()). I prefer printMessage here too because of the >> consistency. I should probably add unit tests for the GUI too, except >> it's a little coupled with a bunch of other things. >> > > For something like this, GUI shouldn't be too troublesome, all you need to do is pass in the -verbose option to the javaws call. Jiri has passed in params in some other jnlp_tests, refer to those. The catch is _not_ running it in headless, I'm just not sure how you'd go about killing it and getting rid of that error dialog. It should timeout and dye. If not then it must be run in separated process and kill externally. I have not made deep investigations on this field. But sure is that awt robot to click close is still not presented ...:( > >>>> + } >>>> } >>>> >>> >>> Also, you forgot to include AbstractLaunchHandler. =) >>> >> >> Whoops. The attached patch should address both the problems. >> >> Thanks for the multiple reviews! >> > > My pleasure! Thanks for cleaning this all up. This looks good to me, go ahead and push. > > Cheers, > Danesh From omajid at icedtea.classpath.org Wed Mar 14 08:27:24 2012 From: omajid at icedtea.classpath.org (omajid at icedtea.classpath.org) Date: Wed, 14 Mar 2012 15:27:24 +0000 Subject: /hg/icedtea-web: Launch errors are not being printed to terminal Message-ID: <hg.905383606ece.1331738844.8643924302249223276@icedtea.classpath.org> changeset 905383606ece in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=905383606ece author: Omair Majid <omajid at redhat.com> date: Wed Mar 14 11:27:16 2012 -0400 Launch errors are not being printed to terminal 2012-03-14 Omair Majid <omajid at redhat.com> Print exceptions to terminal when running in gui mode too. * netx/net/sourceforge/jnlp/AbstractLaunchHandler.java: New file. * netx/net/sourceforge/jnlp/DefaultLaunchHandler.java: Extend AbstractLaunchHandler. (DefaultLaunchHandler): New method. (printMessage): Moved to parent class. * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: Extend AbstractLaunchHandler. (GuiLauchHandler): New method. (launchError): Print the error too. (launchWarning,validationError): Call parent's printMessage. * netx/net/sourceforge/jnlp/LaunchException.java: Use standard java exception chaining. This removes compatibility with pre-java 1.3 class libraries. (LaunchException(JNLPFile,Exception,String,String,String,String)): Pass cause to parent so exceptions are chanined properly. (LaunchException(String,Throwable),LaunchException(Throwable)): Call parent's constructor. (printStackTrace(PrintStream),printStackTrace(PrintWriter),getCause): Removed. Use parent's implementation instead. (getCauses): Removed. * netx/net/sourceforge/jnlp/LaunchHandler.java (validationError): Rename argument to clarify meaing. * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java (initialize): Redirect output of all handlers to System.err. * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java (PluginAppletSecurityContext): Likewise. * tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java, * tests/netx/unit/net/sourceforge/jnlp/LaunchExceptionTest.java: New file. Contains tests. diffstat: ChangeLog | 33 ++ netx/net/sourceforge/jnlp/AbstractLaunchHandler.java | 84 ++++++ netx/net/sourceforge/jnlp/DefaultLaunchHandler.java | 42 +-- netx/net/sourceforge/jnlp/GuiLaunchHandler.java | 14 +- netx/net/sourceforge/jnlp/LaunchException.java | 76 +----- netx/net/sourceforge/jnlp/LaunchHandler.java | 2 +- netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 4 +- plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 2 +- tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java | 133 ++++++++++ tests/netx/unit/net/sourceforge/jnlp/LaunchExceptionTest.java | 68 +++++ 10 files changed, 345 insertions(+), 113 deletions(-) diffs (truncated from 627 to 500 lines): diff -r 0de1a0ec2ddc -r 905383606ece ChangeLog --- a/ChangeLog Mon Mar 12 16:36:12 2012 -0400 +++ b/ChangeLog Wed Mar 14 11:27:16 2012 -0400 @@ -1,3 +1,36 @@ +2012-03-14 Omair Majid <omajid at redhat.com> + + Print exceptions to terminal when running in gui mode too. + * netx/net/sourceforge/jnlp/AbstractLaunchHandler.java: New file. + * netx/net/sourceforge/jnlp/DefaultLaunchHandler.java: Extend + AbstractLaunchHandler. + (DefaultLaunchHandler): New method. + (printMessage): Moved to parent class. + * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: Extend + AbstractLaunchHandler. + (GuiLauchHandler): New method. + (launchError): Print the error too. + (launchWarning,validationError): Call parent's printMessage. + * netx/net/sourceforge/jnlp/LaunchException.java: Use standard java + exception chaining. This removes compatibility with pre-java 1.3 class + libraries. + (LaunchException(JNLPFile,Exception,String,String,String,String)): Pass + cause to parent so exceptions are chanined properly. + (LaunchException(String,Throwable),LaunchException(Throwable)): Call + parent's constructor. + (printStackTrace(PrintStream),printStackTrace(PrintWriter),getCause): + Removed. Use parent's implementation instead. + (getCauses): Removed. + * netx/net/sourceforge/jnlp/LaunchHandler.java + (validationError): Rename argument to clarify meaing. + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java + (initialize): Redirect output of all handlers to System.err. + * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java + (PluginAppletSecurityContext): Likewise. + * tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java, + * tests/netx/unit/net/sourceforge/jnlp/LaunchExceptionTest.java: New + file. Contains tests. + 2012-03-12 Danesh Dadachanji <ddadacha at redhat.com> Adding test for regression of JNLP API accessibility in constructor diff -r 0de1a0ec2ddc -r 905383606ece netx/net/sourceforge/jnlp/AbstractLaunchHandler.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/AbstractLaunchHandler.java Wed Mar 14 11:27:16 2012 -0400 @@ -0,0 +1,84 @@ +/* AbstractLaunchHandler.java + Copyright (C) 2012 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; either version 2, or (at your option) +any later version. + +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 net.sourceforge.jnlp; + +import java.io.PrintStream; + +import net.sourceforge.jnlp.runtime.JNLPRuntime; + +public abstract class AbstractLaunchHandler implements LaunchHandler { + + protected final PrintStream outputStream; + + public AbstractLaunchHandler(PrintStream outputStream) { + this.outputStream = outputStream; + } + + /** + * Print a message + */ + protected void printMessage(LaunchException ex) { + StringBuilder result = new StringBuilder(); + result.append("netx: "); + result.append(ex.getCategory()); + if (ex.getSummary() != null) { + result.append(": "); + result.append(ex.getSummary()); + } + if (ex.getCause() != null) { + result.append(recursiveDescription(ex.getCause())); + } + outputStream.println(result); + + if (JNLPRuntime.isDebug()) { + ex.printStackTrace(outputStream); + } + } + + private String recursiveDescription(Throwable throwable) { + StringBuilder builder = new StringBuilder(); + builder.append(" ("); + builder.append(throwable.getMessage() == null ? "" : throwable.getMessage()); + if (throwable.getCause() != null) { + builder.append(recursiveDescription(throwable.getCause())); + } + builder.append(")"); + return builder.toString(); + } + +} diff -r 0de1a0ec2ddc -r 905383606ece netx/net/sourceforge/jnlp/DefaultLaunchHandler.java --- a/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java Mon Mar 12 16:36:12 2012 -0400 +++ b/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java Wed Mar 14 11:27:16 2012 -0400 @@ -16,6 +16,8 @@ package net.sourceforge.jnlp; +import java.io.PrintStream; + import net.sourceforge.jnlp.runtime.*; /** @@ -26,7 +28,11 @@ * @author <a href="mailto:jmaxwell at users.sourceforge.net">Jon A. Maxwell (JAM)</a> - initial author * @version $Revision: 1.1 $ */ -public class DefaultLaunchHandler implements LaunchHandler { +public class DefaultLaunchHandler extends AbstractLaunchHandler { + + public DefaultLaunchHandler(PrintStream out) { + super(out); + } /** * Called when the application could not be launched due to a @@ -57,8 +63,8 @@ * * @return true to allow the application to continue, false to stop it. */ - public boolean validationError(LaunchException security) { - printMessage(security); + public boolean validationError(LaunchException error) { + printMessage(error); return true; } @@ -74,36 +80,6 @@ } /** - * Print a message to stdout. - */ - protected static void printMessage(LaunchException ex) { - StringBuffer result = new StringBuffer(); - result.append("netx: "); - result.append(ex.getCategory()); - if (ex.getSummary() != null) { - result.append(": "); - result.append(ex.getSummary()); - } - - if (JNLPRuntime.isDebug()) { - if (ex.getCause() != null) - ex.getCause().printStackTrace(); - else - ex.printStackTrace(); - } - - Throwable causes[] = ex.getCauses(); - - for (int i = 0; i < causes.length; i++) { - result.append(" ("); - result.append(causes[i].getClass().getName()); - result.append(" "); - result.append(causes[i].getMessage()); - result.append(")"); - } - } - - /** * Do nothing on when initializing */ @Override diff -r 0de1a0ec2ddc -r 905383606ece netx/net/sourceforge/jnlp/GuiLaunchHandler.java --- a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java Mon Mar 12 16:36:12 2012 -0400 +++ b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java Wed Mar 14 11:27:16 2012 -0400 @@ -37,6 +37,7 @@ package net.sourceforge.jnlp; +import java.io.PrintStream; import java.lang.reflect.InvocationTargetException; import java.net.URL; @@ -51,12 +52,16 @@ * A {@link LaunchHandler} that gives feedback to the user using GUI elements * including splash screens and exception dialogs. */ -public class GuiLaunchHandler implements LaunchHandler { +public class GuiLaunchHandler extends AbstractLaunchHandler { private JNLPSplashScreen splashScreen = null; private final Object mutex = new Object(); private UpdatePolicy policy = UpdatePolicy.ALWAYS; + public GuiLaunchHandler(PrintStream outputStream) { + super(outputStream); + } + @Override public void launchCompleted(ApplicationInstance application) { // do nothing @@ -71,6 +76,7 @@ BasicExceptionDialog.show(exception); } }); + printMessage(exception); } private void closeSplashScreen() { @@ -141,14 +147,14 @@ @Override public boolean launchWarning(LaunchException warning) { - DefaultLaunchHandler.printMessage(warning); + printMessage(warning); return true; } @Override - public boolean validationError(LaunchException security) { + public boolean validationError(LaunchException error) { closeSplashScreen(); - DefaultLaunchHandler.printMessage(security); + printMessage(error); return true; } diff -r 0de1a0ec2ddc -r 905383606ece netx/net/sourceforge/jnlp/LaunchException.java --- a/netx/net/sourceforge/jnlp/LaunchException.java Mon Mar 12 16:36:12 2012 -0400 +++ b/netx/net/sourceforge/jnlp/LaunchException.java Wed Mar 14 11:27:16 2012 -0400 @@ -16,11 +16,6 @@ package net.sourceforge.jnlp; -import java.io.*; -import java.util.*; - -import net.sourceforge.jnlp.util.*; - /** * Thrown when a JNLP application, applet, or installer could not * be created. @@ -30,8 +25,7 @@ */ public class LaunchException extends Exception { - /** the original exception */ - private Throwable cause = null; + private static final long serialVersionUID = 7283827853612357423L; /** the file being launched */ private JNLPFile file; @@ -53,36 +47,27 @@ */ public LaunchException(JNLPFile file, Exception cause, String severity, String category, String summary, String description) { super(severity + ": " + category + ": " + summary + " " - + (description == null ? "" : description)); + + (description == null ? "" : description), cause); this.file = file; this.category = category; this.summary = summary; this.description = description; this.severity = severity; - - // replace with setCause when no longer 1.3 compatible - this.cause = cause; } /** * Creates a LaunchException with a cause. */ public LaunchException(Throwable cause) { - this(cause.getMessage()); - - // replace with setCause when no longer 1.3 compatible - this.cause = cause; + super(cause); } /** * Creates a LaunchException with a cause and detail message */ public LaunchException(String message, Throwable cause) { - this(message + ": " + cause.getMessage()); - - // replace with setCause when no longer 1.3 compatible - this.cause = cause; + super(message, cause); } /** @@ -132,57 +117,4 @@ return severity; } - /** - * Return the cause of the launch exception or null if there - * is no cause exception. - */ - public Throwable getCause() { - return cause; - } - - /** - * Returns the causes for this exception. This method is - * useful on JRE 1.3 since getCause is not a standard method, - * and will be removed once netx no longer supports 1.3. - */ - public Throwable[] getCauses() { - ArrayList<Throwable> result = new ArrayList<Throwable>(); - - Reflect r = new Reflect(); - Throwable cause = this.cause; - - while (cause != null) { - result.add(cause); - cause = (Throwable) r.invoke(cause, "getCause"); - } - - return result.toArray(new Throwable[0]); - } - - /** - * Print the stack trace and the cause exception (1.3 - * compatible) - */ - public void printStackTrace(PrintStream stream) { - super.printStackTrace(stream); - - if (cause != null) { - stream.println("Caused by: "); - cause.printStackTrace(stream); - } - } - - /** - * Print the stack trace and the cause exception (1.3 - * compatible) - */ - public void printStackTrace(PrintWriter stream) { - super.printStackTrace(stream); - - if (cause != null) { - stream.println("Caused by: "); - cause.printStackTrace(stream); - } - } - } diff -r 0de1a0ec2ddc -r 905383606ece netx/net/sourceforge/jnlp/LaunchHandler.java --- a/netx/net/sourceforge/jnlp/LaunchHandler.java Mon Mar 12 16:36:12 2012 -0400 +++ b/netx/net/sourceforge/jnlp/LaunchHandler.java Wed Mar 14 11:27:16 2012 -0400 @@ -50,7 +50,7 @@ * * @return true to allow the application to continue, false to stop it. */ - public boolean validationError(LaunchException security); + public boolean validationError(LaunchException error); // this method will probably be replaced when real security // controller is in place. diff -r 0de1a0ec2ddc -r 905383606ece netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Mon Mar 12 16:36:12 2012 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Mar 14 11:27:16 2012 -0400 @@ -196,9 +196,9 @@ if (handler == null) { if (headless) { - handler = new DefaultLaunchHandler(); + handler = new DefaultLaunchHandler(System.err); } else { - handler = new GuiLaunchHandler(); + handler = new GuiLaunchHandler(System.err); } } diff -r 0de1a0ec2ddc -r 905383606ece plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Mon Mar 12 16:36:12 2012 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Wed Mar 14 11:27:16 2012 -0400 @@ -243,7 +243,7 @@ // that JNLPRuntime will try to install if (System.getSecurityManager() == null) { JNLPRuntime.initialize(/* isApplication */false); - JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler()); + JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); } JNLPRuntime.disableExit(); diff -r 0de1a0ec2ddc -r 905383606ece tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java Wed Mar 14 11:27:16 2012 -0400 @@ -0,0 +1,133 @@ +/* DefaultLaunchHandlerTest.java + Copyright (C) 2012 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; either version 2, or (at your option) +any later version. + +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 net.sourceforge.jnlp; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import org.junit.Test; + +public class DefaultLaunchHandlerTest { + + @Test + public void testBasicLaunch() { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DefaultLaunchHandler handler = new DefaultLaunchHandler(new PrintStream(baos)); + + // all no-ops with no output + handler.launchInitialized(null); + handler.launchStarting(null); + handler.launchCompleted(null); + + String output = baos.toString(); + assertEquals("", output); + } + + @Test + public void testLaunchWarning() { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DefaultLaunchHandler handler = new DefaultLaunchHandler(new PrintStream(baos)); + + LaunchException warning = new LaunchException(null, null, + "severe", "warning type", "test warning", "this is a test of the warning"); + boolean continueLaunch = handler.launchWarning(warning); + + assertTrue(continueLaunch); + String output = baos.toString(); + assertEquals("netx: warning type: test warning\n", output); + } + + @Test From omajid at redhat.com Wed Mar 14 08:32:40 2012 From: omajid at redhat.com (Omair Majid) Date: Wed, 14 Mar 2012 11:32:40 -0400 Subject: [RFC][icedtea-web] Launch errors are not being printed to terminal. In-Reply-To: <4F60A3A3.5070500@redhat.com> References: <4F5A3AD1.5020105@redhat.com> <4F5C31BA.6000701@redhat.com> <4F5E0F40.1040001@redhat.com> <4F5E9AEF.1030409@redhat.com> <4F5FA68D.6060202@redhat.com> <4F5FBA6D.2090500@redhat.com> <4F5FBFC2.9080309@redhat.com> <4F5FC378.5080509@redhat.com> <4F60A3A3.5070500@redhat.com> Message-ID: <4F60BA18.6050104@redhat.com> On 03/14/2012 09:56 AM, Danesh Dadachanji wrote: > On 13/03/12 06:00 PM, Omair Majid wrote: >> Sorry, I was a little confused (the original patch had an 'if >> JNLPRuntime.isDebug()). I prefer printMessage here too because of the >> consistency. I should probably add unit tests for the GUI too, except >> it's a little coupled with a bunch of other things. >> > > For something like this, GUI shouldn't be too troublesome, all you need > to do is pass in the -verbose option to the javaws call. Jiri has passed > in params in some other jnlp_tests, refer to those. The catch is _not_ > running it in headless, I'm just not sure how you'd go about killing it > and getting rid of that error dialog. I meant unit tests, not system-level/integration tests :) Aside from the user-interaction issues, unit tests are a lot more predictable and faster. Plus I can run them from my favourite ide. I haven't had much luck recently in running the javaws tests recently either. Running 'make run-netx-dist-tests' always seems to hang for some reason. > > My pleasure! Thanks for cleaning this all up. This looks good to me, go > ahead and push. Pushed as changeset 905383606ece. Cheers, Omair From jvanek at redhat.com Wed Mar 14 08:36:26 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 14 Mar 2012 16:36:26 +0100 Subject: java.lang.InternalError - No RenderingEngine module found Message-ID: <4F60BAFA.5060202@redhat.com> java.lang.InternalError: No RenderingEngine module found at sun.java2d.pipe.RenderingEngine.getInstance(RenderingEngine.java:138) at sun.java2d.pipe.LoopPipe.<clinit>(LoopPipe.java:55) at sun.java2d.SurfaceData.<clinit>(SurfaceData.java:448) at sun.awt.X11GraphicsConfig.<clinit>(X11GraphicsConfig.java:76) at sun.awt.X11GraphicsDevice.makeDefaultConfiguration(X11GraphicsDevice.java:263) at sun.awt.X11GraphicsDevice.getDefaultConfiguration(X11GraphicsDevice.java:224) at java.awt.Window.init(Window.java:424) at java.awt.Window.<init>(Window.java:477) at java.awt.Frame.<init>(Frame.java:419) at java.awt.Frame.<init>(Frame.java:384) at javax.swing.JFrame.<init>(JFrame.java:174) have somebody seen this error? Any brinstorimng welcomed! It happend when trying to create jframe from test, run inside junit, run from make from commandline. Google is silent as grave. I suspect some simply missing DISPLAY forwarded through layer to layer.... So I'm more suspecting make then anything else.... When the same test suite is run from NB everything is working fine.... Thanx a lot, J. From omajid at redhat.com Wed Mar 14 09:11:45 2012 From: omajid at redhat.com (Omair Majid) Date: Wed, 14 Mar 2012 12:11:45 -0400 Subject: java.lang.InternalError - No RenderingEngine module found In-Reply-To: <4F60BAFA.5060202@redhat.com> References: <4F60BAFA.5060202@redhat.com> Message-ID: <4F60C341.7090602@redhat.com> On 03/14/2012 11:36 AM, Jiri Vanek wrote: > It happend when trying to create jframe from test, run inside junit, > run from make from commandline. Can you post the code that is causing the error and tell us exactly how you are running it? Thanks, Omair From jvanek at redhat.com Wed Mar 14 09:19:56 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 14 Mar 2012 17:19:56 +0100 Subject: java.lang.InternalError - No RenderingEngine module found In-Reply-To: <4F60C341.7090602@redhat.com> References: <4F60BAFA.5060202@redhat.com> <4F60C341.7090602@redhat.com> Message-ID: <4F60C52C.2040500@redhat.com> On 03/14/2012 05:11 PM, Omair Majid wrote: > On 03/14/2012 11:36 AM, Jiri Vanek wrote: >> It happend when trying to create jframe from test, run inside junit, >> run from make from commandline. > > Can you post the code that is causing the error and tell us exactly how > you are running it? > > Thanks, > Omair @Test public void frame() throws AWTException, IOException{ JFrame f = new JFrame(); f.setSize(800,600); f.setVisible(true); Assert.assertNotNull(f); Robot r =new Robot(); BufferedImage bi=r.createScreenCapture(new Rectangle(0,0,800,600)); Assert.assertNotNull(bi); ImageIO.write(bi, "png", new File("/home/jvanek/Desktop/xp13.png")); } in any testclass from jnlp testcases or unittests. Then ./autogen.sh ; ./configure --prefix=/home/jvanek/icedtea-web-image --disable-docs; make check; make install;make run-netx-dist-tests. In all cases the frame test failed on first line with mentioned exception. J:( From jvanek at redhat.com Wed Mar 14 09:31:12 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 14 Mar 2012 17:31:12 +0100 Subject: java.lang.InternalError - No RenderingEngine module found In-Reply-To: <4F60C341.7090602@redhat.com> References: <4F60BAFA.5060202@redhat.com> <4F60C341.7090602@redhat.com> Message-ID: <4F60C7D0.2090406@redhat.com> On 03/14/2012 05:11 PM, Omair Majid wrote: > On 03/14/2012 11:36 AM, Jiri Vanek wrote: >> It happend when trying to create jframe from test, run inside junit, >> run from make from commandline. > > Can you post the code that is causing the error and tell us exactly how > you are running it? > > Thanks, > Omair just update GraphicsDevice[] gs = ge.getScreenDevices(); have properly found two monitors for (int j = 0; j < gs.length; j++) { GraphicsDevice gd = gs[j]; GraphicsConfiguration[] gc = gd.getConfigurations(); getConfigurations here screams again with same exception J:( From aph at redhat.com Wed Mar 14 10:37:12 2012 From: aph at redhat.com (Andrew Haley) Date: Wed, 14 Mar 2012 17:37:12 +0000 Subject: ARM: More intrinsics In-Reply-To: <4F510C5B.9090207@redhat.com> References: <4F510C5B.9090207@redhat.com> Message-ID: <4F60D748.9000103@redhat.com> Xerxes noticed an inconsistency in my patch. I've removed the unused masks, and redefined the condition in the atomic operations to use ETT (else, true, true) rather than the confused encoding I used before. So, it's now + it(codebuf, COND_EQ, IT_MASK_ETT); instead of - it(codebuf, COND_NE, IT_MASK_TEE); I had to do this because it's the only way the encodings make any sense. There isn't really any encoding for TEE that works with COND_NE: it has to be expressed in the binary as COND_EQ:ETT. (If cond is true, don't do X, but do Y and Z.) If you want the whole patch resubmitting with these changes I will do so. Andrew. diff -r f2b27b309c43 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 14 05:47:19 2012 -0400 +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 14 13:20:41 2012 -0400 @@ -3039,13 +3039,10 @@ #define T_CBZ(r, uoff) (0xb100 | (((uoff) & 0x1f) << 3) | (((uoff) & 0x20) << (8-5)) | ((r) & 7)) #define T_CBNZ(r, uoff) (0xb900 | (((uoff) & 0x1f) << 3) | (((uoff) & 0x20) << (8-5)) | ((r) & 7)) -#define T_IT(cond, mask) (0xbf00 | (conds[cond] << 4) | (mask)) +#define T_IT(cond, mask) (0xbf00 | (conds[cond] << 4) ^ (mask)) #define IT_MASK_T 8 -#define IT_MASK_TE 0x14 -#define IT_MASK_TT 0x1e -#define IT_MASK_TTT 0x1e -#define IT_MASK_TEE 0x12 +#define IT_MASK_ETT 0x12 #define PATCH(loc) do { \ unsigned oldidx = codebuf->idx; \ @@ -5077,7 +5074,8 @@ // FIXME: The JNI StrictMath routines don't use the JNIEnv *env // parameter, so it's arguably pointless to pass it here. add_imm(jinfo->codebuf, ARM_R0, Rthread, THREAD_JNI_ENVIRONMENT); - blx(jinfo->codebuf, (unsigned)entry_point); + mov_imm(jinfo->codebuf, ARM_IP, (unsigned)entry_point); + blx_reg(jinfo->codebuf, ARM_IP); bcc_patch(jinfo->codebuf, COND_EQ, loc); vfp_to_jstack(jinfo, VFP_D0); @@ -5125,7 +5123,7 @@ branch(codebuf, COND_NE, retry); bcc_patch(jinfo->codebuf, COND_NE, loc_failed); - it(codebuf, COND_NE, IT_MASK_TEE); + it(codebuf, COND_EQ, IT_MASK_ETT); mov_imm(codebuf, result, 0); mov_imm(codebuf, result, 1); fullBarrier(codebuf); @@ -5172,7 +5170,7 @@ unsigned result = JSTACK_REG(jinfo->jstack); - it(codebuf, COND_NE, IT_MASK_TEE); + it(codebuf, COND_EQ, IT_MASK_ETT); mov_imm(codebuf, result, 0); mov_imm(codebuf, result, 1); fullBarrier(codebuf); From dbhole at icedtea.classpath.org Wed Mar 14 12:14:38 2012 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 14 Mar 2012 19:14:38 +0000 Subject: /hg/release/icedtea-web-1.1: PR895: IcedTea-Web searches for mis... Message-ID: <hg.d4a6d82ed0ae.1331752478.-5934593987637005765@icedtea.classpath.org> changeset d4a6d82ed0ae in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=d4a6d82ed0ae author: Deepak Bhole <dbhole at redhat.com> date: Wed Mar 14 15:05:54 2012 -0400 PR895: IcedTea-Web searches for missing classes on each loadClass or findClass diffstat: ChangeLog | 15 + NEWS | 1 + netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 49 +++- tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java | 142 ++++++++++ 4 files changed, 203 insertions(+), 4 deletions(-) diffs (278 lines): diff -r 25af765297c6 -r d4a6d82ed0ae ChangeLog --- a/ChangeLog Mon Mar 05 16:39:41 2012 -0500 +++ b/ChangeLog Wed Mar 14 15:05:54 2012 -0400 @@ -3,6 +3,21 @@ * configure.ac: Prepare for 1.1.6 * NEWS: Same. +2012-03-14 Deepak Bhole <dbhole at redhat.com> + Omair Majid <omajid at redhat.com> + + PR895: IcedTea-Web searches for missing classes on each loadClass or + findClass + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java + (CodeBaseClassLoader): Added new map to track resources that are not + found. + (findClass): If resource was not found before, return immediately. If + resource was not found for the first time, record it in the new map. + (findResouces): Same. + (findResource): Same. + * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: + Test case for PR895 from Omair Majid. + 2012-03-05 Deepak Bhole <dbhole at redhat.com> * configure.ac: Prepare for 1.1.5 diff -r 25af765297c6 -r d4a6d82ed0ae NEWS --- a/NEWS Mon Mar 05 16:39:41 2012 -0500 +++ b/NEWS Wed Mar 14 15:05:54 2012 -0400 @@ -15,6 +15,7 @@ - RH586194: Unable to connect to connect with Juniper VPN client - PR820: IcedTea-Web 1.1.3 crashing Firefox when loading Citrix XenApp - PR838: IcedTea plugin crashes with chrome browser when javascript is executed + - PR895: IcedTea-Web searches for missing classes on each loadClass or findClass New in release 1.1.4 (2011-11-08): * Security updates: diff -r 25af765297c6 -r d4a6d82ed0ae netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Mar 05 16:39:41 2012 -0500 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Mar 14 15:05:54 2012 -0400 @@ -34,6 +34,7 @@ import java.security.PrivilegedAction; import java.security.PrivilegedExceptionAction; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; @@ -44,6 +45,7 @@ import java.util.Set; import java.util.TreeSet; import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.Manifest; @@ -1481,6 +1483,11 @@ JNLPClassLoader parentJNLPClassLoader; + /** + * Classes that are not found, so that findClass can skip them next time + */ + ConcurrentHashMap<String, URL[]> notFoundResources = new ConcurrentHashMap<String, URL[]>(); + public CodeBaseClassLoader(URL[] urls, JNLPClassLoader cl) { super(urls); parentJNLPClassLoader = cl; @@ -1492,8 +1499,18 @@ } @Override - public Class<?> findClass(String name) throws ClassNotFoundException { - return super.findClass(name); + public Class<?> findClass(String name) throws ClassNotFoundException { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + throw new ClassNotFoundException(name); + + try { + return super.findClass(name); + } catch (ClassNotFoundException cnfe) { + notFoundResources.put(name, super.getURLs()); + throw cnfe; + } } /** @@ -1520,17 +1537,41 @@ @Override public Enumeration<URL> findResources(String name) throws IOException { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + return (new Vector<URL>(0)).elements(); + if (!name.startsWith("META-INF")) { - return super.findResources(name); + Enumeration<URL> urls = super.findResources(name); + + if (!urls.hasMoreElements()) { + notFoundResources.put(name, super.getURLs()); + } + + return urls; } + return (new Vector<URL>(0)).elements(); } @Override public URL findResource(String name) { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + return null; + if (!name.startsWith("META-INF")) { - return super.findResource(name); + URL url = super.findResource(name); + + if (url == null) { + notFoundResources.put(name, super.getURLs()); + } + + return url; } + return null; } } diff -r 25af765297c6 -r d4a6d82ed0ae tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java Wed Mar 14 15:05:54 2012 -0400 @@ -0,0 +1,142 @@ +/* CodeBaseClassLoaderTest.java + Copyright (C) 2012 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 net.sourceforge.jnlp.runtime; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.net.URL; +import java.util.Locale; + +import net.sourceforge.jnlp.JNLPFile; +import net.sourceforge.jnlp.LaunchException; +import net.sourceforge.jnlp.ParseException; +import net.sourceforge.jnlp.ResourcesDesc; +import net.sourceforge.jnlp.SecurityDesc; +import net.sourceforge.jnlp.runtime.JNLPClassLoader; +import net.sourceforge.jnlp.runtime.JNLPClassLoader.CodeBaseClassLoader; + +import org.junit.Test; + +public class CodeBaseClassLoaderTest { + + @Test + public void testResourceLoadSuccessCaching() throws LaunchException, ClassNotFoundException, IOException, ParseException { + final URL JAR_URL = new URL("http://icedtea.classpath.org/netx/about.jar"); + final URL CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); + + JNLPFile dummyJnlpFile = new JNLPFile() { + @Override + public ResourcesDesc getResources() { + return new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); + } + + @Override + public URL getCodeBase() { + return CODEBASE_URL; + } + + @Override + public SecurityDesc getSecurity() { + return new SecurityDesc(null, SecurityDesc.SANDBOX_PERMISSIONS, null); + } + }; + + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent); + + long startTime, stopTime; + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main.class"); + stopTime = System.nanoTime(); + long timeOnFirstTry = stopTime - startTime; + System.out.println(timeOnFirstTry); + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main.class"); + stopTime = System.nanoTime(); + long timeOnSecondTry = stopTime - startTime; + System.out.println(timeOnSecondTry); + + assertTrue(timeOnSecondTry < (timeOnFirstTry / 10)); + } + + @Test + public void testResourceLoadFailureCaching() throws LaunchException, ClassNotFoundException, IOException, ParseException { + final URL JAR_URL = new URL("http://icedtea.classpath.org/netx/about.jar"); + final URL CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); + + JNLPFile dummyJnlpFile = new JNLPFile() { + @Override + public ResourcesDesc getResources() { + return new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); + } + + @Override + public URL getCodeBase() { + return CODEBASE_URL; + } + + @Override + public SecurityDesc getSecurity() { + return new SecurityDesc(null, SecurityDesc.SANDBOX_PERMISSIONS, null); + } + }; + + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent); + + long startTime, stopTime; + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main_FOO_.class"); + stopTime = System.nanoTime(); + long timeOnFirstTry = stopTime - startTime; + System.out.println(timeOnFirstTry); + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main_FOO_.class"); + stopTime = System.nanoTime(); + long timeOnSecondTry = stopTime - startTime; + System.out.println(timeOnSecondTry); + + assertTrue(timeOnSecondTry < (timeOnFirstTry / 10)); + } + +} From dbhole at icedtea.classpath.org Wed Mar 14 12:14:48 2012 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 14 Mar 2012 19:14:48 +0000 Subject: /hg/release/icedtea-web-1.2: PR895: IcedTea-Web searches for mis... Message-ID: <hg.9b8837c53c09.1331752488.-5934593987637005768@icedtea.classpath.org> changeset 9b8837c53c09 in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=9b8837c53c09 author: Deepak Bhole <dbhole at redhat.com> date: Wed Mar 14 15:05:54 2012 -0400 PR895: IcedTea-Web searches for missing classes on each loadClass or findClass diffstat: ChangeLog | 15 + NEWS | 2 + netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 50 +++- tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java | 142 ++++++++++ 4 files changed, 205 insertions(+), 4 deletions(-) diffs (280 lines): diff -r aac62fe468b1 -r 9b8837c53c09 ChangeLog --- a/ChangeLog Mon Mar 05 16:38:04 2012 -0500 +++ b/ChangeLog Wed Mar 14 15:05:54 2012 -0400 @@ -1,3 +1,18 @@ +2012-03-14 Deepak Bhole <dbhole at redhat.com> + Omair Majid <omajid at redhat.com> + + PR895: IcedTea-Web searches for missing classes on each loadClass or + findClass + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java + (CodeBaseClassLoader): Added new map to track resources that are not + found. + (findClass): If resource was not found before, return immediately. If + resource was not found for the first time, record it in the new map. + (findResouces): Same. + (findResource): Same. + * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: + Test case for PR895 from Omair Majid. + 2012-03-05 Deepak Bhole <dbhole at redhat.com> * configure.ac: Prepare for 1.2.1 diff -r aac62fe468b1 -r 9b8837c53c09 NEWS --- a/NEWS Mon Mar 05 16:38:04 2012 -0500 +++ b/NEWS Wed Mar 14 15:05:54 2012 -0400 @@ -9,6 +9,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.2.1 (2012-XX-XX): +* Plugin + - PR895: IcedTea-Web searches for missing classes on each loadClass or findClass New in release 1.2 (2012-03-05): * Security updates: diff -r aac62fe468b1 -r 9b8837c53c09 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Mar 05 16:38:04 2012 -0500 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Mar 14 15:05:54 2012 -0400 @@ -37,6 +37,7 @@ import java.security.PrivilegedAction; import java.security.PrivilegedExceptionAction; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; @@ -47,9 +48,11 @@ import java.util.Set; import java.util.TreeSet; import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.Manifest; + import net.sourceforge.jnlp.AppletDesc; import net.sourceforge.jnlp.ApplicationDesc; import net.sourceforge.jnlp.DownloadOptions; @@ -1874,6 +1877,11 @@ JNLPClassLoader parentJNLPClassLoader; + /** + * Classes that are not found, so that findClass can skip them next time + */ + ConcurrentHashMap<String, URL[]> notFoundResources = new ConcurrentHashMap<String, URL[]>(); + public CodeBaseClassLoader(URL[] urls, JNLPClassLoader cl) { super(urls); parentJNLPClassLoader = cl; @@ -1885,8 +1893,18 @@ } @Override - public Class<?> findClass(String name) throws ClassNotFoundException { - return super.findClass(name); + public Class<?> findClass(String name) throws ClassNotFoundException { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + throw new ClassNotFoundException(name); + + try { + return super.findClass(name); + } catch (ClassNotFoundException cnfe) { + notFoundResources.put(name, super.getURLs()); + throw cnfe; + } } /** @@ -1913,17 +1931,41 @@ @Override public Enumeration<URL> findResources(String name) throws IOException { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + return (new Vector<URL>(0)).elements(); + if (!name.startsWith("META-INF")) { - return super.findResources(name); + Enumeration<URL> urls = super.findResources(name); + + if (!urls.hasMoreElements()) { + notFoundResources.put(name, super.getURLs()); + } + + return urls; } + return (new Vector<URL>(0)).elements(); } @Override public URL findResource(String name) { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + return null; + if (!name.startsWith("META-INF")) { - return super.findResource(name); + URL url = super.findResource(name); + + if (url == null) { + notFoundResources.put(name, super.getURLs()); + } + + return url; } + return null; } } diff -r aac62fe468b1 -r 9b8837c53c09 tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java Wed Mar 14 15:05:54 2012 -0400 @@ -0,0 +1,142 @@ +/* CodeBaseClassLoaderTest.java + Copyright (C) 2012 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 net.sourceforge.jnlp.runtime; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.net.URL; +import java.util.Locale; + +import net.sourceforge.jnlp.JNLPFile; +import net.sourceforge.jnlp.LaunchException; +import net.sourceforge.jnlp.ParseException; +import net.sourceforge.jnlp.ResourcesDesc; +import net.sourceforge.jnlp.SecurityDesc; +import net.sourceforge.jnlp.runtime.JNLPClassLoader; +import net.sourceforge.jnlp.runtime.JNLPClassLoader.CodeBaseClassLoader; + +import org.junit.Test; + +public class CodeBaseClassLoaderTest { + + @Test + public void testResourceLoadSuccessCaching() throws LaunchException, ClassNotFoundException, IOException, ParseException { + final URL JAR_URL = new URL("http://icedtea.classpath.org/netx/about.jar"); + final URL CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); + + JNLPFile dummyJnlpFile = new JNLPFile() { + @Override + public ResourcesDesc getResources() { + return new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); + } + + @Override + public URL getCodeBase() { + return CODEBASE_URL; + } + + @Override + public SecurityDesc getSecurity() { + return new SecurityDesc(null, SecurityDesc.SANDBOX_PERMISSIONS, null); + } + }; + + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent); + + long startTime, stopTime; + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main.class"); + stopTime = System.nanoTime(); + long timeOnFirstTry = stopTime - startTime; + System.out.println(timeOnFirstTry); + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main.class"); + stopTime = System.nanoTime(); + long timeOnSecondTry = stopTime - startTime; + System.out.println(timeOnSecondTry); + + assertTrue(timeOnSecondTry < (timeOnFirstTry / 10)); + } + + @Test + public void testResourceLoadFailureCaching() throws LaunchException, ClassNotFoundException, IOException, ParseException { + final URL JAR_URL = new URL("http://icedtea.classpath.org/netx/about.jar"); + final URL CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); + + JNLPFile dummyJnlpFile = new JNLPFile() { + @Override + public ResourcesDesc getResources() { + return new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); + } + + @Override + public URL getCodeBase() { + return CODEBASE_URL; + } + + @Override + public SecurityDesc getSecurity() { + return new SecurityDesc(null, SecurityDesc.SANDBOX_PERMISSIONS, null); + } + }; + + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent); + + long startTime, stopTime; + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main_FOO_.class"); + stopTime = System.nanoTime(); + long timeOnFirstTry = stopTime - startTime; + System.out.println(timeOnFirstTry); + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main_FOO_.class"); + stopTime = System.nanoTime(); + long timeOnSecondTry = stopTime - startTime; + System.out.println(timeOnSecondTry); + + assertTrue(timeOnSecondTry < (timeOnFirstTry / 10)); + } + +} From dbhole at icedtea.classpath.org Wed Mar 14 12:18:16 2012 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 14 Mar 2012 19:18:16 +0000 Subject: /hg/icedtea-web: PR895: IcedTea-Web searches for missing classes... Message-ID: <hg.a988f5155172.1331752696.8643924302249223276@icedtea.classpath.org> changeset a988f5155172 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a988f5155172 author: Deepak Bhole <dbhole at redhat.com> date: Wed Mar 14 15:05:54 2012 -0400 PR895: IcedTea-Web searches for missing classes on each loadClass or findClass diffstat: ChangeLog | 15 + NEWS | 1 + netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 50 +++- tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java | 142 ++++++++++ 4 files changed, 204 insertions(+), 4 deletions(-) diffs (279 lines): diff -r 905383606ece -r a988f5155172 ChangeLog --- a/ChangeLog Wed Mar 14 11:27:16 2012 -0400 +++ b/ChangeLog Wed Mar 14 15:05:54 2012 -0400 @@ -1,3 +1,18 @@ +2012-03-14 Deepak Bhole <dbhole at redhat.com> + Omair Majid <omajid at redhat.com> + + PR895: IcedTea-Web searches for missing classes on each loadClass or + findClass + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java + (CodeBaseClassLoader): Added new map to track resources that are not + found. + (findClass): If resource was not found before, return immediately. If + resource was not found for the first time, record it in the new map. + (findResouces): Same. + (findResource): Same. + * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: + Test case for PR895 from Omair Majid. + 2012-03-14 Omair Majid <omajid at redhat.com> Print exceptions to terminal when running in gui mode too. diff -r 905383606ece -r a988f5155172 NEWS --- a/NEWS Wed Mar 14 11:27:16 2012 -0400 +++ b/NEWS Wed Mar 14 15:05:54 2012 -0400 @@ -11,6 +11,7 @@ New in release 1.3 (2012-XX-XX): * Plugin - PR820: IcedTea-Web 1.1.3 crashing Firefox when loading Citrix XenApp + - PR895: IcedTea-Web searches for missing classes on each loadClass or findClass New in release 1.2 (2011-XX-XX): * Security updates: diff -r 905383606ece -r a988f5155172 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Mar 14 11:27:16 2012 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Mar 14 15:05:54 2012 -0400 @@ -37,6 +37,7 @@ import java.security.PrivilegedAction; import java.security.PrivilegedExceptionAction; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; @@ -47,9 +48,11 @@ import java.util.Set; import java.util.TreeSet; import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.Manifest; + import net.sourceforge.jnlp.AppletDesc; import net.sourceforge.jnlp.ApplicationDesc; import net.sourceforge.jnlp.DownloadOptions; @@ -1874,6 +1877,11 @@ JNLPClassLoader parentJNLPClassLoader; + /** + * Classes that are not found, so that findClass can skip them next time + */ + ConcurrentHashMap<String, URL[]> notFoundResources = new ConcurrentHashMap<String, URL[]>(); + public CodeBaseClassLoader(URL[] urls, JNLPClassLoader cl) { super(urls); parentJNLPClassLoader = cl; @@ -1885,8 +1893,18 @@ } @Override - public Class<?> findClass(String name) throws ClassNotFoundException { - return super.findClass(name); + public Class<?> findClass(String name) throws ClassNotFoundException { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + throw new ClassNotFoundException(name); + + try { + return super.findClass(name); + } catch (ClassNotFoundException cnfe) { + notFoundResources.put(name, super.getURLs()); + throw cnfe; + } } /** @@ -1913,17 +1931,41 @@ @Override public Enumeration<URL> findResources(String name) throws IOException { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + return (new Vector<URL>(0)).elements(); + if (!name.startsWith("META-INF")) { - return super.findResources(name); + Enumeration<URL> urls = super.findResources(name); + + if (!urls.hasMoreElements()) { + notFoundResources.put(name, super.getURLs()); + } + + return urls; } + return (new Vector<URL>(0)).elements(); } @Override public URL findResource(String name) { + + // If we have searched this path before, don't try again + if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) + return null; + if (!name.startsWith("META-INF")) { - return super.findResource(name); + URL url = super.findResource(name); + + if (url == null) { + notFoundResources.put(name, super.getURLs()); + } + + return url; } + return null; } } diff -r 905383606ece -r a988f5155172 tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java Wed Mar 14 15:05:54 2012 -0400 @@ -0,0 +1,142 @@ +/* CodeBaseClassLoaderTest.java + Copyright (C) 2012 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 net.sourceforge.jnlp.runtime; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.net.URL; +import java.util.Locale; + +import net.sourceforge.jnlp.JNLPFile; +import net.sourceforge.jnlp.LaunchException; +import net.sourceforge.jnlp.ParseException; +import net.sourceforge.jnlp.ResourcesDesc; +import net.sourceforge.jnlp.SecurityDesc; +import net.sourceforge.jnlp.runtime.JNLPClassLoader; +import net.sourceforge.jnlp.runtime.JNLPClassLoader.CodeBaseClassLoader; + +import org.junit.Test; + +public class CodeBaseClassLoaderTest { + + @Test + public void testResourceLoadSuccessCaching() throws LaunchException, ClassNotFoundException, IOException, ParseException { + final URL JAR_URL = new URL("http://icedtea.classpath.org/netx/about.jar"); + final URL CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); + + JNLPFile dummyJnlpFile = new JNLPFile() { + @Override + public ResourcesDesc getResources() { + return new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); + } + + @Override + public URL getCodeBase() { + return CODEBASE_URL; + } + + @Override + public SecurityDesc getSecurity() { + return new SecurityDesc(null, SecurityDesc.SANDBOX_PERMISSIONS, null); + } + }; + + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent); + + long startTime, stopTime; + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main.class"); + stopTime = System.nanoTime(); + long timeOnFirstTry = stopTime - startTime; + System.out.println(timeOnFirstTry); + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main.class"); + stopTime = System.nanoTime(); + long timeOnSecondTry = stopTime - startTime; + System.out.println(timeOnSecondTry); + + assertTrue(timeOnSecondTry < (timeOnFirstTry / 10)); + } + + @Test + public void testResourceLoadFailureCaching() throws LaunchException, ClassNotFoundException, IOException, ParseException { + final URL JAR_URL = new URL("http://icedtea.classpath.org/netx/about.jar"); + final URL CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); + + JNLPFile dummyJnlpFile = new JNLPFile() { + @Override + public ResourcesDesc getResources() { + return new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); + } + + @Override + public URL getCodeBase() { + return CODEBASE_URL; + } + + @Override + public SecurityDesc getSecurity() { + return new SecurityDesc(null, SecurityDesc.SANDBOX_PERMISSIONS, null); + } + }; + + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new URL[] { JAR_URL, CODEBASE_URL }, parent); + + long startTime, stopTime; + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main_FOO_.class"); + stopTime = System.nanoTime(); + long timeOnFirstTry = stopTime - startTime; + System.out.println(timeOnFirstTry); + + startTime = System.nanoTime(); + classLoader.findResource("net/sourceforge/jnlp/about/Main_FOO_.class"); + stopTime = System.nanoTime(); + long timeOnSecondTry = stopTime - startTime; + System.out.println(timeOnSecondTry); + + assertTrue(timeOnSecondTry < (timeOnFirstTry / 10)); + } + +} From dbhole at redhat.com Wed Mar 14 12:18:51 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 14 Mar 2012 15:18:51 -0400 Subject: [icedtea-web] RFC: Patch to fix PR895 In-Reply-To: <4F5FB2EA.7020506@redhat.com> References: <4F5AA97D.9080301@redhat.com> <20120312180357.GE2401@redhat.com> <20120312182022.GF2401@redhat.com> <4F5E411E.6070505@redhat.com> <20120312205616.GH2401@redhat.com> <4F5EA5ED.2060707@redhat.com> <20120313135944.GJ2401@redhat.com> <4F5F5436.1090905@redhat.com> <20120313201900.GN2401@redhat.com> <4F5FB2EA.7020506@redhat.com> Message-ID: <20120314191851.GC4154@redhat.com> * Omair Majid <omajid at redhat.com> [2012-03-13 16:49]: > On 03/13/2012 04:19 PM, Deepak Bhole wrote: > > * Omair Majid <omajid at redhat.com> [2012-03-13 10:05]: > >> On 03/13/2012 09:59 AM, Deepak Bhole wrote: > >>> Ah, yeah I thought of checking for time too but I was hoping to avoid it > >>> as it is not reliable. In any case, given that neither of us have a > >>> better way in mind, I guess this is better than nothing :) > >>> > >> > >> Yeah, that's what I was thinking too. If we find a cleaner way to do > >> this check later on, we can always change things. > >> > >>>> As a side note, we should really try and reduce the inter-dependencies > >>>> (between the classloader, jnlpfile and downloading), but this works for now. > >>>> > >>> > >>> Yeah :/ there have been other cases where this has been a hindrance to > >>> writing tests too. > >> > >> I will poke at this some more when I have some spare time. > >> > >>> Are you OK with the content of the patch? > >> > >> Yeah, I think it's fine for 1.1 and 1.2. It looks like you agree that we > >> should wait a bit for HEAD, and that sounds fine to me too. > >> > > > > Sorry, I misread the previous message. I thought we were talking about > > the fix to the C++ side and to put it in HEAD only initially. > > > > I think that this fix should go into all branches. IMO regardless of the > > fact that the C++ side may be causing excessive hammering, we should > > still make it so that we don't hit the server over and over for a class > > that we know does not exist (for that instance). > > > > Fair enough. I am okay with the patch. > Thanks! Pushed: http://icedtea.classpath.org/hg/icedtea-web/rev/a988f5155172 http://icedtea.classpath.org/hg/release/icedtea-web-1.1/rev/d4a6d82ed0ae http://icedtea.classpath.org/hg/release/icedtea-web-1.2/rev/9b8837c53c09 Cheers, Deepak From ddadacha at redhat.com Wed Mar 14 13:08:52 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Wed, 14 Mar 2012 16:08:52 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F6091CE.7010707@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> <4F6091CE.7010707@redhat.com> Message-ID: <4F60FAD4.1030601@redhat.com> On 14/03/12 08:40 AM, Jiri Vanek wrote: > Yap. I think this can go in now with minor fix - In changelog you have > mentioned + * > tests/jnlp_tests/simple/InformationTitleVendorParser/srcs/TitleVendorParser.java, > but this one is not going in (as you are using simpletest1 and the file > is not present in patch), Ensure also if this > InformationTitleVendorParser/srcs dir is really empty in your testing > builds (if isn't ensure all is working when emptied). > btw - spaces in changelog instead of tabs, although I suspect email > clients to did so, please check before push. Done, I have removed the srcs dir too. > Thanx for test and after minor issue being fixed, please push. I actually noticed one more issue, after Omair's fix[1] for printing errors to terminal, it no longer prints the exception. I've changed the code to match part of the output. Here's what would be printed for a JNLP without <information>: netx: Read Error: Could not read or parse the JNLP file. (No information section defined) Here are the changes between this attached patch and the previous one: - String s2 = "(?s).*net.sourceforge.jnlp.ParseException.{0,5}" + exceptionMessage + "(?s).*"; + // Looking for "Could not read or parse the JNLP file. (${DESCRIPTION})" + String s2 = "(?s).*Could not read or parse the JNLP file.{0,5}" + exceptionMessage + "(?s).*"; Can you just clarify this patch is okay for HEAD too? ChangeLog +2012-03-14 Danesh Dadachanji <ddadacha at redhat.com> + + Applications using JNLP files without a title or vendor section + still run, despite them being required elements. + * netx/net/sourceforge/jnlp/Parser.java: + (getInformationDesc): If title or vendor are not found in info, + a new ParseException is thrown. + * netx/net/sourceforge/jnlp/resources/Messages.properties: + Added PNoTitleElement and PNoVendorElement + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/TitleVendorParserTest.java: + New test that runs JNLPs in a combination of missing information, title + and vendor tags, checking for the appropriate exceptions. + Cheers, Danesh -------------- next part -------------- A non-text attachment was scrubbed... Name: title-vendor-required-05.patch Type: text/x-patch Size: 15234 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120314/c1a6b174/title-vendor-required-05.patch From pcpa at mandriva.com.br Wed Mar 14 21:09:56 2012 From: pcpa at mandriva.com.br (pcpa at mandriva.com.br) Date: Thu, 15 Mar 2012 01:09:56 -0300 (BRT) Subject: ARM: More intrinsics In-Reply-To: <4F60D748.9000103@redhat.com> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> Message-ID: <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> > Xerxes noticed an inconsistency in my patch. I've removed the unused > masks, and redefined the condition in the atomic operations to use ETT > (else, true, true) rather than the confused encoding I used before. > > So, it's now > > + it(codebuf, COND_EQ, IT_MASK_ETT); > > instead of > > - it(codebuf, COND_NE, IT_MASK_TEE); I feel there is something bogus here, because the first condition should be 'T' always, and the mask is based on bit 0 of the test condition. Talking this because I wrote support for arm thumb jit recently. > I had to do this because it's the only way the encodings make any > sense. There isn't really any encoding for TEE that works with > COND_NE: it has to be expressed in the binary as COND_EQ:ETT. > (If cond is true, don't do X, but do Y and Z.) For easier viewing instead of pointing to some link, the code I use to encode it* is: static void _tcit(jit_state_t *_jit, unsigned int tc, int it) { int c; int m; c = (tc >> 28) & 1; assert(!(tc & 0xfffffff) && tc != ARM_CC_NV); switch (it) { case THUMB2_IT: m = 1<<3; break; case THUMB2_ITT: m = (c<<3)| (1<<2); break; case THUMB2_ITE: m = (!c<<3)| (1<<2); break; case THUMB2_ITTT: m = (c<<3)| (c<<2)| (1<<1); break; case THUMB2_ITET: m = (!c<<3)| (c<<2)| (1<<1); break; case THUMB2_ITTE: m = (c<<3)|(!c<<2)| (1<<1); break; case THUMB2_ITEE: m = (!c<<3)|(!c<<2)| (1<<1); break; case THUMB2_ITTTT: m = (c<<3)| (c<<2)| (c<<1)|1; break; case THUMB2_ITETT: m = (!c<<3)| (c<<2)| (c<<1)|1; break; case THUMB2_ITTET: m = (c<<3)|(!c<<2)| (c<<1)|1; break; case THUMB2_ITEET: m = (!c<<3)|(!c<<2)| (c<<1)|1; break; case THUMB2_ITTTE: m = (c<<3)| (c<<2)|(!c<<1)|1; break; case THUMB2_ITETE: m = (!c<<3)| (c<<2)|(!c<<1)|1; break; case THUMB2_ITTEE: m = (c<<3)|(!c<<2)|(!c<<1)|1; break; case THUMB2_ITEEE: m = (!c<<3)|(!c<<2)|(!c<<1)|1; break; default: abort(); } assert(m && (tc != ARM_CC_AL || !(m & (m - 1)))); is(0xbf00 | (tc >> 24) | m); } NE:TEE should be 0xbf02, but my code actually uses only IT and ITE, so there may be bugs as I did not test all possible code paths so far. Two IT when conditions are not inverse, e.g. in vfp code once to ccmov after equality test and again to ccmov if unordered. Link to most of my thumb jit code: http://code.google.com/p/exl/source/browse/trunk/lib/ejit_arm-cpu.c > If you want the whole patch resubmitting with these changes I will do > so. > > Andrew. > > > > diff -r f2b27b309c43 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp > --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 14 05:47:19 > 2012 -0400 > +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 14 13:20:41 > 2012 -0400 > @@ -3039,13 +3039,10 @@ > #define T_CBZ(r, uoff) (0xb100 | (((uoff) & 0x1f) << 3) | (((uoff) & 0x20) << > (8-5)) | ((r) & 7)) > #define T_CBNZ(r, uoff) (0xb900 | (((uoff) & 0x1f) << 3) | (((uoff) & > 0x20) << (8-5)) | ((r) & 7)) > > -#define T_IT(cond, mask) (0xbf00 | (conds[cond] << 4) | (mask)) > +#define T_IT(cond, mask) (0xbf00 | (conds[cond] << 4) ^ (mask)) > > #define IT_MASK_T 8 > -#define IT_MASK_TE 0x14 > -#define IT_MASK_TT 0x1e > -#define IT_MASK_TTT 0x1e > -#define IT_MASK_TEE 0x12 > +#define IT_MASK_ETT 0x12 > > #define PATCH(loc) do { \ > unsigned oldidx = codebuf->idx; \ > @@ -5077,7 +5074,8 @@ > // FIXME: The JNI StrictMath routines don't use the JNIEnv *env > // parameter, so it's arguably pointless to pass it here. > add_imm(jinfo->codebuf, ARM_R0, Rthread, THREAD_JNI_ENVIRONMENT); > - blx(jinfo->codebuf, (unsigned)entry_point); > + mov_imm(jinfo->codebuf, ARM_IP, (unsigned)entry_point); > + blx_reg(jinfo->codebuf, ARM_IP); > bcc_patch(jinfo->codebuf, COND_EQ, loc); > vfp_to_jstack(jinfo, VFP_D0); > > @@ -5125,7 +5123,7 @@ > branch(codebuf, COND_NE, retry); > bcc_patch(jinfo->codebuf, COND_NE, loc_failed); > > - it(codebuf, COND_NE, IT_MASK_TEE); > + it(codebuf, COND_EQ, IT_MASK_ETT); > mov_imm(codebuf, result, 0); > mov_imm(codebuf, result, 1); > fullBarrier(codebuf); > @@ -5172,7 +5170,7 @@ > > unsigned result = JSTACK_REG(jinfo->jstack); > > - it(codebuf, COND_NE, IT_MASK_TEE); > + it(codebuf, COND_EQ, IT_MASK_ETT); > mov_imm(codebuf, result, 0); > mov_imm(codebuf, result, 1); > fullBarrier(codebuf); Paulo From ptisnovs at icedtea.classpath.org Thu Mar 15 02:00:20 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 15 Mar 2012 09:00:20 +0000 Subject: /hg/gfx-test: 2012-03-15 Pavel Tisnovsky <ptisnovs@redhat.com> Message-ID: <hg.611fd4d84e06.1331802020.-6248649288953172555@icedtea.classpath.org> changeset 611fd4d84e06 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=611fd4d84e06 author: Pavel Tisnovsky <ptisnovs at redhat.com> date: Thu Mar 15 09:59:13 2012 +0100 2012-03-15 Pavel Tisnovsky <ptisnovs at redhat.com> * src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java: Added plenty of new tests. * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: Minor JavaDoc improvements. diffstat: ChangeLog | 8 + src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java | 2 +- src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java | 2 +- src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java | 514 +++++++++- 4 files changed, 522 insertions(+), 4 deletions(-) diffs (truncated from 578 to 500 lines): diff -r cd8e6f958548 -r 611fd4d84e06 ChangeLog --- a/ChangeLog Wed Mar 14 11:54:57 2012 +0100 +++ b/ChangeLog Thu Mar 15 09:59:13 2012 +0100 @@ -1,3 +1,11 @@ +2012-03-15 Pavel Tisnovsky <ptisnovs at redhat.com> + + * src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java: + Added plenty of new tests. + * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: + * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: + Minor JavaDoc improvements. + 2012-03-14 Pavel Tisnovsky <ptisnovs at redhat.com> * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: diff -r cd8e6f958548 -r 611fd4d84e06 src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Wed Mar 14 11:54:57 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Thu Mar 15 09:59:13 2012 +0100 @@ -60,7 +60,7 @@ /** * This test check if clipping is working correctly for an empty, filled - * and textured circle which is clipped by a polygonal shape. + * and textured circle which is clipped by a concave polygonal shape. * * @author Pavel Tisnovsky */ diff -r cd8e6f958548 -r 611fd4d84e06 src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java Wed Mar 14 11:54:57 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java Thu Mar 15 09:59:13 2012 +0100 @@ -60,7 +60,7 @@ /** * This test check if clipping is working correctly for an empty, filled - * and textured circle which is clipped by a polygonal shape. + * and textured circle which is clipped by a convex polygonal shape. * * @author Pavel Tisnovsky */ diff -r cd8e6f958548 -r 611fd4d84e06 src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java Wed Mar 14 11:54:57 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java Thu Mar 15 09:59:13 2012 +0100 @@ -40,7 +40,16 @@ package org.gfxtest.testsuites; +import java.awt.Graphics2D; + + + +import org.gfxtest.framework.CommonClippingOperations; +import org.gfxtest.framework.CommonRenderingStyles; +import org.gfxtest.framework.CommonShapesRenderer; import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.TestImage; +import org.gfxtest.framework.TestResult; import org.gfxtest.framework.annotations.GraphicsPrimitive; import org.gfxtest.framework.annotations.GraphicsPrimitives; import org.gfxtest.framework.annotations.TestType; @@ -51,7 +60,7 @@ /** * This test check if clipping is working correctly for an empty, filled - * and textured circle which is clipped by a polygonal shape. + * and textured circle which is clipped by a self intersecting polygonal shape. * * @author Pavel Tisnovsky */ @@ -61,7 +70,508 @@ @Zoom(1) public class ClippingCircleBySelfIntersectingPolygonalShape extends GfxTest { - + /** + * Prepare canvas for the rendering. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void basicSetupForRendering(TestImage image, Graphics2D graphics2d) + { + // create clip area which is constructed from the self intersecting polygonal shape + CommonClippingOperations.createClipUsingSelfIntersectingPolygonalShape(image, graphics2d); + } + + /** + * Draw empty circle clipped by a self intersecting polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void drawEmptyCircleClippedByPolygonalShape(TestImage image, Graphics2D graphics2d) + { + // prepare canvas for the rendering + basicSetupForRendering(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // draw the area + CommonShapesRenderer.drawCircle(image, graphics2d); + } + + /** + * Draw filled circle clipped by a self intersecting polygonal shape. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + */ + private static void drawFilledCircleClippedByPolygonalShape(TestImage image, Graphics2D graphics2d) + { + // prepare canvas for the rendering + basicSetupForRendering(image, graphics2d); + // fill the area + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a self intersecting polygonal shape. Circle is drawn using alpha + * paint with red color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintRed(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillRedColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingSelfIntersectingPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a self intersecting polygonal shape. Circle is drawn using alpha + * paint with green color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintGreen(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillGreenColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingSelfIntersectingPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a self intersecting polygonal shape. Circle is drawn using alpha + * paint with blue color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintBlue(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillBlueColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingSelfIntersectingPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using extra wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeExtraWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using zero wide stroke paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeZeroWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the circle + drawEmptyCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using color paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeColorPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setFillColor(graphics2d); + // create clip shape and fill the shape + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with red color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 0); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with red color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 25); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with red color at 50% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed050(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 50% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 50); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with red color at 75% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed075(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 75% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 75); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with red color at 100% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintRed100(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 100% transparency + drawCircleClippedByPolygonalShapeAlphaPaintRed(image, graphics2d, 100); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with green color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 0); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with green color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 25); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with green color at 50% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen050(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 50% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 50); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with green color at 75% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen075(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 75% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 75); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with green color at 100% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintGreen100(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting polygonal shape using alpha paint with 100% transparency + drawCircleClippedByPolygonalShapeAlphaPaintGreen(image, graphics2d, 100); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using alpha paint with blue color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintBlue000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by self intersecting self intersecting polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintBlue(image, graphics2d, 0); From aph at redhat.com Thu Mar 15 02:21:04 2012 From: aph at redhat.com (Andrew Haley) Date: Thu, 15 Mar 2012 09:21:04 +0000 Subject: ARM: More intrinsics In-Reply-To: <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> Message-ID: <4F61B480.9040101@redhat.com> On 03/15/2012 04:09 AM, pcpa at mandriva.com.br wrote: >> Xerxes noticed an inconsistency in my patch. I've removed the unused >> masks, and redefined the condition in the atomic operations to use ETT >> (else, true, true) rather than the confused encoding I used before. >> >> So, it's now >> >> + it(codebuf, COND_EQ, IT_MASK_ETT); >> >> instead of >> >> - it(codebuf, COND_NE, IT_MASK_TEE); > > I feel there is something bogus here, because the first condition > should be 'T' always, and the mask is based on bit 0 of the test > condition. Talking this because I wrote support for arm thumb jit > recently. Well, that's how the ARM asm describes it, but that's not what the encodings really do. It's a shame they chose to describe it in that way. >> I had to do this because it's the only way the encodings make any >> sense. There isn't really any encoding for TEE that works with >> COND_NE: it has to be expressed in the binary as COND_EQ:ETT. >> (If cond is true, don't do X, but do Y and Z.) > > For easier viewing instead of pointing to some link, the code I use > to encode it* is: > > static void > _tcit(jit_state_t *_jit, unsigned int tc, int it) > { > int c; > int m; > c = (tc >> 28) & 1; > assert(!(tc & 0xfffffff) && tc != ARM_CC_NV); > switch (it) { > case THUMB2_IT: m = 1<<3; break; > case THUMB2_ITT: m = (c<<3)| (1<<2); break; > case THUMB2_ITE: m = (!c<<3)| (1<<2); break; > case THUMB2_ITTT: m = (c<<3)| (c<<2)| (1<<1); break; > case THUMB2_ITET: m = (!c<<3)| (c<<2)| (1<<1); break; > case THUMB2_ITTE: m = (c<<3)|(!c<<2)| (1<<1); break; > case THUMB2_ITEE: m = (!c<<3)|(!c<<2)| (1<<1); break; > case THUMB2_ITTTT: m = (c<<3)| (c<<2)| (c<<1)|1; break; > case THUMB2_ITETT: m = (!c<<3)| (c<<2)| (c<<1)|1; break; > case THUMB2_ITTET: m = (c<<3)|(!c<<2)| (c<<1)|1; break; > case THUMB2_ITEET: m = (!c<<3)|(!c<<2)| (c<<1)|1; break; > case THUMB2_ITTTE: m = (c<<3)| (c<<2)|(!c<<1)|1; break; > case THUMB2_ITETE: m = (!c<<3)| (c<<2)|(!c<<1)|1; break; > case THUMB2_ITTEE: m = (c<<3)|(!c<<2)|(!c<<1)|1; break; > case THUMB2_ITEEE: m = (!c<<3)|(!c<<2)|(!c<<1)|1; break; > default: abort(); > } > assert(m && (tc != ARM_CC_AL || !(m & (m - 1)))); > is(0xbf00 | (tc >> 24) | m); > } LOL! That's just the sort of thing I was trying to avoid! :-) I'd love to use this, but I think I probably can't. I could use this idea for just the couple of conditions I actually use, though, without requiring copyright assignment. Thanks, Andrew. From aph at redhat.com Thu Mar 15 04:34:30 2012 From: aph at redhat.com (Andrew Haley) Date: Thu, 15 Mar 2012 11:34:30 +0000 Subject: ARM: More intrinsics In-Reply-To: <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> Message-ID: <4F61D3C6.1090100@redhat.com> On 03/15/2012 04:09 AM, pcpa at mandriva.com.br wrote: >> Xerxes noticed an inconsistency in my patch. I've removed the unused >> masks, and redefined the condition in the atomic operations to use ETT >> (else, true, true) rather than the confused encoding I used before. >> >> So, it's now >> >> + it(codebuf, COND_EQ, IT_MASK_ETT); >> >> instead of >> >> - it(codebuf, COND_NE, IT_MASK_TEE); > > I feel there is something bogus here, because the first condition > should be 'T' always, and the mask is based on bit 0 of the test > condition. Talking this because I wrote support for arm thumb jit > recently. I've now got this: int it(CodeBuf *codebuf, unsigned cond, unsigned mask) { if (cond & 1) { // If this is a negated condition, flip all the bits above the // least significant bit that is 1. Note that at least one bit is // always 1 in mask switch (mask & (-mask)) { case 8: break; case 4: mask ^= 8; break; case 2: mask ^= 0x0c; break; case 1: mask ^= 0x0e; break; default: // Impossible unless someone specified an incorrect mask longjmp(compiler_error_env, COMPILER_RESULT_FAILED); } } return out_16(codebuf, T_IT(cond, mask)); } Which does the right thing per the spec and is simpler. Thanks for the idea, Andrew. From aph at redhat.com Thu Mar 15 04:44:37 2012 From: aph at redhat.com (Andrew Haley) Date: Thu, 15 Mar 2012 11:44:37 +0000 Subject: ARM: More intrinsics In-Reply-To: <4F61D3C6.1090100@redhat.com> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> <4F61D3C6.1090100@redhat.com> Message-ID: <4F61D625.100@redhat.com> This is the correct patch, I think. Andrew. diff -r f2b27b309c43 ChangeLog --- a/ChangeLog Wed Mar 14 05:47:19 2012 -0400 +++ b/ChangeLog Thu Mar 15 07:42:50 2012 -0400 @@ -1,3 +1,10 @@ +2012-03-15 Andrew Haley <aph at redhat.com> + + * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (it): Add code to + handle negated conditions. + (handle_special_method): Use blx_reg rather than blx in case the + target is thumb code. + 2012-03-14 Andrew Haley <aph at redhat.com> * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def (ldc, ldc_w): diff -r f2b27b309c43 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 14 05:47:19 2012 -0400 +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 07:42:50 2012 -0400 @@ -3042,10 +3042,7 @@ #define T_IT(cond, mask) (0xbf00 | (conds[cond] << 4) | (mask)) #define IT_MASK_T 8 -#define IT_MASK_TE 0x14 -#define IT_MASK_TT 0x1e -#define IT_MASK_TTT 0x1e -#define IT_MASK_TEE 0x12 +#define IT_MASK_TEE 0x0e #define PATCH(loc) do { \ unsigned oldidx = codebuf->idx; \ @@ -3071,6 +3068,28 @@ int it(CodeBuf *codebuf, unsigned cond, unsigned mask) { + if (cond & 1) { + // If this is a negated condition, flip all the bits above the + // least significant bit that is 1. Note that at least one bit is + // always 1 in mask + switch (mask & (-mask)) { + case 8: + break; + case 4: + mask ^= 8; + break; + case 2: + mask ^= 0x0c; + break; + case 1: + mask ^= 0x0e; + break; + default: + // Impossible unless someone specified an incorrect mask + longjmp(compiler_error_env, COMPILER_RESULT_FAILED); + } + } + return out_16(codebuf, T_IT(cond, mask)); } @@ -5077,7 +5096,8 @@ // FIXME: The JNI StrictMath routines don't use the JNIEnv *env // parameter, so it's arguably pointless to pass it here. add_imm(jinfo->codebuf, ARM_R0, Rthread, THREAD_JNI_ENVIRONMENT); - blx(jinfo->codebuf, (unsigned)entry_point); + mov_imm(jinfo->codebuf, ARM_IP, (unsigned)entry_point); + blx_reg(jinfo->codebuf, ARM_IP); bcc_patch(jinfo->codebuf, COND_EQ, loc); vfp_to_jstack(jinfo, VFP_D0); From aph at redhat.com Thu Mar 15 08:26:11 2012 From: aph at redhat.com (Andrew Haley) Date: Thu, 15 Mar 2012 15:26:11 +0000 Subject: ARM: Support for OpenJDK 7 Message-ID: <4F620A13.70308@redhat.com> This is in three parts: 1. Copy files from IcedTea 6's arm_port to the to the icedtea7-forest-2.1 branch. It has to be the 2.1 branch because Zero doesn't work on later HotSpot releases, and won't for some time to com. 2. Apply ARM patches from IcedTea 6. 3. Make a few changes for HSX 22, as below. After this I don't propose to contine working on IcedTea 6. Apart from bug fixes, the ARM port will be frozen. Andrew. 2012-03-15 Andrew Haley <aph at redhat.com> * src/cpu/zero/vm/thumb2.cpp: Update copyright. Constify various jbyte* pointers. Use a Symbol, not a symbolOopDesc. * src/cpu/zero/vm/cppInterpreter_arm.S (asm_method_table): Add implementation of java.lang.ref.Reference.get(). * src/cpu/zero/vm/asm_helper.cpp: Update copyright. (klass_at_addr): Fix indentation. (Helper_Raise): use a Symbol, not a symbolOopDesc. * gcc.make (FASTDEBUG_CFLAGS): Add zero. (OPT_CFLAGS): Likewise. # HG changeset patch # User aph # Date 1331816821 14400 # Node ID 30c4dc24823a73138a55de5bb152f9b688bb859b # Parent 065df7302cf5b31fa9fbf76e464030f80de2d4a2 Changes for HSX22 diff -r 065df7302cf5 -r 30c4dc24823a make/linux/makefiles/gcc.make --- a/make/linux/makefiles/gcc.make Thu Mar 15 08:54:12 2012 -0400 +++ b/make/linux/makefiles/gcc.make Thu Mar 15 09:07:01 2012 -0400 @@ -249,6 +249,7 @@ FASTDEBUG_CFLAGS/amd64 = -g FASTDEBUG_CFLAGS/arm = -g FASTDEBUG_CFLAGS/ppc = -g + FASTDEBUG_CFLAGS/zero = -g FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) FASTDEBUG_CFLAGS += -gstabs @@ -258,6 +259,7 @@ OPT_CFLAGS/amd64 = -g OPT_CFLAGS/arm = -g OPT_CFLAGS/ppc = -g + OPT_CFLAGS/zero = -g OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) OPT_CFLAGS += -gstabs diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/asm_helper.cpp --- a/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 08:54:12 2012 -0400 +++ b/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 09:07:01 2012 -0400 @@ -1,5 +1,6 @@ /* * Copyright 2009, 2010 Edward Nevill + * Copyright 2011, Red Hat * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as @@ -118,9 +119,9 @@ class VMStructs { public: - static inline klassOop klass_at_addr(constantPoolOop constants, u2 index) { - return (klassOop) *constants->obj_at_addr(index); - } + static inline klassOop klass_at_addr(constantPoolOop constants, u2 index) { + return (klassOop) *constants->obj_at_addr_raw(index); + } }; extern "C" oop Helper_new(interpreterState istate, unsigned index) @@ -314,7 +315,7 @@ } } -extern "C" void Helper_Raise(JavaThread *thread, symbolOopDesc *name, char const *msg) +extern "C" void Helper_Raise(JavaThread *thread, Symbol *name, char const *msg) { ThreadInVMfromJava trans(thread); Exceptions::_throw_msg(thread, "[Bytecoce Interpreter]", 99, name, msg); diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/cppInterpreter_arm.S --- a/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 08:54:12 2012 -0400 +++ b/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 09:07:01 2012 -0400 @@ -1,6 +1,7 @@ #ifdef __arm__ @ Copyright 2009, 2010 Edward Nevill +@ Copyright 2012, Red Hat @ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @ @ This code is free software; you can redistribute it and/or modify it @@ -809,6 +810,7 @@ .word normal_entry // implementation of java.lang.Math.sqrt (x) .word normal_entry // implementation of java.lang.Math.log (x) .word normal_entry // implementation of java.lang.Math.log10 (x) + .word accessor_entry // implementation of java.lang.ref.Reference.get() 3: ALIGN_CODE @@ -7093,7 +7095,7 @@ CompileThreshold_Address: .word 0 InterpreterInvocationLimit_Address: .word 0 UseCompiler_Address: .word 0 -can_post_interpreter_events: .word 0 +can_post_interpreter_events: .word 0 PrintCommandLineFlags_Address: .word 0 oopDesc_Address: .word 0 ThreadLocalStorage_thread_index: .word 0 diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/thumb2.cpp --- a/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 08:54:12 2012 -0400 +++ b/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 09:07:01 2012 -0400 @@ -1,5 +1,6 @@ /* * Copyright 2009, 2010 Edward Nevill + * Copyright 2012, Red Hat * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as @@ -649,7 +650,7 @@ void Thumb2_save_locals(Thumb2_Info *jinfo, unsigned stackdepth); void Thumb2_restore_locals(Thumb2_Info *jinfo, unsigned stackdepth); -static int method_stackchange(jbyte *base) +static int method_stackchange(const jbyte *base) { jbyte c; int stackchange = 0; @@ -680,7 +681,8 @@ return stackchange; } -static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, methodOop method, jbyte *base) +static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, methodOop method, + const jbyte *base) { jbyte c; unsigned arg = 0; @@ -1784,8 +1786,8 @@ case opc_putfield: { int index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(index); + const jbyte *base = sig->base(); jbyte c = *base; int stackchange; @@ -1812,9 +1814,8 @@ case opc_invokestatic: { int index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - //symbolOop name = pool->name_ref_at(index); - symbolOop sig = pool->signature_ref_at(index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(index); + const jbyte *base = sig->base(); //tty->print("%d: %s: %s\n", opcode, name->as_C_string(), sig->as_C_string()); stackdepth += method_stackchange(base); @@ -6005,8 +6006,8 @@ if (!cache->is_resolved((Bytecodes::Code)opcode)) { int java_index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(java_index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(java_index); + const jbyte *base = sig->base(); jbyte c = *base; int handler = H_GETFIELD_WORD; @@ -6073,8 +6074,8 @@ if (!cache->is_resolved((Bytecodes::Code)opcode)) { int java_index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(java_index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(java_index); + const jbyte *base = sig->base(); jbyte c = *base; int handler = H_GETSTATIC_WORD; @@ -6138,8 +6139,8 @@ if (!cache->is_resolved((Bytecodes::Code)opcode)) { int java_index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(java_index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(java_index); + const jbyte *base = sig->base(); jbyte c = *base; int handler = H_PUTFIELD_WORD; @@ -6204,8 +6205,8 @@ if (!cache->is_resolved((Bytecodes::Code)opcode)) { int java_index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(java_index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(java_index); + const jbyte *base = sig->base(); jbyte c = *base; int handler = H_PUTSTATIC_WORD; @@ -7300,9 +7301,9 @@ HandleMark __hm(thread); frame fr = thread->last_frame(); methodOop method = fr.interpreter_frame_method(); - symbolOop name = method->name(); - symbolOop sig = method->signature(); - jbyte *base = sig->base();; + Symbol *name = method->name(); + Symbol *sig = method->signature(); + const jbyte *base = sig->base(); jubyte *code_base = (jubyte *)method->code_base(); int code_size = method->code_size(); From aph at redhat.com Thu Mar 15 08:37:28 2012 From: aph at redhat.com (Andrew Haley) Date: Thu, 15 Mar 2012 15:37:28 +0000 Subject: ARM: Support for OpenJDK 7 Message-ID: <4F620CB8.1080201@redhat.com> This time, without word wrap. This is in three parts: 1. Copy files from IcedTea 6's arm_port to the to the icedtea7-forest-2.1 branch. It has to be the 2.1 branch because Zero doesn't work on later HotSpot releases, and won't for some time to com. 2. Apply ARM patches from IcedTea 6. 3. Make a few changes for HSX 22, as below. After this I don't propose to contine working on IcedTea 6. Apart from bug fixes, the ARM port will be frozen. Andrew. 2012-03-15 Andrew Haley <aph at redhat.com> * src/cpu/zero/vm/thumb2.cpp: Update copyright. Constify various jbyte* pointers. Use a Symbol, not a symbolOopDesc. * src/cpu/zero/vm/cppInterpreter_arm.S (asm_method_table): Add implementation of java.lang.ref.Reference.get(). * src/cpu/zero/vm/asm_helper.cpp: Update copyright. (klass_at_addr): Fix indentation. (Helper_Raise): use a Symbol, not a symbolOopDesc. * gcc.make (FASTDEBUG_CFLAGS): Add zero. (OPT_CFLAGS): Likewise. # HG changeset patch # User aph # Date 1331816821 14400 # Node ID 30c4dc24823a73138a55de5bb152f9b688bb859b # Parent 065df7302cf5b31fa9fbf76e464030f80de2d4a2 Changes for HSX22 diff -r 065df7302cf5 -r 30c4dc24823a make/linux/makefiles/gcc.make --- a/make/linux/makefiles/gcc.make Thu Mar 15 08:54:12 2012 -0400 +++ b/make/linux/makefiles/gcc.make Thu Mar 15 09:07:01 2012 -0400 @@ -249,6 +249,7 @@ FASTDEBUG_CFLAGS/amd64 = -g FASTDEBUG_CFLAGS/arm = -g FASTDEBUG_CFLAGS/ppc = -g + FASTDEBUG_CFLAGS/zero = -g FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) FASTDEBUG_CFLAGS += -gstabs @@ -258,6 +259,7 @@ OPT_CFLAGS/amd64 = -g OPT_CFLAGS/arm = -g OPT_CFLAGS/ppc = -g + OPT_CFLAGS/zero = -g OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) OPT_CFLAGS += -gstabs diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/asm_helper.cpp --- a/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 08:54:12 2012 -0400 +++ b/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 09:07:01 2012 -0400 @@ -1,5 +1,6 @@ /* * Copyright 2009, 2010 Edward Nevill + * Copyright 2011, Red Hat * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as @@ -118,9 +119,9 @@ class VMStructs { public: - static inline klassOop klass_at_addr(constantPoolOop constants, u2 index) { - return (klassOop) *constants->obj_at_addr(index); - } + static inline klassOop klass_at_addr(constantPoolOop constants, u2 index) { + return (klassOop) *constants->obj_at_addr_raw(index); + } }; extern "C" oop Helper_new(interpreterState istate, unsigned index) @@ -314,7 +315,7 @@ } } -extern "C" void Helper_Raise(JavaThread *thread, symbolOopDesc *name, char const *msg) +extern "C" void Helper_Raise(JavaThread *thread, Symbol *name, char const *msg) { ThreadInVMfromJava trans(thread); Exceptions::_throw_msg(thread, "[Bytecoce Interpreter]", 99, name, msg); diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/cppInterpreter_arm.S --- a/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 08:54:12 2012 -0400 +++ b/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 09:07:01 2012 -0400 @@ -1,6 +1,7 @@ #ifdef __arm__ @ Copyright 2009, 2010 Edward Nevill +@ Copyright 2012, Red Hat @ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @ @ This code is free software; you can redistribute it and/or modify it @@ -809,6 +810,7 @@ .word normal_entry // implementation of java.lang.Math.sqrt (x) .word normal_entry // implementation of java.lang.Math.log (x) .word normal_entry // implementation of java.lang.Math.log10 (x) + .word accessor_entry // implementation of java.lang.ref.Reference.get() 3: ALIGN_CODE @@ -7093,7 +7095,7 @@ CompileThreshold_Address: .word 0 InterpreterInvocationLimit_Address: .word 0 UseCompiler_Address: .word 0 -can_post_interpreter_events: .word 0 +can_post_interpreter_events: .word 0 PrintCommandLineFlags_Address: .word 0 oopDesc_Address: .word 0 ThreadLocalStorage_thread_index: .word 0 diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/thumb2.cpp --- a/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 08:54:12 2012 -0400 +++ b/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 09:07:01 2012 -0400 @@ -1,5 +1,6 @@ /* * Copyright 2009, 2010 Edward Nevill + * Copyright 2012, Red Hat * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as @@ -649,7 +650,7 @@ void Thumb2_save_locals(Thumb2_Info *jinfo, unsigned stackdepth); void Thumb2_restore_locals(Thumb2_Info *jinfo, unsigned stackdepth); -static int method_stackchange(jbyte *base) +static int method_stackchange(const jbyte *base) { jbyte c; int stackchange = 0; @@ -680,7 +681,8 @@ return stackchange; } -static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, methodOop method, jbyte *base) +static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, methodOop method, + const jbyte *base) { jbyte c; unsigned arg = 0; @@ -1784,8 +1786,8 @@ case opc_putfield: { int index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(index); + const jbyte *base = sig->base(); jbyte c = *base; int stackchange; @@ -1812,9 +1814,8 @@ case opc_invokestatic: { int index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - //symbolOop name = pool->name_ref_at(index); - symbolOop sig = pool->signature_ref_at(index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(index); + const jbyte *base = sig->base(); //tty->print("%d: %s: %s\n", opcode, name->as_C_string(), sig->as_C_string()); stackdepth += method_stackchange(base); @@ -6005,8 +6006,8 @@ if (!cache->is_resolved((Bytecodes::Code)opcode)) { int java_index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(java_index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(java_index); + const jbyte *base = sig->base(); jbyte c = *base; int handler = H_GETFIELD_WORD; @@ -6073,8 +6074,8 @@ if (!cache->is_resolved((Bytecodes::Code)opcode)) { int java_index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(java_index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(java_index); + const jbyte *base = sig->base(); jbyte c = *base; int handler = H_GETSTATIC_WORD; @@ -6138,8 +6139,8 @@ if (!cache->is_resolved((Bytecodes::Code)opcode)) { int java_index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(java_index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(java_index); + const jbyte *base = sig->base(); jbyte c = *base; int handler = H_PUTFIELD_WORD; @@ -6204,8 +6205,8 @@ if (!cache->is_resolved((Bytecodes::Code)opcode)) { int java_index = GET_NATIVE_U2(code_base+bci+1); constantPoolOop pool = jinfo->method->constants(); - symbolOop sig = pool->signature_ref_at(java_index); - jbyte *base = sig->base(); + Symbol *sig = pool->signature_ref_at(java_index); + const jbyte *base = sig->base(); jbyte c = *base; int handler = H_PUTSTATIC_WORD; @@ -7300,9 +7301,9 @@ HandleMark __hm(thread); frame fr = thread->last_frame(); methodOop method = fr.interpreter_frame_method(); - symbolOop name = method->name(); - symbolOop sig = method->signature(); - jbyte *base = sig->base();; + Symbol *name = method->name(); + Symbol *sig = method->signature(); + const jbyte *base = sig->base(); jubyte *code_base = (jubyte *)method->code_base(); int code_size = method->code_size(); From pcpa at mandriva.com.br Thu Mar 15 12:06:25 2012 From: pcpa at mandriva.com.br (pcpa at mandriva.com.br) Date: Thu, 15 Mar 2012 16:06:25 -0300 (BRT) Subject: ARM: More intrinsics In-Reply-To: <4F61D3C6.1090100@redhat.com> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> <4F61D3C6.1090100@redhat.com> Message-ID: <33354.177.16.112.172.1331838385.squirrel@webmail.mandriva.com.br> > On 03/15/2012 04:09 AM, pcpa at mandriva.com.br wrote: >>> Xerxes noticed an inconsistency in my patch. I've removed the unused >>> masks, and redefined the condition in the atomic operations to use ETT >>> (else, true, true) rather than the confused encoding I used before. >>> >>> So, it's now >>> >>> + it(codebuf, COND_EQ, IT_MASK_ETT); >>> >>> instead of >>> >>> - it(codebuf, COND_NE, IT_MASK_TEE); >> >> I feel there is something bogus here, because the first condition >> should be 'T' always, and the mask is based on bit 0 of the test >> condition. Talking this because I wrote support for arm thumb jit >> recently. > > I've now got this: > > int it(CodeBuf *codebuf, unsigned cond, unsigned mask) > { > if (cond & 1) { > // If this is a negated condition, flip all the bits above the > // least significant bit that is 1. Note that at least one bit is > // always 1 in mask > switch (mask & (-mask)) { > case 8: > break; > case 4: > mask ^= 8; > break; > case 2: > mask ^= 0x0c; > break; > case 1: > mask ^= 0x0e; > break; > default: > // Impossible unless someone specified an incorrect mask > longjmp(compiler_error_env, COMPILER_RESULT_FAILED); > } > } > > return out_16(codebuf, T_IT(cond, mask)); > } > > Which does the right thing per the spec and is simpler. > > Thanks for the idea, No problems :-) I just made the attached simple test program, that may be useful for adapting it to the logic you use, and validate it. Sorry for the long cut&paste... The output I see is: $ ./a.out eq: it eq moveq.w r0, r1 itt eq moveq.w r0, r1 moveq.w r1, r2 ite eq moveq.w r0, r1 movne.w r1, r2 ittt eq moveq.w r0, r1 moveq.w r1, r2 moveq.w r2, r3 itte eq moveq.w r0, r1 moveq.w r1, r2 movne.w r2, r3 itet eq moveq.w r0, r1 movne.w r1, r2 moveq.w r2, r3 itee eq moveq.w r0, r1 movne.w r1, r2 movne.w r2, r3 itttt eq moveq.w r0, r1 moveq.w r1, r2 moveq.w r2, r3 moveq.w r3, r4 itett eq moveq.w r0, r1 movne.w r1, r2 moveq.w r2, r3 moveq.w r3, r4 ittet eq moveq.w r0, r1 moveq.w r1, r2 movne.w r2, r3 moveq.w r3, r4 iteet eq moveq.w r0, r1 movne.w r1, r2 movne.w r2, r3 moveq.w r3, r4 ittte eq moveq.w r0, r1 moveq.w r1, r2 moveq.w r2, r3 movne.w r3, r4 itete eq moveq.w r0, r1 movne.w r1, r2 moveq.w r2, r3 movne.w r3, r4 ittee eq moveq.w r0, r1 moveq.w r1, r2 movne.w r2, r3 movne.w r3, r4 iteee eq moveq.w r0, r1 movne.w r1, r2 movne.w r2, r3 movne.w r3, r4 ne: it ne movne.w r0, r1 itt ne movne.w r0, r1 movne.w r1, r2 ite ne movne.w r0, r1 moveq.w r1, r2 ittt ne movne.w r0, r1 movne.w r1, r2 movne.w r2, r3 itte ne movne.w r0, r1 movne.w r1, r2 moveq.w r2, r3 itet ne movne.w r0, r1 moveq.w r1, r2 movne.w r2, r3 itee ne movne.w r0, r1 moveq.w r1, r2 moveq.w r2, r3 itttt ne movne.w r0, r1 movne.w r1, r2 movne.w r2, r3 movne.w r3, r4 itett ne movne.w r0, r1 moveq.w r1, r2 movne.w r2, r3 movne.w r3, r4 ittet ne movne.w r0, r1 movne.w r1, r2 moveq.w r2, r3 movne.w r3, r4 iteet ne movne.w r0, r1 moveq.w r1, r2 moveq.w r2, r3 movne.w r3, r4 ittte ne movne.w r0, r1 movne.w r1, r2 movne.w r2, r3 moveq.w r3, r4 itete ne movne.w r0, r1 moveq.w r1, r2 movne.w r2, r3 moveq.w r3, r4 ittee ne movne.w r0, r1 movne.w r1, r2 moveq.w r2, r3 moveq.w r3, r4 iteee ne movne.w r0, r1 moveq.w r1, r2 moveq.w r2, r3 moveq.w r3, r4 cs: it cs movcs.w r0, r1 itt cs movcs.w r0, r1 movcs.w r1, r2 ite cs movcs.w r0, r1 movcc.w r1, r2 ittt cs movcs.w r0, r1 movcs.w r1, r2 movcs.w r2, r3 itte cs movcs.w r0, r1 movcs.w r1, r2 movcc.w r2, r3 itet cs movcs.w r0, r1 movcc.w r1, r2 movcs.w r2, r3 itee cs movcs.w r0, r1 movcc.w r1, r2 movcc.w r2, r3 itttt cs movcs.w r0, r1 movcs.w r1, r2 movcs.w r2, r3 movcs.w r3, r4 itett cs movcs.w r0, r1 movcc.w r1, r2 movcs.w r2, r3 movcs.w r3, r4 ittet cs movcs.w r0, r1 movcs.w r1, r2 movcc.w r2, r3 movcs.w r3, r4 iteet cs movcs.w r0, r1 movcc.w r1, r2 movcc.w r2, r3 movcs.w r3, r4 ittte cs movcs.w r0, r1 movcs.w r1, r2 movcs.w r2, r3 movcc.w r3, r4 itete cs movcs.w r0, r1 movcc.w r1, r2 movcs.w r2, r3 movcc.w r3, r4 ittee cs movcs.w r0, r1 movcs.w r1, r2 movcc.w r2, r3 movcc.w r3, r4 iteee cs movcs.w r0, r1 movcc.w r1, r2 movcc.w r2, r3 movcc.w r3, r4 cc: it cc movcc.w r0, r1 itt cc movcc.w r0, r1 movcc.w r1, r2 ite cc movcc.w r0, r1 movcs.w r1, r2 ittt cc movcc.w r0, r1 movcc.w r1, r2 movcc.w r2, r3 itte cc movcc.w r0, r1 movcc.w r1, r2 movcs.w r2, r3 itet cc movcc.w r0, r1 movcs.w r1, r2 movcc.w r2, r3 itee cc movcc.w r0, r1 movcs.w r1, r2 movcs.w r2, r3 itttt cc movcc.w r0, r1 movcc.w r1, r2 movcc.w r2, r3 movcc.w r3, r4 itett cc movcc.w r0, r1 movcs.w r1, r2 movcc.w r2, r3 movcc.w r3, r4 ittet cc movcc.w r0, r1 movcc.w r1, r2 movcs.w r2, r3 movcc.w r3, r4 iteet cc movcc.w r0, r1 movcs.w r1, r2 movcs.w r2, r3 movcc.w r3, r4 ittte cc movcc.w r0, r1 movcc.w r1, r2 movcc.w r2, r3 movcs.w r3, r4 itete cc movcc.w r0, r1 movcs.w r1, r2 movcc.w r2, r3 movcs.w r3, r4 ittee cc movcc.w r0, r1 movcc.w r1, r2 movcs.w r2, r3 movcs.w r3, r4 iteee cc movcc.w r0, r1 movcs.w r1, r2 movcs.w r2, r3 movcs.w r3, r4 mi: it mi movmi.w r0, r1 itt mi movmi.w r0, r1 movmi.w r1, r2 ite mi movmi.w r0, r1 movpl.w r1, r2 ittt mi movmi.w r0, r1 movmi.w r1, r2 movmi.w r2, r3 itte mi movmi.w r0, r1 movmi.w r1, r2 movpl.w r2, r3 itet mi movmi.w r0, r1 movpl.w r1, r2 movmi.w r2, r3 itee mi movmi.w r0, r1 movpl.w r1, r2 movpl.w r2, r3 itttt mi movmi.w r0, r1 movmi.w r1, r2 movmi.w r2, r3 movmi.w r3, r4 itett mi movmi.w r0, r1 movpl.w r1, r2 movmi.w r2, r3 movmi.w r3, r4 ittet mi movmi.w r0, r1 movmi.w r1, r2 movpl.w r2, r3 movmi.w r3, r4 iteet mi movmi.w r0, r1 movpl.w r1, r2 movpl.w r2, r3 movmi.w r3, r4 ittte mi movmi.w r0, r1 movmi.w r1, r2 movmi.w r2, r3 movpl.w r3, r4 itete mi movmi.w r0, r1 movpl.w r1, r2 movmi.w r2, r3 movpl.w r3, r4 ittee mi movmi.w r0, r1 movmi.w r1, r2 movpl.w r2, r3 movpl.w r3, r4 iteee mi movmi.w r0, r1 movpl.w r1, r2 movpl.w r2, r3 movpl.w r3, r4 pl: it pl movpl.w r0, r1 itt pl movpl.w r0, r1 movpl.w r1, r2 ite pl movpl.w r0, r1 movmi.w r1, r2 ittt pl movpl.w r0, r1 movpl.w r1, r2 movpl.w r2, r3 itte pl movpl.w r0, r1 movpl.w r1, r2 movmi.w r2, r3 itet pl movpl.w r0, r1 movmi.w r1, r2 movpl.w r2, r3 itee pl movpl.w r0, r1 movmi.w r1, r2 movmi.w r2, r3 itttt pl movpl.w r0, r1 movpl.w r1, r2 movpl.w r2, r3 movpl.w r3, r4 itett pl movpl.w r0, r1 movmi.w r1, r2 movpl.w r2, r3 movpl.w r3, r4 ittet pl movpl.w r0, r1 movpl.w r1, r2 movmi.w r2, r3 movpl.w r3, r4 iteet pl movpl.w r0, r1 movmi.w r1, r2 movmi.w r2, r3 movpl.w r3, r4 ittte pl movpl.w r0, r1 movpl.w r1, r2 movpl.w r2, r3 movmi.w r3, r4 itete pl movpl.w r0, r1 movmi.w r1, r2 movpl.w r2, r3 movmi.w r3, r4 ittee pl movpl.w r0, r1 movpl.w r1, r2 movmi.w r2, r3 movmi.w r3, r4 iteee pl movpl.w r0, r1 movmi.w r1, r2 movmi.w r2, r3 movmi.w r3, r4 vs: it vs movvs.w r0, r1 itt vs movvs.w r0, r1 movvs.w r1, r2 ite vs movvs.w r0, r1 movvc.w r1, r2 ittt vs movvs.w r0, r1 movvs.w r1, r2 movvs.w r2, r3 itte vs movvs.w r0, r1 movvs.w r1, r2 movvc.w r2, r3 itet vs movvs.w r0, r1 movvc.w r1, r2 movvs.w r2, r3 itee vs movvs.w r0, r1 movvc.w r1, r2 movvc.w r2, r3 itttt vs movvs.w r0, r1 movvs.w r1, r2 movvs.w r2, r3 movvs.w r3, r4 itett vs movvs.w r0, r1 movvc.w r1, r2 movvs.w r2, r3 movvs.w r3, r4 ittet vs movvs.w r0, r1 movvs.w r1, r2 movvc.w r2, r3 movvs.w r3, r4 iteet vs movvs.w r0, r1 movvc.w r1, r2 movvc.w r2, r3 movvs.w r3, r4 ittte vs movvs.w r0, r1 movvs.w r1, r2 movvs.w r2, r3 movvc.w r3, r4 itete vs movvs.w r0, r1 movvc.w r1, r2 movvs.w r2, r3 movvc.w r3, r4 ittee vs movvs.w r0, r1 movvs.w r1, r2 movvc.w r2, r3 movvc.w r3, r4 iteee vs movvs.w r0, r1 movvc.w r1, r2 movvc.w r2, r3 movvc.w r3, r4 vc: it vc movvc.w r0, r1 itt vc movvc.w r0, r1 movvc.w r1, r2 ite vc movvc.w r0, r1 movvs.w r1, r2 ittt vc movvc.w r0, r1 movvc.w r1, r2 movvc.w r2, r3 itte vc movvc.w r0, r1 movvc.w r1, r2 movvs.w r2, r3 itet vc movvc.w r0, r1 movvs.w r1, r2 movvc.w r2, r3 itee vc movvc.w r0, r1 movvs.w r1, r2 movvs.w r2, r3 itttt vc movvc.w r0, r1 movvc.w r1, r2 movvc.w r2, r3 movvc.w r3, r4 itett vc movvc.w r0, r1 movvs.w r1, r2 movvc.w r2, r3 movvc.w r3, r4 ittet vc movvc.w r0, r1 movvc.w r1, r2 movvs.w r2, r3 movvc.w r3, r4 iteet vc movvc.w r0, r1 movvs.w r1, r2 movvs.w r2, r3 movvc.w r3, r4 ittte vc movvc.w r0, r1 movvc.w r1, r2 movvc.w r2, r3 movvs.w r3, r4 itete vc movvc.w r0, r1 movvs.w r1, r2 movvc.w r2, r3 movvs.w r3, r4 ittee vc movvc.w r0, r1 movvc.w r1, r2 movvs.w r2, r3 movvs.w r3, r4 iteee vc movvc.w r0, r1 movvs.w r1, r2 movvs.w r2, r3 movvs.w r3, r4 hi: it hi movhi.w r0, r1 itt hi movhi.w r0, r1 movhi.w r1, r2 ite hi movhi.w r0, r1 movls.w r1, r2 ittt hi movhi.w r0, r1 movhi.w r1, r2 movhi.w r2, r3 itte hi movhi.w r0, r1 movhi.w r1, r2 movls.w r2, r3 itet hi movhi.w r0, r1 movls.w r1, r2 movhi.w r2, r3 itee hi movhi.w r0, r1 movls.w r1, r2 movls.w r2, r3 itttt hi movhi.w r0, r1 movhi.w r1, r2 movhi.w r2, r3 movhi.w r3, r4 itett hi movhi.w r0, r1 movls.w r1, r2 movhi.w r2, r3 movhi.w r3, r4 ittet hi movhi.w r0, r1 movhi.w r1, r2 movls.w r2, r3 movhi.w r3, r4 iteet hi movhi.w r0, r1 movls.w r1, r2 movls.w r2, r3 movhi.w r3, r4 ittte hi movhi.w r0, r1 movhi.w r1, r2 movhi.w r2, r3 movls.w r3, r4 itete hi movhi.w r0, r1 movls.w r1, r2 movhi.w r2, r3 movls.w r3, r4 ittee hi movhi.w r0, r1 movhi.w r1, r2 movls.w r2, r3 movls.w r3, r4 iteee hi movhi.w r0, r1 movls.w r1, r2 movls.w r2, r3 movls.w r3, r4 ls: it ls movls.w r0, r1 itt ls movls.w r0, r1 movls.w r1, r2 ite ls movls.w r0, r1 movhi.w r1, r2 ittt ls movls.w r0, r1 movls.w r1, r2 movls.w r2, r3 itte ls movls.w r0, r1 movls.w r1, r2 movhi.w r2, r3 itet ls movls.w r0, r1 movhi.w r1, r2 movls.w r2, r3 itee ls movls.w r0, r1 movhi.w r1, r2 movhi.w r2, r3 itttt ls movls.w r0, r1 movls.w r1, r2 movls.w r2, r3 movls.w r3, r4 itett ls movls.w r0, r1 movhi.w r1, r2 movls.w r2, r3 movls.w r3, r4 ittet ls movls.w r0, r1 movls.w r1, r2 movhi.w r2, r3 movls.w r3, r4 iteet ls movls.w r0, r1 movhi.w r1, r2 movhi.w r2, r3 movls.w r3, r4 ittte ls movls.w r0, r1 movls.w r1, r2 movls.w r2, r3 movhi.w r3, r4 itete ls movls.w r0, r1 movhi.w r1, r2 movls.w r2, r3 movhi.w r3, r4 ittee ls movls.w r0, r1 movls.w r1, r2 movhi.w r2, r3 movhi.w r3, r4 iteee ls movls.w r0, r1 movhi.w r1, r2 movhi.w r2, r3 movhi.w r3, r4 ge: it ge movge.w r0, r1 itt ge movge.w r0, r1 movge.w r1, r2 ite ge movge.w r0, r1 movlt.w r1, r2 ittt ge movge.w r0, r1 movge.w r1, r2 movge.w r2, r3 itte ge movge.w r0, r1 movge.w r1, r2 movlt.w r2, r3 itet ge movge.w r0, r1 movlt.w r1, r2 movge.w r2, r3 itee ge movge.w r0, r1 movlt.w r1, r2 movlt.w r2, r3 itttt ge movge.w r0, r1 movge.w r1, r2 movge.w r2, r3 movge.w r3, r4 itett ge movge.w r0, r1 movlt.w r1, r2 movge.w r2, r3 movge.w r3, r4 ittet ge movge.w r0, r1 movge.w r1, r2 movlt.w r2, r3 movge.w r3, r4 iteet ge movge.w r0, r1 movlt.w r1, r2 movlt.w r2, r3 movge.w r3, r4 ittte ge movge.w r0, r1 movge.w r1, r2 movge.w r2, r3 movlt.w r3, r4 itete ge movge.w r0, r1 movlt.w r1, r2 movge.w r2, r3 movlt.w r3, r4 ittee ge movge.w r0, r1 movge.w r1, r2 movlt.w r2, r3 movlt.w r3, r4 iteee ge movge.w r0, r1 movlt.w r1, r2 movlt.w r2, r3 movlt.w r3, r4 lt: it lt movlt.w r0, r1 itt lt movlt.w r0, r1 movlt.w r1, r2 ite lt movlt.w r0, r1 movge.w r1, r2 ittt lt movlt.w r0, r1 movlt.w r1, r2 movlt.w r2, r3 itte lt movlt.w r0, r1 movlt.w r1, r2 movge.w r2, r3 itet lt movlt.w r0, r1 movge.w r1, r2 movlt.w r2, r3 itee lt movlt.w r0, r1 movge.w r1, r2 movge.w r2, r3 itttt lt movlt.w r0, r1 movlt.w r1, r2 movlt.w r2, r3 movlt.w r3, r4 itett lt movlt.w r0, r1 movge.w r1, r2 movlt.w r2, r3 movlt.w r3, r4 ittet lt movlt.w r0, r1 movlt.w r1, r2 movge.w r2, r3 movlt.w r3, r4 iteet lt movlt.w r0, r1 movge.w r1, r2 movge.w r2, r3 movlt.w r3, r4 ittte lt movlt.w r0, r1 movlt.w r1, r2 movlt.w r2, r3 movge.w r3, r4 itete lt movlt.w r0, r1 movge.w r1, r2 movlt.w r2, r3 movge.w r3, r4 ittee lt movlt.w r0, r1 movlt.w r1, r2 movge.w r2, r3 movge.w r3, r4 iteee lt movlt.w r0, r1 movge.w r1, r2 movge.w r2, r3 movge.w r3, r4 gt: it gt movgt.w r0, r1 itt gt movgt.w r0, r1 movgt.w r1, r2 ite gt movgt.w r0, r1 movle.w r1, r2 ittt gt movgt.w r0, r1 movgt.w r1, r2 movgt.w r2, r3 itte gt movgt.w r0, r1 movgt.w r1, r2 movle.w r2, r3 itet gt movgt.w r0, r1 movle.w r1, r2 movgt.w r2, r3 itee gt movgt.w r0, r1 movle.w r1, r2 movle.w r2, r3 itttt gt movgt.w r0, r1 movgt.w r1, r2 movgt.w r2, r3 movgt.w r3, r4 itett gt movgt.w r0, r1 movle.w r1, r2 movgt.w r2, r3 movgt.w r3, r4 ittet gt movgt.w r0, r1 movgt.w r1, r2 movle.w r2, r3 movgt.w r3, r4 iteet gt movgt.w r0, r1 movle.w r1, r2 movle.w r2, r3 movgt.w r3, r4 ittte gt movgt.w r0, r1 movgt.w r1, r2 movgt.w r2, r3 movle.w r3, r4 itete gt movgt.w r0, r1 movle.w r1, r2 movgt.w r2, r3 movle.w r3, r4 ittee gt movgt.w r0, r1 movgt.w r1, r2 movle.w r2, r3 movle.w r3, r4 iteee gt movgt.w r0, r1 movle.w r1, r2 movle.w r2, r3 movle.w r3, r4 le: it le movle.w r0, r1 itt le movle.w r0, r1 movle.w r1, r2 ite le movle.w r0, r1 movgt.w r1, r2 ittt le movle.w r0, r1 movle.w r1, r2 movle.w r2, r3 itte le movle.w r0, r1 movle.w r1, r2 movgt.w r2, r3 itet le movle.w r0, r1 movgt.w r1, r2 movle.w r2, r3 itee le movle.w r0, r1 movgt.w r1, r2 movgt.w r2, r3 itttt le movle.w r0, r1 movle.w r1, r2 movle.w r2, r3 movle.w r3, r4 itett le movle.w r0, r1 movgt.w r1, r2 movle.w r2, r3 movle.w r3, r4 ittet le movle.w r0, r1 movle.w r1, r2 movgt.w r2, r3 movle.w r3, r4 iteet le movle.w r0, r1 movgt.w r1, r2 movgt.w r2, r3 movle.w r3, r4 ittte le movle.w r0, r1 movle.w r1, r2 movle.w r2, r3 movgt.w r3, r4 itete le movle.w r0, r1 movgt.w r1, r2 movle.w r2, r3 movgt.w r3, r4 ittee le movle.w r0, r1 movle.w r1, r2 movgt.w r2, r3 movgt.w r3, r4 iteee le movle.w r0, r1 movgt.w r1, r2 movgt.w r2, r3 movgt.w r3, r4 > Andrew. Paulo -------------- next part -------------- A non-text attachment was scrubbed... Name: arm.c Type: text/x-csrc Size: 5983 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120315/06a80f6e/arm.c From pcpa at mandriva.com.br Thu Mar 15 12:23:14 2012 From: pcpa at mandriva.com.br (pcpa at mandriva.com.br) Date: Thu, 15 Mar 2012 16:23:14 -0300 (BRT) Subject: ARM: More intrinsics In-Reply-To: <4F61B480.9040101@redhat.com> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> <4F61B480.9040101@redhat.com> Message-ID: <33738.177.16.112.172.1331839394.squirrel@webmail.mandriva.com.br> > On 03/15/2012 04:09 AM, pcpa at mandriva.com.br wrote: >>> Xerxes noticed an inconsistency in my patch. I've removed the unused >>> masks, and redefined the condition in the atomic operations to use ETT >>> (else, true, true) rather than the confused encoding I used before. >>> >>> So, it's now >>> >>> + it(codebuf, COND_EQ, IT_MASK_ETT); >>> >>> instead of >>> >>> - it(codebuf, COND_NE, IT_MASK_TEE); >> >> I feel there is something bogus here, because the first condition >> should be 'T' always, and the mask is based on bit 0 of the test >> condition. Talking this because I wrote support for arm thumb jit >> recently. > > Well, that's how the ARM asm describes it, but that's not what > the encodings really do. It's a shame they chose to describe it > in that way. > >>> I had to do this because it's the only way the encodings make any >>> sense. There isn't really any encoding for TEE that works with >>> COND_NE: it has to be expressed in the binary as COND_EQ:ETT. >>> (If cond is true, don't do X, but do Y and Z.) >> >> For easier viewing instead of pointing to some link, the code I use >> to encode it* is: >> >> static void >> _tcit(jit_state_t *_jit, unsigned int tc, int it) >> { >> int c; >> int m; >> c = (tc >> 28) & 1; >> assert(!(tc & 0xfffffff) && tc != ARM_CC_NV); >> switch (it) { >> case THUMB2_IT: m = 1<<3; break; >> case THUMB2_ITT: m = (c<<3)| (1<<2); break; >> case THUMB2_ITE: m = (!c<<3)| (1<<2); break; >> case THUMB2_ITTT: m = (c<<3)| (c<<2)| (1<<1); break; >> case THUMB2_ITET: m = (!c<<3)| (c<<2)| (1<<1); break; >> case THUMB2_ITTE: m = (c<<3)|(!c<<2)| (1<<1); break; >> case THUMB2_ITEE: m = (!c<<3)|(!c<<2)| (1<<1); break; >> case THUMB2_ITTTT: m = (c<<3)| (c<<2)| (c<<1)|1; break; >> case THUMB2_ITETT: m = (!c<<3)| (c<<2)| (c<<1)|1; break; >> case THUMB2_ITTET: m = (c<<3)|(!c<<2)| (c<<1)|1; break; >> case THUMB2_ITEET: m = (!c<<3)|(!c<<2)| (c<<1)|1; break; >> case THUMB2_ITTTE: m = (c<<3)| (c<<2)|(!c<<1)|1; break; >> case THUMB2_ITETE: m = (!c<<3)| (c<<2)|(!c<<1)|1; break; >> case THUMB2_ITTEE: m = (c<<3)|(!c<<2)|(!c<<1)|1; break; >> case THUMB2_ITEEE: m = (!c<<3)|(!c<<2)|(!c<<1)|1; break; >> default: abort(); >> } >> assert(m && (tc != ARM_CC_AL || !(m & (m - 1)))); >> is(0xbf00 | (tc >> 24) | m); >> } > > LOL! That's just the sort of thing I was trying to avoid! :-) :-) Replying out of order. > I'd love to use this, but I think I probably can't. I could use this > idea for just the couple of conditions I actually use, though, without > requiring copyright assignment. I was just offering the idea for free, as I was under the impression there was some confusion. The sample code is just verbatim "unrolled" implementation of the description in the spec I used, and assertions to ensure it does not generate undefined conditions. > Thanks, > Andrew. Paulo From bugzilla-daemon at icedtea.classpath.org Thu Mar 15 13:41:34 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 15 Mar 2012 20:41:34 +0000 Subject: [Bug 896] New: libreoffice writer causes SIGSEGV Message-ID: <bug-896-30@http.icedtea.classpath.org/bugzilla/> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=896 Bug #: 896 Summary: libreoffice writer causes SIGSEGV Classification: Unclassified Product: IcedTea Version: 6-1.11.1 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: konold at kde.org Created attachment 675 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=675 trace log Wenn doing a formula within a table in libre office writer I get a segmentation fault. The trivial formula was =2150*1.5. The error is reproducable with any numbers. The message on the console reads: # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0xb7410576, pid=16244, tid=3028293856 # # JRE version: 6.0_24-b24 # Java VM: OpenJDK Client VM (20.0-b12 mixed mode linux-x86 ) # Derivative: IcedTea6 1.11.1 # Distribution: Dummy Product (i586), package suse-3.1-i386 # Problematic frame: # C [libc.so.6+0x79576] memmove+0x46 I was using libreoffice-3.4.2.6-4.2.2.i586 andjava-1_6_0-openjdk-1.6.0.0_b24.1.11.1-3.1.i586 on an atom netbook running OpenSuSE 12.1. Yours, -- martin -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From thomas at m3y3r.de Thu Mar 15 15:41:39 2012 From: thomas at m3y3r.de (Thomas Meyer) Date: Thu, 15 Mar 2012 23:41:39 +0100 Subject: [RFC] Fix == and equals in JavaConsole Message-ID: <1331851299.1433.5.camel@localhost.localdomain> Hello, regarding JavaConsole: for what is this thing used? I did set itweb-settings to enable the console on startup but nothing happens. bug or feature? attached patch is needed anyway. kind regards thomas diff -r d2aff3800f4f plugin/icedteanp/java/sun/applet/JavaConsole.java --- a/plugin/icedteanp/java/sun/applet/JavaConsole.java Thu Mar 08 15:54:39 2012 +0100 +++ b/plugin/icedteanp/java/sun/applet/JavaConsole.java Thu Mar 15 23:37:28 2012 +0100 @@ -307,7 +307,7 @@ boolean toShowConsole = false; for (int i = 0; i < args.length; i++) { - if (args[i] == "--show-console") { + if (args[i].equals("--show-console")) { toShowConsole = true; } } From ahughes at redhat.com Thu Mar 15 16:24:54 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 15 Mar 2012 19:24:54 -0400 (EDT) Subject: ARM: Support for OpenJDK 7 In-Reply-To: <4F620CB8.1080201@redhat.com> Message-ID: <9da15e77-a1fd-4859-a182-dcc580c143aa@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > This time, without word wrap. > > This is in three parts: > > 1. Copy files from IcedTea 6's arm_port to the to the > icedtea7-forest-2.1 branch. It has to be the 2.1 branch because > Zero doesn't work on later HotSpot releases, and won't for some > time to com. > > 2. Apply ARM patches from IcedTea 6. > > 3. Make a few changes for HSX 22, as below. > > After this I don't propose to contine working on IcedTea 6. Apart > from bug fixes, the ARM port will be frozen. > This sounds good to me and I'm glad to see it going in 7. I approve 1 & 2 for the 2.1 branch as they're present in 6 anyway. I'll leave someone more knowledge to comment on and approve the ARM ports of 3. The gcc.make changes look fine and I'd like to see these go upstream ASAP. They could at least go in IcedTea7 HEAD and 2.0 immediately. >From what I remember of the ARM port in IcedTea6, the mere presence of the ARM source files is enough to have them compiled, without additional build work. Is this correct? > Andrew. > > 2012-03-15 Andrew Haley <aph at redhat.com> > > * src/cpu/zero/vm/thumb2.cpp: Update copyright. > Constify various jbyte* pointers. > Use a Symbol, not a symbolOopDesc. > * src/cpu/zero/vm/cppInterpreter_arm.S (asm_method_table): > Add > implementation of java.lang.ref.Reference.get(). > * src/cpu/zero/vm/asm_helper.cpp: Update copyright. > (klass_at_addr): Fix indentation. > (Helper_Raise): use a Symbol, not a symbolOopDesc. > > * gcc.make (FASTDEBUG_CFLAGS): Add zero. > (OPT_CFLAGS): Likewise. > > # HG changeset patch > # User aph > # Date 1331816821 14400 > # Node ID 30c4dc24823a73138a55de5bb152f9b688bb859b > # Parent 065df7302cf5b31fa9fbf76e464030f80de2d4a2 > Changes for HSX22 > > diff -r 065df7302cf5 -r 30c4dc24823a make/linux/makefiles/gcc.make > --- a/make/linux/makefiles/gcc.make Thu Mar 15 08:54:12 2012 -0400 > +++ b/make/linux/makefiles/gcc.make Thu Mar 15 09:07:01 2012 -0400 > @@ -249,6 +249,7 @@ > FASTDEBUG_CFLAGS/amd64 = -g > FASTDEBUG_CFLAGS/arm = -g > FASTDEBUG_CFLAGS/ppc = -g > + FASTDEBUG_CFLAGS/zero = -g > FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) > ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) > FASTDEBUG_CFLAGS += -gstabs > @@ -258,6 +259,7 @@ > OPT_CFLAGS/amd64 = -g > OPT_CFLAGS/arm = -g > OPT_CFLAGS/ppc = -g > + OPT_CFLAGS/zero = -g > OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) > ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) > OPT_CFLAGS += -gstabs > diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/asm_helper.cpp > --- a/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 08:54:12 2012 -0400 > +++ b/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 09:07:01 2012 -0400 > @@ -1,5 +1,6 @@ > /* > * Copyright 2009, 2010 Edward Nevill > + * Copyright 2011, Red Hat > * > * This code is free software; you can redistribute it and/or modify > it > * under the terms of the GNU General Public License version 2 only, > as > @@ -118,9 +119,9 @@ > class VMStructs { > public: > - static inline klassOop klass_at_addr(constantPoolOop constants, u2 > index) { > - return (klassOop) *constants->obj_at_addr(index); > - } > + static inline klassOop klass_at_addr(constantPoolOop constants, u2 > index) { > + return (klassOop) *constants->obj_at_addr_raw(index); > + } > }; > extern "C" oop Helper_new(interpreterState istate, unsigned index) > @@ -314,7 +315,7 @@ > } > } > -extern "C" void Helper_Raise(JavaThread *thread, symbolOopDesc > *name, char const *msg) > +extern "C" void Helper_Raise(JavaThread *thread, Symbol *name, char > const *msg) > { > ThreadInVMfromJava trans(thread); > Exceptions::_throw_msg(thread, "[Bytecoce Interpreter]", 99, > name, msg); > diff -r 065df7302cf5 -r 30c4dc24823a > src/cpu/zero/vm/cppInterpreter_arm.S > --- a/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 08:54:12 2012 > -0400 > +++ b/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 09:07:01 2012 > -0400 > @@ -1,6 +1,7 @@ > #ifdef __arm__ > @ Copyright 2009, 2010 Edward Nevill > +@ Copyright 2012, Red Hat > @ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > @ > @ This code is free software; you can redistribute it and/or modify > it > @@ -809,6 +810,7 @@ > .word normal_entry // implementation of > java.lang.Math.sqrt (x) > .word normal_entry // implementation of > java.lang.Math.log (x) > .word normal_entry // implementation of > java.lang.Math.log10 (x) > + .word accessor_entry // implementation of > java.lang.ref.Reference.get() > 3: > > ALIGN_CODE > @@ -7093,7 +7095,7 @@ > CompileThreshold_Address: .word 0 > InterpreterInvocationLimit_Address: .word 0 > UseCompiler_Address: .word 0 > -can_post_interpreter_events: .word 0 > +can_post_interpreter_events: .word 0 > PrintCommandLineFlags_Address: .word 0 > oopDesc_Address: .word 0 > ThreadLocalStorage_thread_index: .word 0 > diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/thumb2.cpp > --- a/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 08:54:12 2012 -0400 > +++ b/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 09:07:01 2012 -0400 > @@ -1,5 +1,6 @@ > /* > * Copyright 2009, 2010 Edward Nevill > + * Copyright 2012, Red Hat > * > * This code is free software; you can redistribute it and/or modify > it > * under the terms of the GNU General Public License version 2 only, > as > @@ -649,7 +650,7 @@ > void Thumb2_save_locals(Thumb2_Info *jinfo, unsigned stackdepth); > void Thumb2_restore_locals(Thumb2_Info *jinfo, unsigned stackdepth); > -static int method_stackchange(jbyte *base) > +static int method_stackchange(const jbyte *base) > { > jbyte c; > int stackchange = 0; > @@ -680,7 +681,8 @@ > return stackchange; > } > -static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, > methodOop method, jbyte *base) > +static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, methodOop > method, > + const jbyte *base) > { > jbyte c; > unsigned arg = 0; > @@ -1784,8 +1786,8 @@ > case opc_putfield: { > int index = GET_NATIVE_U2(code_base+bci+1); > constantPoolOop pool = jinfo->method->constants(); > - symbolOop sig = pool->signature_ref_at(index); > - jbyte *base = sig->base(); > + Symbol *sig = pool->signature_ref_at(index); > + const jbyte *base = sig->base(); > jbyte c = *base; > int stackchange; > @@ -1812,9 +1814,8 @@ > case opc_invokestatic: { > int index = GET_NATIVE_U2(code_base+bci+1); > constantPoolOop pool = jinfo->method->constants(); > - //symbolOop name = pool->name_ref_at(index); > - symbolOop sig = pool->signature_ref_at(index); > - jbyte *base = sig->base(); > + Symbol *sig = pool->signature_ref_at(index); > + const jbyte *base = sig->base(); > //tty->print("%d: %s: %s\n", opcode, name->as_C_string(), > sig->as_C_string()); > stackdepth += method_stackchange(base); > @@ -6005,8 +6006,8 @@ > if (!cache->is_resolved((Bytecodes::Code)opcode)) { > int java_index = GET_NATIVE_U2(code_base+bci+1); > constantPoolOop pool = jinfo->method->constants(); > - symbolOop sig = pool->signature_ref_at(java_index); > - jbyte *base = sig->base(); > + Symbol *sig = pool->signature_ref_at(java_index); > + const jbyte *base = sig->base(); > jbyte c = *base; > int handler = H_GETFIELD_WORD; > @@ -6073,8 +6074,8 @@ > if (!cache->is_resolved((Bytecodes::Code)opcode)) { > int java_index = GET_NATIVE_U2(code_base+bci+1); > constantPoolOop pool = jinfo->method->constants(); > - symbolOop sig = pool->signature_ref_at(java_index); > - jbyte *base = sig->base(); > + Symbol *sig = pool->signature_ref_at(java_index); > + const jbyte *base = sig->base(); > jbyte c = *base; > int handler = H_GETSTATIC_WORD; > @@ -6138,8 +6139,8 @@ > if (!cache->is_resolved((Bytecodes::Code)opcode)) { > int java_index = GET_NATIVE_U2(code_base+bci+1); > constantPoolOop pool = jinfo->method->constants(); > - symbolOop sig = pool->signature_ref_at(java_index); > - jbyte *base = sig->base(); > + Symbol *sig = pool->signature_ref_at(java_index); > + const jbyte *base = sig->base(); > jbyte c = *base; > int handler = H_PUTFIELD_WORD; > @@ -6204,8 +6205,8 @@ > if (!cache->is_resolved((Bytecodes::Code)opcode)) { > int java_index = GET_NATIVE_U2(code_base+bci+1); > constantPoolOop pool = jinfo->method->constants(); > - symbolOop sig = pool->signature_ref_at(java_index); > - jbyte *base = sig->base(); > + Symbol *sig = pool->signature_ref_at(java_index); > + const jbyte *base = sig->base(); > jbyte c = *base; > int handler = H_PUTSTATIC_WORD; > @@ -7300,9 +7301,9 @@ > HandleMark __hm(thread); > frame fr = thread->last_frame(); > methodOop method = fr.interpreter_frame_method(); > - symbolOop name = method->name(); > - symbolOop sig = method->signature(); > - jbyte *base = sig->base();; > + Symbol *name = method->name(); > + Symbol *sig = method->signature(); > + const jbyte *base = sig->base(); > jubyte *code_base = (jubyte *)method->code_base(); > int code_size = method->code_size(); > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Thu Mar 15 16:31:43 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 15 Mar 2012 19:31:43 -0400 (EDT) Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: <4F5E1FA0.70905@redhat.com> Message-ID: <e20a4337-1f0f-4751-85e2-71820a044d6e@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> Andrew Hughes wrote: > >>> ----- Original Message ----- > >>>> Hi, > >>>> > >>>> I'd like to add following "small" (well 1MB of size ;-) backport > >>>> to > >>>> IcedTea6: > >>>> "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" > >>>> > >>>> This patch fixes (among other thing) following issue: > >>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >>>> > >>>> hg diff created against recent IcedTea6 HEAD version is stored > >>>> in > >>>> an > >>>> attachment > >>>> in a BZIP archive (because I don't want to send quite big 1MB > >>>> attachment to public mail list). > >>>> > >>>> Please note that it's not a direct backport because of (quite > >>>> minor) > >>>> differences > >>>> between IT6 and OpenJDK7 sources. This patch applies cleanly and > >>>> it > >>>> does not > >>>> seem to cause any compatibility issues. > >>>> > >>>> Here's ChangeLog entry: > >>>> > >>>> 2012-02-28 Pavel Tisnovsky <ptisnovs at redhat.com> > >>>> > >>>> * Makefile.am: Add new patch. > >>>> * NEWS: Mention backport. > >>>> * patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: > >>>> Backport of S6469266: Integrate Apache XMLSec 1.4.2 into JDK 7 > >>>> > >>>> > >>>> Can anybody please review this change? > >>>> > >>>> Thank you in advance, > >>>> Pavel > >>>> > >>> What's the motivation for this? Does the proprietary JDK 6 use > >>> this version? > >> Can not say anything about JDK 6, but tests mentioned here: > >> > >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >> > >> failed only on IcedTea6. IT7/O7 looks ok, the same for proprietary > >> JDK6. > >> > >> Pavel > >> > >> > > > > Yes, but IcedTea6/OpenJDK6 has to meet the Java 6 specification. > > IcedTea7/OpenJDK7 obviously don't. Do you have a link to the > > original > > changeset? > > Hi Andrew, > > here's bug with description: > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6469266 > > and here the original changeset: > http://hg.openjdk.java.net/jdk7/jsn/jdk/rev/74fc78477907 > Ok the problem with this remains, as noted before, that the granularity of this patch is not sufficient. This bug & changeset aren't in reference to the issue you've found, but constitute updates for an entire API. You need to find the actual bug fix and import that. I suggest looking at whatever project this was imported from. > > Pavel > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From jvanek at redhat.com Fri Mar 16 01:31:52 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 16 Mar 2012 09:31:52 +0100 Subject: Applet's in browser, slow loading, remote and (in some bright future) graphical testing and some minor improvements (was Re: Icedtea-web splashscreen implementation) In-Reply-To: <4F5E0ACA.8010503@redhat.com> References: <4F50BE87.5070508@redhat.com> <4F5DD9D7.7030905@redhat.com> <4F5DEC6A.8040802@redhat.com> <4F5DF4F6.905@redhat.com> <4F5E0ACA.8010503@redhat.com> Message-ID: <4F62FA78.4040506@redhat.com> Hi Pavel All your issues have been fixed in this version. of patch, except few which we have been talking in office, and except remote testing which is definitely for different patch and I consider it as suspended until the need arise. Just to summary our talk: Browsers will be handled by annotations (thanx for forcing me to investigate this way , are working great! ;) XslowX will remain name-convention till now the proof of concept of appelts testing is still included, and I'm forking 100% on anotated version (As investigated on wed+thu). It will change mostly transparently to current version (to keep it simple for final tests writing) Still o luck with awt-robot, possibility of new framework (extending current one) to lunching complex applications (including robot, and remote serer) considered. Ok for head now? Thanx for review! J. 2012-03-16 Jiri Vanek <jvanek at redhat.com> * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: as javaws have now integrated splash, I have changed this test to lunch javaws -Xclearcache with -headless to skip this logo (although it is not fatal fr testrun itself) * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: this html file is lunched during tests run in browser and stdout of lunched applet is examined. Is lunched with slow resources to test spalshscreen * tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html: this test html file is dedicated to manual lunch and let user to look how the applet (with slow loading) is loaded and how looks splashscreen in small mode and in large mode * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: test is enriched for lunching the html file with applet in browser and is examining output of this file. Browser must be always terminated as there is no way hoe to close from inside * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png : image to let user observe that user-defined splashscreen is still working even when internal splashscreen is enabled * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: this and all jnlp files below are just for manual lunching and for watching various lunches of splash screen - slow loading of resources and with custom splash * tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp: slow loading of resource and (XslowX)jnlp also * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp: slow loading of resource * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp: slow loading of resource with broken user's splash (our internal will be used) * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp: slow loading of custom splash screen and resource * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: Main server launcher was modified to support lunching of browser, stdout listteners and for slowing download of resources to provide time for watching splash screen (main) was rewritten to provide free port OR run server in-D specified directory on custom or default port - very useful for debuging reproducers (getIndependentInstance) can now run also on specified port and (or) directory (USED_BROWSER_COMMAND) new constant handling value of -D property to set browser = "used.browser.command"; (getBrowserLocation) new method to provide specified (by used.browser.command -D property) or default browser location (firefox) (ensureServer) test is testing weather XslowXmodifier is working (executeBrowser) set of overloaded functions to lunch browser (TinyHttpdImpl) was enriched for XslowX modifier. When resource starts with this, is returned slowly - splited to 10 parts with 1s delay betwen sending each of them. Although it is throwing BrokenPipe exception, is working fine. (splitArray) new function to split array of byte to n arrays of bytes, which when concated do the same array (splitArrayTestN) set of tests for splitArray (ContentReader) now can also have lsteners for catching outputs n runtime. * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java: Listener for catching chars and lines form processes outputs * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: added (testListeners) to test listeners behaviour On 03/12/2012 03:40 PM, Jiri Vanek wrote: > On 03/12/2012 02:07 PM, Pavel Tisnovsky wrote: >> Jiri Vanek wrote: >>> On 03/12/2012 12:11 PM, Pavel Tisnovsky wrote: >>>> Hi Jiri, >>>> >>>> I'd like to comment the last patch with new test framework functionality: >>>> >>>> 1) the idea of adding some delay to see/test splashscreen is great, >>>> but is not >>>> it better to add some annotation to such tests instead of using >>>> "magic" test name? >>>> Similar functionality is used in JTreg tests (not "true" >>>> annotations, but similar approach). >>>> I'm sure we'll need to add more per-test parameters in the future. >>> >>> hmhm interesting idea, but I need to specify this inside JNLP file or >>> inside applet tag in html file. And I wanted to lunch it outside the >>> engine.... Have you any clue how to do this with annotation? >> >> Yes, you can AFAIK use "property" tag in JNLP file. It contains "name" >> and "value" and this pair should be available through System.getProperty() >> (there probably exist tests which check this functionality :-) >> >> So we could prepare a list of some properties used by the test machinery. > > ugh ugh... Can you say little bit more about this idea? And applets? And usage inside/outside/itself engine? >> >>>> >>>> 2) some notes to the patch: >>>> >>> Indentation - Damn this:-/ I was doublechecking this across all the >>> files :-/ >>>> tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: >>>> - seems there's a bad indentation for the last 11 lines >>> ..not found...?? >>>> tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java >>>> - bad indentation in a method getIndependentInstance() >>> fixed >>>> - -//- for executeJavawsHeadless >>> fixed >>>> - -//- executeJavaws, executeBrowser >>> fixed >>> >>> >>> And concept of executeBrowser and listeners at all? >>> Is it worthy to continue this way? What about "firefox" issue? >>> And posted testcases? Especially the applet in browser one? And change >>> in main method? And issue with link? >> >> Well it's focused to test Firefox only at this moment, but I think >> that we can start with your solution and then update it to support Chrome >> etc. etc. (it should be easy IMHO). > > True. I will add function which will return iterator for all possible browsers. So each test will be possible to run in all set browsers. > >> >>> >>> The issue with link and with browser is quit fundamental and I'm not >>> sure how to continue with it. There is -Dvariable for setting up bowser, >>> but it do not solve anything at all :( And the link issue is even more >>> tricky with various (means supported x the testing one) browsers. Or >>> should ve be happy with firefox? Or should this test to be >>> multi-browsers? (== during each run, each html test wil be lunched in >>> all possibel browser [I do not believe this is worthy, but recent >>> regression on chromium shows differently]) >> >> But why not? After all the number of browsers supported is still quite small (er Opera er ;-) > As told above... Will be done. So we have Firefox and Chromium supported? Waht about chrome? opera? safari? > > Still I don't know how to handle link for firefox, and have absolutly no clue about other browser.... This is becoming quite funny :) >> >>> >>> Although I have posted this in-browser tests as proof-of concept, there >>> is already need for applets tests so I'm for to push it in, because >>> abstraction, as it is written, is quite enough and improvements can be >>> done in "runtime". >> >> I agree. > Is there something more then javadoc, browser iterator, and tuned byte[] split You want me to do before next review round? >> >>> >>>> - -//- splitArray (it needs JavaDoc >>> definitely. Sorry for forgot it. >>> too, contains double ";;" on one line etc.) >>> damn. YY - fixed >>>> I think it could be simplified to use one loop only and two index >>>> variables >>>> (we can talk about this personally) >>> Can it? Make your shot! O:) Btw - I have *one* loop, tehn second O:) >>> for copyying of aray (As I'm not friend of copyarray method :( ) and >>> *one* index, but yes, the header of method is not nice. But it was still >>> fighting with me:-/ Make your shot! >> will send :-) >>> >>>> - I'm probably wrong but is seems that all applet/jnlp tests are using >>>> only "localhost" network interface. >>>> If it is true I'm afraid we miss some iptables-related or IPv6 related >>>> issues. >>> Hmhm.. very interesting topic (== you are not wrong), but it should be >>> raised when the test-engine was done (bud good that wasnt O!o) ) >>> On the other side, the testing framework on client itself can handle >>> this. The problem is to have some server running. To have it integrated >>> inside current makefile can be quit tricky, and I'm strongly against. >>> Currently I'm against to add this feature at all, because there is no >>> known issue with this and local host seem to be enough. >>> In case this issue will rise with higher priority, then my suggestion >>> will be: >>> 1) to have some remote server running and working - absolutely out of >>> icetea-web makefile's control >>> 2) set eg --with-remote-server=my.server.org:xyz/something the remote >>> server configurated for coopeartion >>> 3) makefile will sed urls in (selected?) jnlps/htmls and, and will pass >>> this url to testengine so it will know where to requests jnlps and htmls >>> 4) makefile will copy (selected?) resources to this remote server, >>> 5) the tests run will run as usual, because stdout/err/gui examination >>> will behave in same way as in localhost. >>> >>> Acctually I do not see some big issue with this approach at all, and in >>> case it will become handy it can be implemented. >>> The only change in current implementation will be passing list of tests >>> which should run remotly. In testengine run I can imageine some >>> extension to executeJavaws(..) method Eg executeRemoteJavaws(...) - >>> there is enough abstraction level to handle this properly. During >>> compilation of reproducers and copying of resources it will need some >>> list (or directory) to specify remote ones . >>> >>> But really - until there is some real need for this reproducers, I would >>> rather stand without this. >>>> >>>> Cheers, >>>> Pavel >>>> >>>> (Hint: Eclipse Ctrl+F) >>> Yap NB have the same. But the issue is between computer and keyboard (as >>> always with me and indentation) >>>> >>>> Jiri Vanek wrote: >>> Snip >>>> snip >> > -------------- next part -------------- A non-text attachment was scrubbed... Name: splasScreenTests4.diff Type: text/x-patch Size: 42235 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120316/e8f0427b/splasScreenTests4.diff From bugzilla-daemon at icedtea.classpath.org Fri Mar 16 02:13:52 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 16 Mar 2012 09:13:52 +0000 Subject: [Bug 897] New: Can't list and uninstall applications Message-ID: <bug-897-30@http.icedtea.classpath.org/bugzilla/> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=897 Bug #: 897 Summary: Can't list and uninstall applications Classification: Unclassified Product: IcedTea-Web Version: 1.2 Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: NetX (javaws) AssignedTo: omajid at redhat.com ReportedBy: aditsu at yahoo.com CC: unassigned at icedtea.classpath.org In Sun's jre, javaws -viewer lists all the installed web start applications and has various features, the most important being the option to uninstall an application. With icedtea-web there seems to be no way to do that. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From aph at redhat.com Fri Mar 16 02:15:50 2012 From: aph at redhat.com (Andrew Haley) Date: Fri, 16 Mar 2012 09:15:50 +0000 Subject: ARM: Support for OpenJDK 7 In-Reply-To: <9da15e77-a1fd-4859-a182-dcc580c143aa@zmail17.collab.prod.int.phx2.redhat.com> References: <9da15e77-a1fd-4859-a182-dcc580c143aa@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F6304C6.2030209@redhat.com> On 03/15/2012 11:24 PM, Andrew Hughes wrote: > From what I remember of the ARM port in IcedTea6, the mere presence of the ARM > source files is enough to have them compiled, without additional build work. Is > this correct? Yes, that's right. For that reason they're wrapped in #ifdef ARM. Very ugly, but hard to figure out what else to do without a big reorg. Andrew. From bugzilla-daemon at icedtea.classpath.org Fri Mar 16 02:15:43 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 16 Mar 2012 09:15:43 +0000 Subject: [Bug 725] JNLP applications will prompt for creating desktop shortcuts every time they are run In-Reply-To: <bug-725-30@http.icedtea.classpath.org/bugzilla/> References: <bug-725-30@http.icedtea.classpath.org/bugzilla/> Message-ID: <bug-725-30-Hh3kuA1utZ@http.icedtea.classpath.org/bugzilla/> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=725 aditsu <aditsu at yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aditsu at yahoo.com --- Comment #2 from aditsu <aditsu at yahoo.com> 2012-03-16 09:15:43 UTC --- I can't find a vote option, so I'll just say +1 (for the bug report) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at icedtea.classpath.org Fri Mar 16 03:22:23 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 16 Mar 2012 10:22:23 +0000 Subject: /hg/MauveTestCoverage: * src/ReportGenerator.java: Message-ID: <hg.8c9c61f17fd1.1331893343.8533365281664943086@icedtea.classpath.org> changeset 8c9c61f17fd1 in /hg/MauveTestCoverage details: http://icedtea.classpath.org/hg/MauveTestCoverage?cmd=changeset;node=8c9c61f17fd1 author: Pavel Tisnovsky <ptisnovs at redhat.com> date: Fri Mar 16 11:24:48 2012 +0100 * src/ReportGenerator.java: * templates/all_classes_template.html: * templates/all_packages_template.html: * templates/class_report.js: * templates/package_template.html: * templates/style.css: Added new functionality of report generator: new filter can be applied to a class list based on test coverage for each class. diffstat: ChangeLog | 12 +++++++++++ src/ReportGenerator.java | 10 +++++++- templates/all_classes_template.html | 13 ++++++++++++ templates/all_packages_template.html | 2 + templates/class_report.js | 39 ++++++++++++++++++++++++++++++++++- templates/package_template.html | 13 ++++++++++++ templates/style.css | 18 ++++++++++++++++ 7 files changed, 103 insertions(+), 4 deletions(-) diffs (245 lines): diff -r 5030a59cd546 -r 8c9c61f17fd1 ChangeLog --- a/ChangeLog Fri Mar 02 16:51:17 2012 +0100 +++ b/ChangeLog Fri Mar 16 11:24:48 2012 +0100 @@ -1,3 +1,15 @@ +2012-03-16 Pavel Tisnovsky <ptisnovs at redhat.com> + + * src/ReportGenerator.java: + * templates/all_classes_template.html: + * templates/all_packages_template.html: + * templates/class_report.js: + * templates/package_template.html: + * templates/style.css: + Added new functionality of report generator: + new filter can be applied to a class list + based on test coverage for each class. + 2012-03-02 Pavel Tisnovsky <ptisnovs at redhat.com> * src/ReportGenerator.java: diff -r 5030a59cd546 -r 8c9c61f17fd1 src/ReportGenerator.java --- a/src/ReportGenerator.java Fri Mar 02 16:51:17 2012 +0100 +++ b/src/ReportGenerator.java Fri Mar 16 11:24:48 2012 +0100 @@ -225,6 +225,7 @@ final int testedClassesCnt = numberOfClassesInPackage(packageName, testedClasses); // -> in percent final float percentage = 100.0f*testedClassesCnt / allClassesCnt; + // table row background color is based on percentual test coverage ration String backgroundColor = generateTableRowBackground(percentage); String doc = DOC_BASE + "/" + packageName.replace('.', '/') + "/package-summary.html"; @@ -353,12 +354,17 @@ final int testedMethodsCnt = testedMethods.size(); // -> in percent final float percentage = 100.0f*testedMethodsCnt / allMethodsCnt; + + // construct CSS class for given row based on a code coverage + final long coverage = Math.round(Math.ceil(percentage / 10.0f) * 10); + String cssClass = "coverage_" + coverage; + // table row background color is based on percentual test coverage ration String backgroundColor = generateTableRowBackground(percentage); String doc = DOC_BASE + "/" + className.replace('.', '/') + ".html"; // format output string - String outStr = String.format("<tr style='background-color:%s'><td><a target='ResultsFrame' href='%s.html'>%s</a></td><td style='text-align:right'>%d</td><td style='text-align:right'>%d</td><td style='text-align:right'>%5.1f %%</td><td style='text-align:right'><a href='%s' target='_blank'>ext</a></td></tr>", - backgroundColor, className, className, + String outStr = String.format("<tr class='%s' style='background-color:%s'><td><a target='ResultsFrame' href='%s.html'>%s</a></td><td style='text-align:right'>%d</td><td style='text-align:right'>%d</td><td style='text-align:right'>%5.1f %%</td><td style='text-align:right'><a href='%s' target='_blank'>ext</a></td></tr>", + cssClass, backgroundColor, className, className, Integer.valueOf(allMethodsCnt), Integer.valueOf(testedMethodsCnt), Float.valueOf(percentage), doc); return outStr; } diff -r 5030a59cd546 -r 8c9c61f17fd1 templates/all_classes_template.html --- a/templates/all_classes_template.html Fri Mar 02 16:51:17 2012 +0100 +++ b/templates/all_classes_template.html Fri Mar 16 11:24:48 2012 +0100 @@ -6,9 +6,22 @@ <meta name="Generator" content="MauveTestCoverage" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link type="text/css" rel="StyleSheet" href="style.css" /> + <script language="JavaScript" type="text/javascript" src="class_report.js"> + </script> </head> <body> <h1>Class list</h1> +Filter: +<a href="javascript:showPercent(10);">10</a> +<a href="javascript:showPercent(20);">20</a> +<a href="javascript:showPercent(30);">30</a> +<a href="javascript:showPercent(40);">40</a> +<a href="javascript:showPercent(50);">50</a> +<a href="javascript:showPercent(60);">60</a> +<a href="javascript:showPercent(70);">70</a> +<a href="javascript:showPercent(80);">80</a> +<a href="javascript:showPercent(90);">90</a> +<a href="javascript:showPercent(100);">100%</a> ${PACKAGE_AND_CLASS_LIST} </body> </html> diff -r 5030a59cd546 -r 8c9c61f17fd1 templates/all_packages_template.html --- a/templates/all_packages_template.html Fri Mar 02 16:51:17 2012 +0100 +++ b/templates/all_packages_template.html Fri Mar 16 11:24:48 2012 +0100 @@ -6,6 +6,8 @@ <meta name="Generator" content="MauveTestCoverage" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link type="text/css" rel="StyleSheet" href="style.css" /> + <script language="JavaScript" type="text/javascript" src="class_report.js"> + </script> </head> <body> <h1>Package list</h1> diff -r 5030a59cd546 -r 8c9c61f17fd1 templates/class_report.js --- a/templates/class_report.js Fri Mar 02 16:51:17 2012 +0100 +++ b/templates/class_report.js Fri Mar 16 11:24:48 2012 +0100 @@ -39,9 +39,10 @@ /* - * Script used to filter methods in a report generated for each API class. + * Script used to filter methods in a report generated for each API class and + * also for given package or set of packages. * - * @author Pavel Tisnovsky + * @author Pavel Tisnovsky <ptisnovs at redhat.com> */ @@ -51,7 +52,9 @@ */ function setDisplayStyle(selectorText, displayStyle) { + // array containing all CSS rules var setOfCssRules = new Array(); + // acquire the array depending on browser capabilities if (document.styleSheets[0].cssRules) { setOfCssRules = document.styleSheets[0].cssRules; @@ -60,8 +63,10 @@ { setOfCssRules = document.styleSheets[0].rules; } + // iterate through all rules for (i in setOfCssRules) { + // and select display style for selected rules if (setOfCssRules[i].selectorText == selectorText) { setOfCssRules[i].style.display = displayStyle; @@ -86,3 +91,33 @@ setDisplayStyle(".coveraged", "none"); } +/* + * Show only classes with the test coverage which is less or + * equal than given threshold (%). + */ +function showPercent(threshold) +{ + var percent; + for (percent = 0; percent <= 100; percent += 10) + { + // construct CSS class name + // it should look like as follows: + // ".coverage_0", ".coverage_10", ... ".coverage_100" + var cssClassName = ".coverage_" + percent; + + //window.alert(cssClassName); + + // when percent is lower than threshold + // then rows with such % should be displayed + if (percent <= threshold) + { + setDisplayStyle(cssClassName, ""); + } + // otherwise the rows should be unvisible + else + { + setDisplayStyle(cssClassName, "none"); + } + } +} + diff -r 5030a59cd546 -r 8c9c61f17fd1 templates/package_template.html --- a/templates/package_template.html Fri Mar 02 16:51:17 2012 +0100 +++ b/templates/package_template.html Fri Mar 16 11:24:48 2012 +0100 @@ -6,9 +6,22 @@ <meta name="Generator" content="MauveTestCoverage" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link type="text/css" rel="StyleSheet" href="style.css" /> + <script language="JavaScript" type="text/javascript" src="class_report.js"> + </script> </head> <body> <h1>Class list</h1> +Filter: +<a href="javascript:showPercent(10);">10</a> +<a href="javascript:showPercent(20);">20</a> +<a href="javascript:showPercent(30);">30</a> +<a href="javascript:showPercent(40);">40</a> +<a href="javascript:showPercent(50);">50</a> +<a href="javascript:showPercent(60);">60</a> +<a href="javascript:showPercent(70);">70</a> +<a href="javascript:showPercent(80);">80</a> +<a href="javascript:showPercent(90);">90</a> +<a href="javascript:showPercent(100);">100%</a> <h2> ${PACKAGE_NAME} </h2> diff -r 5030a59cd546 -r 8c9c61f17fd1 templates/style.css --- a/templates/style.css Fri Mar 02 16:51:17 2012 +0100 +++ b/templates/style.css Fri Mar 16 11:24:48 2012 +0100 @@ -18,10 +18,24 @@ .forms {background-color: #f0f0dd; vertical-align: top; width: 720px; border-collapse: collapse; border-color:#808080; margin-left:32px} +/* CSS classes used in class list */ .present-method {background-color:#006000} .absent-method {background-color:#600000} .coveraged {} +/* CSS classes used in package list */ +.coverage_0 {} +.coverage_10 {} +.coverage_20 {} +.coverage_30 {} +.coverage_40 {} +.coverage_50 {} +.coverage_60 {} +.coverage_70 {} +.coverage_80 {} +.coverage_90 {} +.coverage_100 {} + .method-return-type {} .method-name {} .method-params {} @@ -35,6 +49,7 @@ background-color: white; width: 100%; } + table.package_list th { border-width: 1px; padding: 1px; @@ -43,6 +58,7 @@ background-color: #c0c0ff; /* -moz-border-radius: ; */ } + table.package_list td { border-width: 1px; padding: 1px; @@ -60,6 +76,7 @@ background-color: white; width: 100%; } + table.classes_list th { border-width: 1px; padding: 1px; @@ -68,6 +85,7 @@ background-color: #c0c0ff; /* -moz-border-radius: ; */ } + table.classes_list td { border-width: 1px; padding: 1px; From aph at redhat.com Fri Mar 16 04:01:48 2012 From: aph at redhat.com (Andrew Haley) Date: Fri, 16 Mar 2012 11:01:48 +0000 Subject: ARM: More intrinsics In-Reply-To: <33354.177.16.112.172.1331838385.squirrel@webmail.mandriva.com.br> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> <4F61D3C6.1090100@redhat.com> <33354.177.16.112.172.1331838385.squirrel@webmail.mandriva.com.br> Message-ID: <4F631D9C.6090009@redhat.com> On 03/15/2012 07:06 PM, pcpa at mandriva.com.br wrote: > I just made the attached simple test program, that may be useful > for adapting it to the logic you use, and validate it. Thanks. It gives the same results, and as because the test is exhaustive proves that the logic in my it() is correct. Ta, Andrew. static void tcit(unsigned int tc, int it) { int m; assert(!(tc & 0xfffffff) && tc != ARM_CC_NV); switch (it) { case THUMB2_IT: m = 1<<3; break; case THUMB2_ITT: m = (0<<3)| (1<<2); break; case THUMB2_ITE: m = (1<<3)| (1<<2); break; case THUMB2_ITTT: m = (0<<3)| (0<<2)| (1<<1); break; case THUMB2_ITET: m = (1<<3)| (0<<2)| (1<<1); break; case THUMB2_ITTE: m = (0<<3)|(1<<2)| (1<<1); break; case THUMB2_ITEE: m = (1<<3)|(1<<2)| (1<<1); break; case THUMB2_ITTTT: m = (0<<3)| (0<<2)| (0<<1)|1; break; case THUMB2_ITETT: m = (1<<3)| (0<<2)| (0<<1)|1; break; case THUMB2_ITTET: m = (0<<3)|(1<<2)| (0<<1)|1; break; case THUMB2_ITEET: m = (1<<3)|(1<<2)| (0<<1)|1; break; case THUMB2_ITTTE: m = (0<<3)| (0<<2)|(1<<1)|1; break; case THUMB2_ITETE: m = (1<<3)| (0<<2)|(1<<1)|1; break; case THUMB2_ITTEE: m = (0<<3)|(1<<2)|(1<<1)|1; break; case THUMB2_ITEEE: m = (1<<3)|(1<<2)|(1<<1)|1; break; default: abort(); } int negated = (tc >> 28) & 1; if ((tc >> 28) & 1) { // If this is a negated condition, flip all the bits above the // least significant bit that is 1. Note that at least one bit is // always 1 in mask switch (m & (-m)) { case 8: break; case 4: m ^= 8; break; case 2: m ^= 0x0c; break; case 1: m ^= 0x0e; break; default: // Impossible unless someone specified an incorrect mask abort(); } } assert(m && (tc != ARM_CC_AL || !(m & (m - 1)))); is(0xbf00 | (tc >> 24) | m); } From ChrisPhi at redhat.com Fri Mar 16 04:39:52 2012 From: ChrisPhi at redhat.com (Chris Phillips) Date: Fri, 16 Mar 2012 07:39:52 -0400 Subject: ARM: More intrinsics In-Reply-To: <4F607294.6000103@RedHat.Com> References: <4F510C5B.9090207@redhat.com> <4F607294.6000103@RedHat.Com> Message-ID: <4F632688.1080400@RedHat.Com> On 14/03/12 06:27 AM, Chris Phillips wrote: > Hi > > Looks OK to me, but I'm still at the stage of having > to go and read the instruction def'n for a lot of arm stuff, > so my review is proceeding very slowly. > > Cheers? > Chris > > On 02/03/12 01:07 PM, Andrew Haley wrote: >> I've been adding _compareAndSwapInt and _compareAndSwapLong to the set >> of intrinsics. It's never that easy, of course, and while I was doing >> that I found a bug in the code for abs that would cause locals to be >> corrupted. >> >> I also realized that if the JIT does long atomic swaps, so must the >> interpreter, so this patch also provides a long atomic swap for Zero >> on ARM. It'll be used even if you don't have the JIT or the asm >> interpreter. There isn't a kernel builtin we can use to do 64-bit >> swaps because the operation is only provided by the very most recent >> Linux kernels. This means we can't use it, really. >> >> I also reorganized handle_special_method() a bit so that it uses VM >> intrinsic_id. This provides the opportunity for many more intrinsics >> than Interpreter::method_kind(). >> >> Andrew. >> >> >> 2012-03-02 Andrew Haley<aph at redhat.com> >> >> * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: New file. >> * patches/arm.patch (void get_processor_features): New function >> that enables compareAndSwap on jlongs. >> (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New >> function. >> (atomic_linux_zero.inline.hpp: Atomic::store): Use >> arm_val_compare_and_swap. >> >> * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) >> (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT >> encodings. >> (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. >> (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. >> (handle_special_method): Use intrinsic_id instead of method_kind. >> Add handlers for _compareAndSwapInt and _compareAndSwapLong. >> (Thumb2_codegen): Call handle_special_method() for invokevirtual. >> Pass stackdepth to handle_special_method(). >> >> diff -r 01123e3102cc arm_port/hotspot/src/cpu/zero/vm/arm_cas.S >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/arm_port/hotspot/src/cpu/zero/vm/arm_cas.S Fri Mar 02 >> 17:52:08 2012 +0000 >> @@ -0,0 +1,30 @@ >> +#ifdef __ARM_ARCH_7A__ >> +@ jlong >> +@ arm_val_compare_and_swap_long(volatile void *ptr, >> +@ jlong oldval, >> +@ jlong newval) { >> + .pushsection .text >> + .global arm_val_compare_and_swap_long >> +#ifdef __thumb__ >> + .thumb_func >> +#endif >> + .type arm_val_compare_and_swap_long, %function >> +arm_val_compare_and_swap_long: >> + stmfd sp!, {r4, r5, r6, r7} >> + ldrd r4, [sp, #16] >> + dmb sy >> +0: ldrexd r6, [r0] >> + cmp r6, r2 >> + it eq >> + cmpeq r7, r3 >> + bne 1f >> + strexd r1, r4, [r0] >> + cmp r1, #0 >> + bne 0b >> + dmb sy >> +1: mov r0, r6 >> + mov r1, r7 >> + ldmfd sp!, {r4, r5, r6, r7} >> + bx lr >> + .popsection >> +#endif // __ARM_ARCH_7A__ >> diff -r 01123e3102cc arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp >> --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Feb 22 >> 15:36:29 2012 +0000 >> +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Mar 02 >> 17:52:08 2012 +0000 >> @@ -3042,6 +3042,10 @@ >> #define T_IT(cond, mask) (0xbf00 | (conds[cond]<< 4) | (mask)) >> >> #define IT_MASK_T 8 >> +#define IT_MASK_TE 0x14 >> +#define IT_MASK_TT 0x1e >> +#define IT_MASK_TTT 0x1e >> +#define IT_MASK_TEE 0x12 >> >> #define PATCH(loc) do { \ >> unsigned oldidx = codebuf->idx; \ >> @@ -4233,7 +4237,8 @@ >> eor_imm(jinfo->codebuf, r_result, r, 0x80000000); >> } >> >> -void Thumb2_dNeg(Thumb2_Info *jinfo, u32 opc) >> +// arm_op is either DP_EOR (for dnegate) or DP_BIC (for dabs) >> +static void Thumb2_dUnaryOp(Thumb2_Info *jinfo, u32 arm_op) >> { >> Thumb2_Stack *jstack = jinfo->jstack; >> unsigned r_lo, r_hi, r_res_lo, r_res_hi; >> @@ -4248,7 +4253,17 @@ >> JASSERT(r_res_lo != r_res_hi, "oops"); >> JASSERT(r_res_lo != r_hi, "r_res_lo != r_hi"); >> mov_reg(jinfo->codebuf, r_res_lo, r_lo); >> - eor_imm(jinfo->codebuf, r_res_hi, r_hi, 0x80000000); >> + dop_imm(jinfo->codebuf, arm_op, r_res_hi, r_hi, 0x80000000); >> +} >> + >> +void Thumb2_dNeg(Thumb2_Info *jinfo) >> +{ >> + Thumb2_dUnaryOp(jinfo, DP_EOR); >> +} >> + >> +void Thumb2_dAbs(Thumb2_Info *jinfo) >> +{ >> + Thumb2_dUnaryOp(jinfo, DP_BIC); >> } >> >> void Thumb2_lOp(Thumb2_Info *jinfo, u32 opc) >> @@ -5008,42 +5023,34 @@ >> >> // Expand a call to a "special" method. These are usually inlines of >> // java.lang.Math methods. Return true if the inlining succeeded. >> -static bool handle_special_method(methodOop callee, Thumb2_Info >> *jinfo) { >> +static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo, >> + unsigned stackdepth) { >> + Thumb2_Stack *jstack = jinfo->jstack; >> + CodeBuf *codebuf = jinfo->codebuf; >> + >> + const char *entry_name; >> + >> + switch (callee->intrinsic_id()) { >> + case vmIntrinsics::_dabs: >> + { >> + Thumb2_dAbs(jinfo); >> + return true; >> + } >> + >> #ifdef __ARM_PCS_VFP >> - Thumb2_Stack *jstack = jinfo->jstack; >> - >> - const char *entry_name; >> - >> - unsigned loc1 = 0; >> - >> - switch (Interpreter::method_kind(callee)) { >> - case Interpreter::java_lang_math_abs: >> - { >> - unsigned r_lo, r_hi; >> - >> - Thumb2_Fill(jinfo, 2); >> - r_lo = POP(jstack); >> - r_hi = POP(jstack); >> - dop_imm_s(jinfo->codebuf, DP_BIC, r_hi, r_hi, 0x80000000, 0); >> - PUSH(jstack, r_hi); >> - PUSH(jstack, r_lo); >> - >> - return true; >> - } >> - >> - case Interpreter::java_lang_math_sin: >> + case vmIntrinsics::_dsin: >> entry_name = "Java_java_lang_StrictMath_sin"; >> break; >> >> - case Interpreter::java_lang_math_cos: >> + case vmIntrinsics::_dcos: >> entry_name = "Java_java_lang_StrictMath_cos"; >> break; >> >> - case Interpreter::java_lang_math_tan: >> + case vmIntrinsics::_dtan: >> entry_name = "Java_java_lang_StrictMath_tan"; >> break; >> >> - case Interpreter::java_lang_math_sqrt: >> + case vmIntrinsics::_dsqrt: >> { >> void *entry_point = dlsym(NULL, >> "Java_java_lang_StrictMath_sqrt"); >> if (! entry_point) >> @@ -5077,13 +5084,104 @@ >> return true; >> } >> >> - case Interpreter::java_lang_math_log: >> + case vmIntrinsics::_dlog: >> entry_name = "Java_java_lang_StrictMath_log"; >> break; >> >> - case Interpreter::java_lang_math_log10: >> + case vmIntrinsics::_dlog10: >> entry_name = "Java_java_lang_StrictMath_log10"; >> break; >> +#endif // __ARM_PCS_VFP >> + >> + case vmIntrinsics::_compareAndSwapInt: >> + { >> + Thumb2_Fill(jinfo, 4); >> + >> + unsigned update = POP(jstack); >> + unsigned expect = POP(jstack); >> + unsigned offset = POP(jstack); >> + POP(jstack); // Actually the high part of the offset >> + >> + // unsigned object = POP(jstack); >> + // unsigned unsafe = POP(jstack); // Initially an instance of >> java.lang.Unsafe >> + >> + Thumb2_Flush(jinfo); >> + // Get ourself a result reg that's not one of the inputs >> + unsigned exclude = (1<<update)|(1<<expect)|(1<<offset); >> + unsigned result = JSTACK_PREFER(jstack, ~exclude); >> + >> + ldm(codebuf, (1<<ARM_IP)|(1<<ARM_LR), Rstack, POP_FD, 1); // >> Object addr >> + add_reg(codebuf, result, offset, ARM_IP); // result now points >> to word >> + ldr_imm(codebuf, ARM_LR, ARM_LR, 0, 0, 0); // Security check >> + >> + fullBarrier(codebuf); >> + >> + int retry = out_loc(codebuf); >> + ldrex_imm(codebuf, ARM_LR, result, 0); >> + cmp_reg(codebuf, ARM_LR, expect); >> + int loc_failed = forward_16(codebuf); >> + strex_imm(codebuf, ARM_IP, update, result, 0); >> + cmp_imm(codebuf, ARM_IP, 0); >> + branch(codebuf, COND_NE, retry); >> + bcc_patch(jinfo->codebuf, COND_NE, loc_failed); >> + >> + it(codebuf, COND_NE, IT_MASK_TEE); >> + mov_imm(codebuf, result, 0); >> + mov_imm(codebuf, result, 1); >> + fullBarrier(codebuf); >> + >> + PUSH(jstack, result); >> + } >> + return true; >> + >> + case vmIntrinsics::_compareAndSwapLong: >> + { >> + Thumb2_Fill(jinfo, 4); >> + >> + unsigned update_lo = POP(jstack); >> + unsigned update_hi = POP(jstack); >> + unsigned expect_lo = POP(jstack); >> + unsigned expect_hi = POP(jstack); >> + >> + Thumb2_Flush(jinfo); >> + Thumb2_save_locals(jinfo, stackdepth - 4); // 4 args popped above >> + >> + // instance of java.lang.Unsafe: >> + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 3 * wordSize, 1, 0); >> + ldr_imm(codebuf, ARM_LR, ARM_LR, 0, 0, 0); // Security check >> + >> + // Object: >> + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 2 * wordSize, 1, 0); >> + // Offset: >> + ldr_imm(jinfo->codebuf, ARM_IP, Rstack, 0 * wordSize, 1, 0); >> + add_reg(codebuf, ARM_LR, ARM_LR, ARM_IP); // ARM_LR now points >> to word >> + >> + fullBarrier(codebuf); >> + >> + int retry = out_loc(codebuf); >> + ldrexd(codebuf, JAZ_V2, JAZ_V3, ARM_LR); >> + cmp_reg(codebuf, JAZ_V2, expect_lo); >> + it(jinfo->codebuf, COND_EQ, IT_MASK_T); >> + cmp_reg(codebuf, JAZ_V3, expect_hi); >> + >> + int loc_failed = forward_16(codebuf); >> + strexd(codebuf, JAZ_V1, update_lo, update_hi, ARM_LR); >> + cmp_imm(codebuf, JAZ_V1, 0); >> + branch(codebuf, COND_NE, retry); >> + bcc_patch(jinfo->codebuf, COND_NE, loc_failed); >> + >> + unsigned result = JSTACK_REG(jinfo->jstack); >> + >> + it(codebuf, COND_NE, IT_MASK_TEE); >> + mov_imm(codebuf, result, 0); >> + mov_imm(codebuf, result, 1); >> + fullBarrier(codebuf); >> + >> + Thumb2_restore_locals(jinfo, stackdepth - 4); // 4 args popped >> above >> + add_imm(codebuf, Rstack, Rstack, 4 * wordSize); >> + PUSH(jstack, result); >> + } >> + return true; >> >> default: >> return false; >> @@ -5093,8 +5191,6 @@ >> if (! entry_point) >> return false; >> >> - unsigned r_lo, r_hi, r_res_lo, r_res_hi; >> - >> jstack_to_vfp(jinfo, VFP_D0); >> // FIXME: The JNI StrictMath routines don't use the JNIEnv *env >> // parameter, so it's arguably pointless to pass it here. >> @@ -5103,9 +5199,6 @@ >> vfp_to_jstack(jinfo, VFP_D0); >> >> return true; >> -#else >> - return false; >> -#endif // __ARM_PCS_VFP >> } >> >> void Thumb2_codegen(Thumb2_Info *jinfo, unsigned start) >> @@ -5766,7 +5859,7 @@ >> break; >> >> case opc_dneg: >> - Thumb2_dNeg(jinfo, opcode); >> + Thumb2_dNeg(jinfo); >> break; >> >> case opc_i2l: { >> @@ -6177,7 +6270,7 @@ >> >> callee = (methodOop)cache->f1(); >> >> - if (handle_special_method(callee, jinfo)) >> + if (handle_special_method(callee, jinfo, stackdepth)) >> break; >> >> if (callee->is_accessor()) { >> @@ -6302,6 +6395,10 @@ >> >> if (cache->is_vfinal()) { >> methodOop callee = (methodOop)cache->f2(); >> + >> + if (handle_special_method(callee, jinfo, stackdepth)) >> + break; >> + >> if (callee->is_accessor()) { >> u1 *code = callee->code_base(); >> int index = GET_NATIVE_U2(&code[2]); >> @@ -7857,7 +7954,7 @@ >> >> #define DEBUG_REGSET >> ((1<<ARM_R0)|(1<<ARM_R1)|(1<<ARM_R2)|(1<<ARM_R3)|(1<<ARM_IP)) >> >> -// DEBUG_METHODENTRY >> +// DEBUG_METHDENTRY >> handlers[H_DEBUG_METHODENTRY] = out_pos(&codebuf); >> stm(&codebuf, DEBUG_REGSET | (1<<ARM_LR), ARM_SP, PUSH_FD, 1); >> mov_reg(&codebuf, ARM_R2, ARM_R0); >> diff -r 01123e3102cc patches/arm.patch >> --- a/patches/arm.patch Wed Feb 22 15:36:29 2012 +0000 >> +++ b/patches/arm.patch Fri Mar 02 17:52:08 2012 +0000 >> @@ -230,3 +230,57 @@ >> -a ! \( -name DUMMY $(addprefix -o -name >> ,$(Src_Files_EXCLUDE)) \))) >> endef >> >> +diff -r -uw >> icedtea6.pristine/openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.hpp >> icedtea6/openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.hpp >> +--- openjdk.orig/hotspot/src/cpu/zero/vm/vm_version_zero.hpp >> 2011-11-14 22:07:31.000000000 +0000 >> ++++ openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.hpp >> 2012-02-29 17:27:11.472996427 +0000 >> +@@ -30,7 +30,18 @@ >> + #include "runtime/vm_version.hpp" >> + >> + class VM_Version : public Abstract_VM_Version { >> ++ >> + public: >> ++ static void get_processor_features() { >> ++#ifdef __ARM_ARCH_7A__ >> ++ Abstract_VM_Version::_supports_cx8 = true; >> ++#endif >> ++ } >> ++ >> ++ static void initialize() { >> ++ get_processor_features(); >> ++ } >> ++ >> + static const char* cpu_features() { >> + return ""; >> + } >> +diff -r -uw >> openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp >> openjdk/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp >> +--- >> openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp >> 2011-11-14 22:07:32.000000000 +0000 >> ++++ >> openjdk/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp >> 2012-02-29 16:57:28.412360724 +0000 >> +@@ -160,6 +160,16 @@ >> + return prev; >> + } >> + } >> ++ >> ++#ifdef __ARM_ARCH_7A__ >> ++/* Perform an atomic compare and swap: if the current value of `*PTR' >> ++ is OLDVAL, then write NEWVAL into `*PTR'. Return the contents of >> ++ `*PTR' before the operation.*/ >> ++extern "C" jlong arm_val_compare_and_swap_long(volatile void *ptr, >> ++ jlong oldval, >> ++ jlong newval); >> ++ >> ++#endif // __ARM_ARCH_7A__ >> + #endif // ARM >> + >> + inline void Atomic::store(jint store_value, volatile jint* dest) { >> +@@ -274,7 +322,11 @@ >> + volatile jlong* dest, >> + jlong compare_value) { >> + >> ++#ifndef __ARM_ARCH_7A__ >> + return __sync_val_compare_and_swap(dest, compare_value, >> exchange_value); >> ++#else >> ++ return arm_val_compare_and_swap_long(dest, compare_value, >> exchange_value); >> ++#endif >> + } >> + >> + inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value, > Hi Andrew OK, finally thru most of this , attached is what I used as the "accumulative" ARM jit patch... (Please let me know if you see any glaring error in my "paste up" of the patches as I had a bit of trouble merging them.) Only thing I have is the comment here: @@ -7858,7 +7975,7 @@ #define DEBUG_REGSET ((1<<ARM_R0)|(1<<ARM_R1)|(1<<ARM_R2)|(1<<ARM_R3)|(1<<ARM_IP)) -// DEBUG_METHODENTRY +// DEBUG_METHDENTRY handlers[H_DEBUG_METHODENTRY] = out_pos(&codebuf); stm(&codebuf, DEBUG_REGSET | (1<<ARM_LR), ARM_SP, PUSH_FD, 1); mov_reg(&codebuf, ARM_R2, ARM_R0); seems to have unintentionally been altered... Chris -------------- next part -------------- A non-text attachment was scrubbed... Name: delta.patch Type: text/x-patch Size: 11177 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120316/44f9e665/delta.patch From aph at redhat.com Fri Mar 16 04:57:58 2012 From: aph at redhat.com (Andrew Haley) Date: Fri, 16 Mar 2012 11:57:58 +0000 Subject: Use unified syntax for Thumb code Message-ID: <4F632AC6.9050809@redhat.com> This allows the same assembler code to build for Thumb or ARM, depending on the default used in the HotSpot build. Despite what I said, I'll commit this to 6 as well as 7 once the big patch is in. Andrew. 2012-03-16 Andrew Haley <aph at redhat.com> * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: Use unified syntax for thumb code. diff -r 248d25e53f7e arm_port/hotspot/src/cpu/zero/vm/arm_cas.S --- a/arm_port/hotspot/src/cpu/zero/vm/arm_cas.S Thu Mar 15 07:48:08 2012 -0400 +++ b/arm_port/hotspot/src/cpu/zero/vm/arm_cas.S Fri Mar 16 07:55:20 2012 -0400 @@ -6,6 +6,7 @@ .pushsection .text .global arm_val_compare_and_swap_long #ifdef __thumb__ + .syntax unified .thumb_func #endif .type arm_val_compare_and_swap_long, %function From xerxes at zafena.se Fri Mar 16 04:58:55 2012 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Fri, 16 Mar 2012 12:58:55 +0100 Subject: ARM: More intrinsics part 2/2 ok In-Reply-To: <4F61D625.100@redhat.com> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> <4F61D3C6.1090100@redhat.com> <4F61D625.100@redhat.com> Message-ID: <4F632AFF.3070502@zafena.se> This part 2 of 2 patch are OK for inclusion. 2012-03-15 12:44, Andrew Haley skrev: > This is the correct patch, I think. > > Andrew. > > > diff -r f2b27b309c43 ChangeLog > --- a/ChangeLog Wed Mar 14 05:47:19 2012 -0400 > +++ b/ChangeLog Thu Mar 15 07:42:50 2012 -0400 > @@ -1,3 +1,10 @@ > +2012-03-15 Andrew Haley <aph at redhat.com> > + > + * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (it): Add code to > + handle negated conditions. > + (handle_special_method): Use blx_reg rather than blx in case the > + target is thumb code. > + > 2012-03-14 Andrew Haley <aph at redhat.com> > > * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def (ldc, ldc_w): > diff -r f2b27b309c43 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp > --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 14 05:47:19 > 2012 -0400 > +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 07:42:50 > 2012 -0400 > @@ -3042,10 +3042,7 @@ > #define T_IT(cond, mask) (0xbf00 | (conds[cond] << 4) | (mask)) > > #define IT_MASK_T 8 > -#define IT_MASK_TE 0x14 > -#define IT_MASK_TT 0x1e > -#define IT_MASK_TTT 0x1e > -#define IT_MASK_TEE 0x12 > +#define IT_MASK_TEE 0x0e > > #define PATCH(loc) do { \ > unsigned oldidx = codebuf->idx; \ > @@ -3071,6 +3068,28 @@ > > int it(CodeBuf *codebuf, unsigned cond, unsigned mask) > { > + if (cond & 1) { > + // If this is a negated condition, flip all the bits above the > + // least significant bit that is 1. Note that at least one bit is > + // always 1 in mask > + switch (mask & (-mask)) { > + case 8: > + break; > + case 4: > + mask ^= 8; > + break; > + case 2: > + mask ^= 0x0c; > + break; > + case 1: > + mask ^= 0x0e; > + break; > + default: > + // Impossible unless someone specified an incorrect mask > + longjmp(compiler_error_env, COMPILER_RESULT_FAILED); > + } > + } > + > return out_16(codebuf, T_IT(cond, mask)); > } The code looks ok, Here are a reference to the ARM IT block definition: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cjabicci.html found under "Home > ARM and Thumb Instructions > Branch and control instructions > IT" Thank you and Paulo for posting the example code Paulo's version: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017721.html and Aph's version: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017732.html that verify its logic. This part are OK, please push into icedtea6 HEAD. > > @@ -5077,7 +5096,8 @@ > // FIXME: The JNI StrictMath routines don't use the JNIEnv *env > // parameter, so it's arguably pointless to pass it here. > add_imm(jinfo->codebuf, ARM_R0, Rthread, THREAD_JNI_ENVIRONMENT); > - blx(jinfo->codebuf, (unsigned)entry_point); > + mov_imm(jinfo->codebuf, ARM_IP, (unsigned)entry_point); > + blx_reg(jinfo->codebuf, ARM_IP); > bcc_patch(jinfo->codebuf, COND_EQ, loc); > vfp_to_jstack(jinfo, VFP_D0); This block are already part of icedtea6 head, be careful while merging. http://icedtea.classpath.org/hg/icedtea6/rev/b8d810f20366 Cheers Xerxes From aph at redhat.com Fri Mar 16 05:00:01 2012 From: aph at redhat.com (Andrew Haley) Date: Fri, 16 Mar 2012 12:00:01 +0000 Subject: ARM: More intrinsics part 2/2 ok In-Reply-To: <4F632AFF.3070502@zafena.se> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> <4F61D3C6.1090100@redhat.com> <4F61D625.100@redhat.com> <4F632AFF.3070502@zafena.se> Message-ID: <4F632B41.9090109@redhat.com> On 03/16/2012 11:58 AM, Xerxes R?nby wrote: > This block are already part of icedtea6 head, be careful while merging. > http://icedtea.classpath.org/hg/icedtea6/rev/b8d810f20366 No it isn't: we need the change in two places, but that patch only changes one. Andrew. From xerxes at zafena.se Fri Mar 16 05:16:12 2012 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Fri, 16 Mar 2012 13:16:12 +0100 Subject: ARM: More intrinsics part 1/2 In-Reply-To: <4F607294.6000103@RedHat.Com> References: <4F510C5B.9090207@redhat.com> <4F607294.6000103@RedHat.Com> Message-ID: <4F632F0C.70401@zafena.se> 2012-03-14 11:27, Chris Phillips skrev: > Hi > > Looks OK to me, but I'm still at the stage of having > to go and read the instruction def'n for a lot of arm stuff, > so my review is proceeding very slowly. > > Cheers? > Chris > > On 02/03/12 01:07 PM, Andrew Haley wrote: >> I've been adding _compareAndSwapInt and _compareAndSwapLong to the set >> of intrinsics. It's never that easy, of course, and while I was doing >> that I found a bug in the code for abs that would cause locals to be >> corrupted. >> >> I also realized that if the JIT does long atomic swaps, so must the >> interpreter, so this patch also provides a long atomic swap for Zero >> on ARM. It'll be used even if you don't have the JIT or the asm >> interpreter. There isn't a kernel builtin we can use to do 64-bit >> swaps because the operation is only provided by the very most recent >> Linux kernels. This means we can't use it, really. >> >> I also reorganized handle_special_method() a bit so that it uses VM >> intrinsic_id. This provides the opportunity for many more intrinsics >> than Interpreter::method_kind(). >> >> Andrew. >> >> >> 2012-03-02 Andrew Haley<aph at redhat.com> >> >> * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: New file. >> * patches/arm.patch (void get_processor_features): New function >> that enables compareAndSwap on jlongs. >> (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New >> function. >> (atomic_linux_zero.inline.hpp: Atomic::store): Use >> arm_val_compare_and_swap. >> >> * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) >> (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT >> encodings. >> (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. >> (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. >> (handle_special_method): Use intrinsic_id instead of method_kind. >> Add handlers for _compareAndSwapInt and _compareAndSwapLong. >> (Thumb2_codegen): Call handle_special_method() for invokevirtual. >> Pass stackdepth to handle_special_method(). >> >> diff -r 01123e3102cc arm_port/hotspot/src/cpu/zero/vm/arm_cas.S >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/arm_port/hotspot/src/cpu/zero/vm/arm_cas.S Fri Mar 02 17:52:08 2012 +0000 >> @@ -0,0 +1,30 @@ >> +#ifdef __ARM_ARCH_7A__ >> +@ jlong >> +@ arm_val_compare_and_swap_long(volatile void *ptr, >> +@ jlong oldval, >> +@ jlong newval) { >> + .pushsection .text >> + .global arm_val_compare_and_swap_long >> +#ifdef __thumb__ >> + .thumb_func >> +#endif Can we skip the #ifdef __thumb__ here and have .thumb_func set permanent.. i find the code below to be thumb in all situations. >> + .type arm_val_compare_and_swap_long, %function >> +arm_val_compare_and_swap_long: >> + stmfd sp!, {r4, r5, r6, r7} >> + ldrd r4, [sp, #16] >> + dmb sy >> +0: ldrexd r6, [r0] >> + cmp r6, r2 >> + it eq >> + cmpeq r7, r3 >> + bne 1f >> + strexd r1, r4, [r0] >> + cmp r1, #0 >> + bne 0b >> + dmb sy >> +1: mov r0, r6 >> + mov r1, r7 >> + ldmfd sp!, {r4, r5, r6, r7} >> + bx lr >> + .popsection >> +#endif // __ARM_ARCH_7A__ OK I think, i have no good way to verify its functionality except running the Volatile tests from: http://www.cs.umd.edu/~pugh/java/memoryModel/ *a-lot*. Testcase: cd into icedtea build dir and execute wget http://www.cs.umd.edu/~pugh/java/memoryModel/Volatiles.tar tar xvf Volatiles.tar ./openjdk.build/j2sdk-image/bin/javac volatile/AtomicLong.java ./openjdk.build/j2sdk-image/bin/javac volatile/CoherenceVolatile.java ./openjdk.build/j2sdk-image/bin/javac volatile/ReadAfterWrite.java ./openjdk.build/j2sdk-image/bin/java -cp volatile AtomicLong ./openjdk.build/j2sdk-image/bin/java -cp volatile CoherenceVolatile ./openjdk.build/j2sdk-image/bin/java -cp volatile ReadAfterWrite >> diff -r 01123e3102cc arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp >> --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Feb 22 15:36:29 2012 +0000 >> +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Mar 02 17:52:08 2012 +0000 >> @@ -3042,6 +3042,10 @@ >> #define T_IT(cond, mask) (0xbf00 | (conds[cond]<< 4) | (mask)) >> >> #define IT_MASK_T 8 >> +#define IT_MASK_TE 0x14 >> +#define IT_MASK_TT 0x1e >> +#define IT_MASK_TTT 0x1e This are inconsistent IT_MASK_TT and IT_MASK_TTT are both 0x1e, This block gets fixed in the follow up patch part 2/2 so its ok! http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017718.html >> @@ -5008,42 +5023,34 @@ >> >> // Expand a call to a "special" method. These are usually inlines of >> // java.lang.Math methods. Return true if the inlining succeeded. >> -static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo) { >> +static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo, >> + unsigned stackdepth) { >> + Thumb2_Stack *jstack = jinfo->jstack; >> + CodeBuf *codebuf = jinfo->codebuf; >> + >> + const char *entry_name; >> + >> + switch (callee->intrinsic_id()) { >> + case vmIntrinsics::_dabs: >> + { >> + Thumb2_dAbs(jinfo); >> + return true; >> + } >> + >> #ifdef __ARM_PCS_VFP >> - Thumb2_Stack *jstack = jinfo->jstack; >> - >> - const char *entry_name; >> - >> - unsigned loc1 = 0; >> - >> - switch (Interpreter::method_kind(callee)) { >> - case Interpreter::java_lang_math_abs: >> - { >> - unsigned r_lo, r_hi; >> - >> - Thumb2_Fill(jinfo, 2); >> - r_lo = POP(jstack); >> - r_hi = POP(jstack); >> - dop_imm_s(jinfo->codebuf, DP_BIC, r_hi, r_hi, 0x80000000, 0); >> - PUSH(jstack, r_hi); >> - PUSH(jstack, r_lo); >> - >> - return true; >> - } >> - >> - case Interpreter::java_lang_math_sin: >> + case vmIntrinsics::_dsin: >> entry_name = "Java_java_lang_StrictMath_sin"; >> break; >> >> - case Interpreter::java_lang_math_cos: >> + case vmIntrinsics::_dcos: >> entry_name = "Java_java_lang_StrictMath_cos"; >> break; >> >> - case Interpreter::java_lang_math_tan: >> + case vmIntrinsics::_dtan: >> entry_name = "Java_java_lang_StrictMath_tan"; >> break; >> >> - case Interpreter::java_lang_math_sqrt: >> + case vmIntrinsics::_dsqrt: >> { >> void *entry_point = dlsym(NULL, "Java_java_lang_StrictMath_sqrt"); >> if (! entry_point) >> @@ -5077,13 +5084,104 @@ >> return true; >> } >> >> - case Interpreter::java_lang_math_log: >> + case vmIntrinsics::_dlog: >> entry_name = "Java_java_lang_StrictMath_log"; >> break; >> >> - case Interpreter::java_lang_math_log10: >> + case vmIntrinsics::_dlog10: >> entry_name = "Java_java_lang_StrictMath_log10"; >> break; >> +#endif // __ARM_PCS_VFP >> + >> + case vmIntrinsics::_compareAndSwapInt: >> + { >> + Thumb2_Fill(jinfo, 4); >> + >> + unsigned update = POP(jstack); >> + unsigned expect = POP(jstack); >> + unsigned offset = POP(jstack); >> + POP(jstack); // Actually the high part of the offset >> + >> + // unsigned object = POP(jstack); >> + // unsigned unsafe = POP(jstack); // Initially an instance of java.lang.Unsafe >> + >> + Thumb2_Flush(jinfo); >> + // Get ourself a result reg that's not one of the inputs >> + unsigned exclude = (1<<update)|(1<<expect)|(1<<offset); >> + unsigned result = JSTACK_PREFER(jstack, ~exclude); >> + >> + ldm(codebuf, (1<<ARM_IP)|(1<<ARM_LR), Rstack, POP_FD, 1); // Object addr >> + add_reg(codebuf, result, offset, ARM_IP); // result now points to word >> + ldr_imm(codebuf, ARM_LR, ARM_LR, 0, 0, 0); // Security check >> + >> + fullBarrier(codebuf); >> + >> + int retry = out_loc(codebuf); >> + ldrex_imm(codebuf, ARM_LR, result, 0); >> + cmp_reg(codebuf, ARM_LR, expect); >> + int loc_failed = forward_16(codebuf); >> + strex_imm(codebuf, ARM_IP, update, result, 0); >> + cmp_imm(codebuf, ARM_IP, 0); >> + branch(codebuf, COND_NE, retry); >> + bcc_patch(jinfo->codebuf, COND_NE, loc_failed); >> + >> + it(codebuf, COND_NE, IT_MASK_TEE); >> + mov_imm(codebuf, result, 0); >> + mov_imm(codebuf, result, 1); >> + fullBarrier(codebuf); >> + >> + PUSH(jstack, result); >> + } >> + return true; >> + >> + case vmIntrinsics::_compareAndSwapLong: >> + { >> + Thumb2_Fill(jinfo, 4); >> + >> + unsigned update_lo = POP(jstack); >> + unsigned update_hi = POP(jstack); >> + unsigned expect_lo = POP(jstack); >> + unsigned expect_hi = POP(jstack); >> + >> + Thumb2_Flush(jinfo); >> + Thumb2_save_locals(jinfo, stackdepth - 4); // 4 args popped above >> + >> + // instance of java.lang.Unsafe: >> + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 3 * wordSize, 1, 0); >> + ldr_imm(codebuf, ARM_LR, ARM_LR, 0, 0, 0); // Security check >> + >> + // Object: >> + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 2 * wordSize, 1, 0); >> + // Offset: >> + ldr_imm(jinfo->codebuf, ARM_IP, Rstack, 0 * wordSize, 1, 0); >> + add_reg(codebuf, ARM_LR, ARM_LR, ARM_IP); // ARM_LR now points to word >> + >> + fullBarrier(codebuf); >> + >> + int retry = out_loc(codebuf); >> + ldrexd(codebuf, JAZ_V2, JAZ_V3, ARM_LR); >> + cmp_reg(codebuf, JAZ_V2, expect_lo); >> + it(jinfo->codebuf, COND_EQ, IT_MASK_T); >> + cmp_reg(codebuf, JAZ_V3, expect_hi); >> + >> + int loc_failed = forward_16(codebuf); >> + strexd(codebuf, JAZ_V1, update_lo, update_hi, ARM_LR); >> + cmp_imm(codebuf, JAZ_V1, 0); >> + branch(codebuf, COND_NE, retry); >> + bcc_patch(jinfo->codebuf, COND_NE, loc_failed); >> + >> + unsigned result = JSTACK_REG(jinfo->jstack); >> + >> + it(codebuf, COND_NE, IT_MASK_TEE); >> + mov_imm(codebuf, result, 0); >> + mov_imm(codebuf, result, 1); >> + fullBarrier(codebuf); >> + >> + Thumb2_restore_locals(jinfo, stackdepth - 4); // 4 args popped above >> + add_imm(codebuf, Rstack, Rstack, 4 * wordSize); >> + PUSH(jstack, result); >> + } >> + return true; >> >> default: >> return false; >> @@ -5093,8 +5191,6 @@ >> if (! entry_point) >> return false; >> >> - unsigned r_lo, r_hi, r_res_lo, r_res_hi; >> - >> jstack_to_vfp(jinfo, VFP_D0); >> // FIXME: The JNI StrictMath routines don't use the JNIEnv *env >> // parameter, so it's arguably pointless to pass it here. >> @@ -5103,9 +5199,6 @@ >> vfp_to_jstack(jinfo, VFP_D0); >> >> return true; >> -#else >> - return false; >> -#endif // __ARM_PCS_VFP >> } >> >> void Thumb2_codegen(Thumb2_Info *jinfo, unsigned start) >> @@ -5766,7 +5859,7 @@ >> break; >> >> case opc_dneg: >> - Thumb2_dNeg(jinfo, opcode); >> + Thumb2_dNeg(jinfo); >> break; >> >> case opc_i2l: { >> @@ -6177,7 +6270,7 @@ >> >> callee = (methodOop)cache->f1(); >> >> - if (handle_special_method(callee, jinfo)) >> + if (handle_special_method(callee, jinfo, stackdepth)) >> break; >> >> if (callee->is_accessor()) { >> @@ -6302,6 +6395,10 @@ >> >> if (cache->is_vfinal()) { >> methodOop callee = (methodOop)cache->f2(); >> + >> + if (handle_special_method(callee, jinfo, stackdepth)) >> + break; >> + >> if (callee->is_accessor()) { >> u1 *code = callee->code_base(); >> int index = GET_NATIVE_U2(&code[2]); Ok nice to see this work gets supported on softfp armv7 as well as hard armv7 builds. >> @@ -7857,7 +7954,7 @@ >> >> #define DEBUG_REGSET ((1<<ARM_R0)|(1<<ARM_R1)|(1<<ARM_R2)|(1<<ARM_R3)|(1<<ARM_IP)) >> >> -// DEBUG_METHODENTRY >> +// DEBUG_METHDENTRY >> handlers[H_DEBUG_METHODENTRY] = out_pos(&codebuf); >> stm(&codebuf, DEBUG_REGSET | (1<<ARM_LR), ARM_SP, PUSH_FD, 1); >> mov_reg(&codebuf, ARM_R2, ARM_R0); Please skip merging this comment typo. >> diff -r 01123e3102cc patches/arm.patch >> --- a/patches/arm.patch Wed Feb 22 15:36:29 2012 +0000 >> +++ b/patches/arm.patch Fri Mar 02 17:52:08 2012 +0000 >> @@ -230,3 +230,57 @@ >> -a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \))) >> endef >> >> +diff -r -uw icedtea6.pristine/openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.hpp icedtea6/openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.hpp >> +--- openjdk.orig/hotspot/src/cpu/zero/vm/vm_version_zero.hpp 2011-11-14 22:07:31.000000000 +0000 >> ++++ openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.hpp 2012-02-29 17:27:11.472996427 +0000 >> +@@ -30,7 +30,18 @@ >> + #include "runtime/vm_version.hpp" >> + >> + class VM_Version : public Abstract_VM_Version { >> ++ >> + public: >> ++ static void get_processor_features() { >> ++#ifdef __ARM_ARCH_7A__ >> ++ Abstract_VM_Version::_supports_cx8 = true; >> ++#endif >> ++ } >> ++ >> ++ static void initialize() { >> ++ get_processor_features(); >> ++ } >> ++ >> + static const char* cpu_features() { >> + return ""; >> + } >> +diff -r -uw openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp >> +--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp 2011-11-14 22:07:32.000000000 +0000 >> ++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp 2012-02-29 16:57:28.412360724 +0000 >> +@@ -160,6 +160,16 @@ >> + return prev; >> + } >> + } >> ++ >> ++#ifdef __ARM_ARCH_7A__ >> ++/* Perform an atomic compare and swap: if the current value of `*PTR' >> ++ is OLDVAL, then write NEWVAL into `*PTR'. Return the contents of >> ++ `*PTR' before the operation.*/ >> ++extern "C" jlong arm_val_compare_and_swap_long(volatile void *ptr, >> ++ jlong oldval, >> ++ jlong newval); >> ++ >> ++#endif // __ARM_ARCH_7A__ >> + #endif // ARM >> + >> + inline void Atomic::store(jint store_value, volatile jint* dest) { >> +@@ -274,7 +322,11 @@ >> + volatile jlong* dest, >> + jlong compare_value) { >> + >> ++#ifndef __ARM_ARCH_7A__ >> + return __sync_val_compare_and_swap(dest, compare_value, exchange_value); >> ++#else >> ++ return arm_val_compare_and_swap_long(dest, compare_value, exchange_value); >> ++#endif >> + } >> + >> + inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value, > Ok, the minor fixes mentioned above like can get fixed in a follow up patch. Please push this part 1/2 into icedtea6 head. Thank you for noticing and pointing out that a lot of low hanging fruit are ready for harvest in the arm port! Cheers Xerxes From aph at redhat.com Fri Mar 16 05:18:52 2012 From: aph at redhat.com (Andrew Haley) Date: Fri, 16 Mar 2012 12:18:52 +0000 Subject: ARM: More intrinsics part 1/2 In-Reply-To: <4F632F0C.70401@zafena.se> References: <4F510C5B.9090207@redhat.com> <4F607294.6000103@RedHat.Com> <4F632F0C.70401@zafena.se> Message-ID: <4F632FAC.2040108@redhat.com> On 03/16/2012 12:16 PM, Xerxes R?nby wrote: > Can we skip the #ifdef __thumb__ here and have .thumb_func set permanent. What for? ARM callers would have to go through an interworking stub. Andrew. From mjw at redhat.com Fri Mar 16 05:22:28 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 16 Mar 2012 13:22:28 +0100 Subject: [PATCH 0 of 5] Some jstack fixes and improvements In-Reply-To: <patchbomb.1331719619@springer.wildebeest.org> References: <patchbomb.1331719619@springer.wildebeest.org> Message-ID: <20120316122227.GB2768@toonder.wildebeest.org> On Wed, Mar 14, 2012 at 11:06:59AM +0100, Mark Wielaard wrote: > These are for IcedTea6. Next up is making sure everything works also > against IcedTea7. Same apply to icedtea7. But there is one additional patch needed to accomodate for a hotspot change. S6990754: Use native memory and reference counting to implement SymbolTable. That changes the class symbolOopDescs to class Symbol. Also update the offset used to calculate methodOopDesc and sigOopDesc. Next on the list is adding Jon's tests so we catch these kind of changes early and often. Cheers, Mark From xerxes at zafena.se Fri Mar 16 05:27:31 2012 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Fri, 16 Mar 2012 13:27:31 +0100 Subject: ARM: More intrinsics part 2/2 ok In-Reply-To: <4F632B41.9090109@redhat.com> References: <4F510C5B.9090207@redhat.com> <4F60D748.9000103@redhat.com> <57569.177.16.211.182.1331784596.squirrel@webmail.mandriva.com.br> <4F61D3C6.1090100@redhat.com> <4F61D625.100@redhat.com> <4F632AFF.3070502@zafena.se> <4F632B41.9090109@redhat.com> Message-ID: <4F6331B3.8080502@zafena.se> 2012-03-16 13:00, Andrew Haley skrev: > On 03/16/2012 11:58 AM, Xerxes R?nby wrote: >> This block are already part of icedtea6 head, be careful while merging. >> http://icedtea.classpath.org/hg/icedtea6/rev/b8d810f20366 > > No it isn't: we need the change in two places, but that patch only > changes one. > > Andrew. > OK Please keep this part in your commit. I missed that there where two places with the same issue/bug in the code. Cheers Xerxes From aph at redhat.com Fri Mar 16 05:31:13 2012 From: aph at redhat.com (Andrew Haley) Date: Fri, 16 Mar 2012 12:31:13 +0000 Subject: ARM: More intrinsics In-Reply-To: <4F632688.1080400@RedHat.Com> References: <4F510C5B.9090207@redhat.com> <4F607294.6000103@RedHat.Com> <4F632688.1080400@RedHat.Com> Message-ID: <4F633291.5090607@redhat.com> On 03/16/2012 11:39 AM, Chris Phillips wrote: > Only thing I have is the comment here: > > @@ -7858,7 +7975,7 @@ > > #define DEBUG_REGSET ((1<<ARM_R0)|(1<<ARM_R1)|(1<<ARM_R2)|(1<<ARM_R3)|(1<<ARM_IP)) > > -// DEBUG_METHODENTRY > +// DEBUG_METHDENTRY > handlers[H_DEBUG_METHODENTRY] = out_pos(&codebuf); > stm(&codebuf, DEBUG_REGSET | (1<<ARM_LR), ARM_SP, PUSH_FD, 1); > mov_reg(&codebuf, ARM_R2, ARM_R0); > > seems to have unintentionally been altered... Err, Xerxes noticed that too. It's wrong, and I suppose it'll be wrong forever. Andrew. From aph at redhat.com Fri Mar 16 05:35:04 2012 From: aph at redhat.com (Andrew Haley) Date: Fri, 16 Mar 2012 12:35:04 +0000 Subject: ARM: More intrinsics part 1/2 In-Reply-To: <4F632F0C.70401@zafena.se> References: <4F510C5B.9090207@redhat.com> <4F607294.6000103@RedHat.Com> <4F632F0C.70401@zafena.se> Message-ID: <4F633378.5060000@redhat.com> On 03/16/2012 12:16 PM, Xerxes R?nby wrote: >>> + .type arm_val_compare_and_swap_long, %function >>> +arm_val_compare_and_swap_long: >>> + stmfd sp!, {r4, r5, r6, r7} >>> + ldrd r4, [sp, #16] >>> + dmb sy >>> +0: ldrexd r6, [r0] >>> + cmp r6, r2 >>> + it eq >>> + cmpeq r7, r3 >>> + bne 1f >>> + strexd r1, r4, [r0] >>> + cmp r1, #0 >>> + bne 0b >>> + dmb sy >>> +1: mov r0, r6 >>> + mov r1, r7 >>> + ldmfd sp!, {r4, r5, r6, r7} >>> + bx lr >>> + .popsection >>> +#endif // __ARM_ARCH_7A__ > > OK I think, i have no good way to verify its functionality except running the Volatile tests from: http://www.cs.umd.edu/~pugh/java/memoryModel/ *a-lot*. > Testcase: cd into icedtea build dir and execute > wget http://www.cs.umd.edu/~pugh/java/memoryModel/Volatiles.tar > tar xvf Volatiles.tar > ./openjdk.build/j2sdk-image/bin/javac volatile/AtomicLong.java > ./openjdk.build/j2sdk-image/bin/javac volatile/CoherenceVolatile.java > ./openjdk.build/j2sdk-image/bin/javac volatile/ReadAfterWrite.java > ./openjdk.build/j2sdk-image/bin/java -cp volatile AtomicLong > ./openjdk.build/j2sdk-image/bin/java -cp volatile CoherenceVolatile > ./openjdk.build/j2sdk-image/bin/java -cp volatile ReadAfterWrite It's pretty much impossible to test volatile. volatile/AtomicLong.java passed *before* I did the atomic logic! > Ok nice to see this work gets supported on softfp armv7 as well as > hard armv7 builds. >>> @@ -7857,7 +7954,7 @@ >>> >>> #define DEBUG_REGSET ((1<<ARM_R0)|(1<<ARM_R1)|(1<<ARM_R2)|(1<<ARM_R3)|(1<<ARM_IP)) >>> >>> -// DEBUG_METHODENTRY >>> +// DEBUG_METHDENTRY >>> handlers[H_DEBUG_METHODENTRY] = out_pos(&codebuf); >>> stm(&codebuf, DEBUG_REGSET | (1<<ARM_LR), ARM_SP, PUSH_FD, 1); >>> mov_reg(&codebuf, ARM_R2, ARM_R0); > > Please skip merging this comment typo. Err, OK. :-) Thanks a lot, Andrew. From mjw at redhat.com Fri Mar 16 05:51:45 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 16 Mar 2012 13:51:45 +0100 Subject: [PATCH 0 of 5] Some jstack fixes and improvements In-Reply-To: <20120316122227.GB2768@toonder.wildebeest.org> References: <patchbomb.1331719619@springer.wildebeest.org> <20120316122227.GB2768@toonder.wildebeest.org> Message-ID: <20120316125145.GC2768@toonder.wildebeest.org> On Fri, Mar 16, 2012 at 01:22:28PM +0100, Mark Wielaard wrote: > On Wed, Mar 14, 2012 at 11:06:59AM +0100, Mark Wielaard wrote: > > These are for IcedTea6. Next up is making sure everything works also > > against IcedTea7. > > Same apply to icedtea7. But there is one additional patch needed to > accomodate for a hotspot change. S6990754: Use native memory and > reference counting to implement SymbolTable. That changes the class > symbolOopDescs to class Symbol. Also update the offset used to calculate > methodOopDesc and sigOopDesc. Forgot to attach the actual extra patch needed on icedtea7. Attached now. > Next on the list is adding Jon's tests so we catch these kind of changes > early and often. > > Cheers, > > Mark -------------- next part -------------- # HG changeset patch # User Mark Wielaard <mark at klomp.org> # Date 1331900115 -3600 # Node ID 732f30ec8b7baa0406b1e8d94fdb5297dbe7f8b6 # Parent 527807ac61967c121c19e55dfb3fbc738a5df277 jstack: Change symbolOopDesc to Symbol to accomodate S6990754. Use native memory and reference counting to implement SymbolTable. diff -r 527807ac6196 -r 732f30ec8b7b ChangeLog --- a/ChangeLog Wed Mar 14 10:55:24 2012 +0100 +++ b/ChangeLog Fri Mar 16 13:15:15 2012 +0100 @@ -1,3 +1,9 @@ +2012-03-16 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Change symbolOopDesc to Symbol to accomodate + S6990754 - Use native memory and reference counting to implement + SymbolTable. + 2012-03-14 Mark Wielaard <mjw at redhat.com> * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. diff -r 527807ac6196 -r 732f30ec8b7b tapset/jstack.stp.in --- a/tapset/jstack.stp.in Wed Mar 14 10:55:24 2012 +0100 +++ b/tapset/jstack.stp.in Fri Mar 16 13:15:15 2012 +0100 @@ -364,7 +364,7 @@ // that describe the method and signature. This constant pool // contains symbolic information that describe the properties // of the class. The indexes for methods and signaturates in - // the constant pool are symbolOopDescs that contain utf8 + // the constant pool are Symbols that contain utf8 // strings (plus lenghts). (We could also sanity check that // the tag value is correct [CONSTANT_String = 8]). // Note that the class name uses '/' instead of '.' as @@ -379,17 +379,17 @@ "@ABS_SERVER_LIBJVM_SO@")->_pool_holder; klassSymbol = @cast(klassPtr + oopDesc_size, "Klass", "@ABS_SERVER_LIBJVM_SO@")->_name; - klassName = &@cast(klassSymbol, "symbolOopDesc", + klassName = &@cast(klassSymbol, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - klassLength = @cast(klassSymbol, "symbolOopDesc", + klassLength = @cast(klassSymbol, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_length; methodIndex = @cast(methodOopPtr, "methodOopDesc", "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index; - methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)); - methodName = &@cast(methodOopDesc, "symbolOopDesc", + methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)) - 1; + methodName = &@cast(methodOopDesc, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - methodLength = @cast(methodOopDesc, "symbolOopDesc", + methodLength = @cast(methodOopDesc, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_length; if (log_sig) @@ -397,10 +397,10 @@ sigIndex = @cast(methodOopPtr, "methodOopDesc", "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index; sigOopDesc = user_long(constantPoolOop_base - + (sigIndex * ptr_size)); - sigName = &@cast(sigOopDesc, "symbolOopDesc", + + (sigIndex * ptr_size)) - 1; + sigName = &@cast(sigOopDesc, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - sigLength = @cast(sigOopDesc, "symbolOopDesc", + sigLength = @cast(sigOopDesc, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_length; sig = user_string_n(sigName, sigLength); } From bugzilla-daemon at icedtea.classpath.org Fri Mar 16 06:02:38 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 16 Mar 2012 13:02:38 +0000 Subject: [Bug 898] New: signed applications with big jnlp-file doesn't start (webstart affect like "frozen") Message-ID: <bug-898-30@http.icedtea.classpath.org/bugzilla/> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=898 Bug #: 898 Summary: signed applications with big jnlp-file doesn't start (webstart affect like "frozen") Classification: Unclassified Product: IcedTea-Web Version: 1.2 Platform: x86 OS/Version: FreeBSD Status: NEW Severity: major Priority: P3 Component: NetX (javaws) AssignedTo: omajid at redhat.com ReportedBy: lhersch at dssgmbh.de CC: unassigned at icedtea.classpath.org Created attachment 676 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=676 patch to fix described bug Applications with signed jar doesn't start, if the jnlp-file ist bigger than 1024 Bytes. The reason is the using of PipedInputStream and PipedOutputStream without threads. I have fixed that with the attached patch by using ByteArrayOutputStream. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at redhat.com Fri Mar 16 06:33:21 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 16 Mar 2012 14:33:21 +0100 Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: <e20a4337-1f0f-4751-85e2-71820a044d6e@zmail17.collab.prod.int.phx2.redhat.com> References: <e20a4337-1f0f-4751-85e2-71820a044d6e@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F634121.10506@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Andrew Hughes wrote: >>> ----- Original Message ----- >>>> Andrew Hughes wrote: >>>>> ----- Original Message ----- >>>>>> Hi, >>>>>> >>>>>> I'd like to add following "small" (well 1MB of size ;-) backport >>>>>> to >>>>>> IcedTea6: >>>>>> "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" >>>>>> >>>>>> This patch fixes (among other thing) following issue: >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>>>> >>>>>> hg diff created against recent IcedTea6 HEAD version is stored >>>>>> in >>>>>> an >>>>>> attachment >>>>>> in a BZIP archive (because I don't want to send quite big 1MB >>>>>> attachment to public mail list). >>>>>> >>>>>> Please note that it's not a direct backport because of (quite >>>>>> minor) >>>>>> differences >>>>>> between IT6 and OpenJDK7 sources. This patch applies cleanly and >>>>>> it >>>>>> does not >>>>>> seem to cause any compatibility issues. >>>>>> >>>>>> Here's ChangeLog entry: >>>>>> >>>>>> 2012-02-28 Pavel Tisnovsky <ptisnovs at redhat.com> >>>>>> >>>>>> * Makefile.am: Add new patch. >>>>>> * NEWS: Mention backport. >>>>>> * patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: >>>>>> Backport of S6469266: Integrate Apache XMLSec 1.4.2 into JDK 7 >>>>>> >>>>>> >>>>>> Can anybody please review this change? >>>>>> >>>>>> Thank you in advance, >>>>>> Pavel >>>>>> >>>>> What's the motivation for this? Does the proprietary JDK 6 use >>>>> this version? >>>> Can not say anything about JDK 6, but tests mentioned here: >>>> >>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>> >>>> failed only on IcedTea6. IT7/O7 looks ok, the same for proprietary >>>> JDK6. >>>> >>>> Pavel >>>> >>>> >>> Yes, but IcedTea6/OpenJDK6 has to meet the Java 6 specification. >>> IcedTea7/OpenJDK7 obviously don't. Do you have a link to the >>> original >>> changeset? >> Hi Andrew, >> >> here's bug with description: >> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6469266 >> >> and here the original changeset: >> http://hg.openjdk.java.net/jdk7/jsn/jdk/rev/74fc78477907 >> > > Ok the problem with this remains, as noted before, that the granularity > of this patch is not sufficient. This bug & changeset aren't in reference > to the issue you've found, but constitute updates for an entire API. Well, so let's forget the issue for a moment. Is there any problem in updating *internal* library which does not change the official Java SE API? The original changeset is named "Integrate Apache XMLSec 1.4.2 into JDK 7", but I see no reason why not to backport it to IT6. Moreover when we know it fixes at least one issue. > > You need to find the actual bug fix and import that. I suggest looking at > whatever project this was imported from. project? It's a whole library included in JDK: http://santuario.apache.org/ > >> Pavel >> > From aph at icedtea.classpath.org Fri Mar 16 08:03:34 2012 From: aph at icedtea.classpath.org (aph at icedtea.classpath.org) Date: Fri, 16 Mar 2012 15:03:34 +0000 Subject: /hg/icedtea6: 12 new changesets Message-ID: <hg.92b8e217ffe9.1331910214.2873452341184383832@icedtea.classpath.org> changeset 92b8e217ffe9 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=92b8e217ffe9 author: aph date: Tue Feb 28 04:56:04 2012 -0500 save work in a temporary commit changeset 8ff8561d6267 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=8ff8561d6267 author: aph date: Tue Feb 28 09:58:50 2012 -0500 save work in a temporary commit changeset a2b7cc226931 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a2b7cc226931 author: aph date: Tue Feb 28 12:00:41 2012 -0500 Handlers for _compareAndSwapInt and _compareAndSwapLong 2012-02-28 Andrew Haley <aph at redhat.com> * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT encodings. (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. (handle_special_method): Use intrinsic_id instead of method_kind. Add handlers for _compareAndSwapInt and _compareAndSwapLong. (Thumb2_codegen): Call handle_special_method() for invokevirtual. Pass stackdepth to handle_special_method(). changeset 9b5d9161c9dd in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=9b5d9161c9dd author: aph date: Wed Feb 29 17:51:34 2012 +0000 Enable compareAndSwap on jlongs. 2012-02-29 Andrew Haley <aph at redhat.com> * patches/arm.patch (void get_processor_features): New function that enables compareAndSwap on jlongs. (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New function. (atomic_linux_zero.inline.hpp: Atomic::store): Use arm_val_compare_and_swap. changeset 5b30d8907b48 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5b30d8907b48 author: aph date: Fri Mar 02 10:10:47 2012 -0500 Revert ARM-specific code from atomic_linux_zero.inline.hpp changeset 672784296bca in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=672784296bca author: aph date: Fri Mar 02 10:16:07 2012 -0500 Reorganize ARM concurrency inlining patch. 2012-03-02 Andrew Haley <aph at redhat.com> * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: New file. * patches/arm.patch (void get_processor_features): New function that enables compareAndSwap on jlongs. (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New function. (atomic_linux_zero.inline.hpp: Atomic::store): Use arm_val_compare_and_swap. * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT encodings. (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. (handle_special_method): Use intrinsic_id instead of method_kind. Add handlers for _compareAndSwapInt and _compareAndSwapLong. (Thumb2_codegen): Call handle_special_method() for invokevirtual. Pass stackdepth to handle_special_method(). changeset d549e720bebb in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d549e720bebb author: aph date: Fri Mar 02 12:49:43 2012 -0500 Minor reorg of arm.patch. changeset fd60dc8238c7 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=fd60dc8238c7 author: aph date: Tue Mar 13 16:56:04 2012 +0000 merge changeset f2b27b309c43 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f2b27b309c43 author: aph date: Wed Mar 14 05:47:19 2012 -0400 ARM: Replace some obscure constants with symbols. 2012-03-14 Andrew Haley <aph at redhat.com> * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def (ldc, ldc_w): Replace numeric constants for constant pool with symbols. * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S (build_frame): Likewise. (fast_native_entry): Likewise. changeset 248d25e53f7e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=248d25e53f7e author: aph date: Thu Mar 15 07:48:08 2012 -0400 ARM it(): handle negated conditions. 2012-03-15 Andrew Haley <aph at redhat.com> * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (it): Add code to handle negated conditions. (handle_special_method): Use blx_reg rather than blx in case the target is thumb code. changeset 461a2b36448e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=461a2b36448e author: aph date: Fri Mar 16 08:36:04 2012 -0400 Use unified syntax for thumb code. 2012-03-16 Andrew Haley <aph at redhat.com> * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: Use unified syntax for thumb code. changeset d5ab30d2a0fc in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d5ab30d2a0fc author: aph date: Fri Mar 16 08:50:50 2012 -0400 merge diffstat: ChangeLog | 127 ++++- Makefile.am | 6 +- NEWS | 2 + arm_port/hotspot/src/cpu/zero/vm/arm_cas.S | 31 + arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def | 4 +- arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S | 12 +- arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 198 +++++- patches/ScriptEngineManager-doc.patch | 28 + patches/arm.patch | 52 + patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch | 20 + patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch | 22 + tapset/jstack.stp.in | 287 +++++---- 12 files changed, 606 insertions(+), 183 deletions(-) diffs (truncated from 1096 to 500 lines): diff -r 01123e3102cc -r d5ab30d2a0fc ChangeLog --- a/ChangeLog Wed Feb 22 15:36:29 2012 +0000 +++ b/ChangeLog Fri Mar 16 08:50:50 2012 -0400 @@ -1,12 +1,127 @@ +<<<<<<< local +2012-03-16 Andrew Haley <aph at redhat.com> +======= +2012-03-14 Mark Wielaard <mjw at redhat.com> +>>>>>>> other + +<<<<<<< local + * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: Use unified syntax + for thumb code. +======= + * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. +>>>>>>> other + +<<<<<<< local +2012-03-15 Andrew Haley <aph at redhat.com> +======= +2012-03-13 Mark Wielaard <mjw at redhat.com> +>>>>>>> other + +<<<<<<< local + * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (it): Add code to + handle negated conditions. + (handle_special_method): Use blx_reg rather than blx in case the + target is thumb code. +======= + * tapset/jstack.stp.in: Wrap heap accessors in try-catch block to be + able to report unusual frames. +>>>>>>> other + +<<<<<<< local +2012-03-14 Andrew Haley <aph at redhat.com> +======= +2012-03-13 Mark Wielaard <mjw at redhat.com> +>>>>>>> other + +<<<<<<< local + * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def (ldc, ldc_w): + Replace numeric constants for constant pool with symbols. + * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S (build_frame): + Likewise. + (fast_native_entry): Likewise. +======= + * tapset/jstack.stp.in: Use @var construct if available to pick + target variable from the right CU (needed by newer DWARF/gcc + versions). +>>>>>>> other + +<<<<<<< local +2012-03-02 Andrew Haley <aph at redhat.com> +======= +2012-03-13 Mark Wielaard <mjw at redhat.com> +>>>>>>> other + +<<<<<<< local + * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: New file. + * patches/arm.patch (void get_processor_features): New function + that enables compareAndSwap on jlongs. + (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New + function. + (atomic_linux_zero.inline.hpp: Atomic::store): Use + arm_val_compare_and_swap. +======= + * tapset/jstack.stp.in: Index globals on pid() to support multiple + running hotspot jstacks at the same time. +>>>>>>> other + +<<<<<<< local + * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) + (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT + encodings. + (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. + (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. + (handle_special_method): Use intrinsic_id instead of method_kind. + Add handlers for _compareAndSwapInt and _compareAndSwapLong. + (Thumb2_codegen): Call handle_special_method() for invokevirtual. + Pass stackdepth to handle_special_method(). +======= +2012-03-13 Mark Wielaard <mjw at redhat.com> +>>>>>>> other + +<<<<<<< local +======= + * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. + +>>>>>>> other +2012-03-02 Xerxes R??nby <xerxes at zafena.se> + Andrew Haley <aph at redhat.com> + + * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: + (handle_special_method): Fix a off by one byte SIGILL crash + during BLX call to thumb compiled StrictMath intrinsics for + --with-float=hard --with-mode=thumb ARM builds. + +2012-02-27 Pavel Tisnovsky <ptisnovs at redhat.com> + + * Makefile.am: Add new patch. + * NEWS: Mention backport. + * patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch: + Backport of S4465490: Suspicious about double-check locking idiom being + used in the code. + +2012-02-27 Pavel Tisnovsky <ptisnovs at redhat.com> + + * Makefile.am: Add new patch. + * NEWS: Mention backport. + * patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch: + Backport of S6883983: JarVerifier dependency on + sun.security.pkcs should be removed + +2012-02-24 Pavel Tisnovsky <ptisnovs at redhat.com> + + * patches/ScriptEngineManager-doc.patch: + Added patch with JavaDoc fixes for ScriptEngineManager class. + * Makefile.am: updated + 2012-02-22 Andrew Haley <aph at redhat.com> * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp - (handle_special_method, jstack_to_vfp, vfp_to_jstack): New - functions. - (Thumb2_codegen): Call handle_special_method. - (t_vop_ops): Add VSQRT. - (T_VMOVD_VFP_TOVFP): New macro. - (vmov_reg_d_VFP_to_VFP): New function. + (handle_special_method, jstack_to_vfp, vfp_to_jstack): New + functions. + (Thumb2_codegen): Call handle_special_method. + (t_vop_ops): Add VSQRT. + (T_VMOVD_VFP_TOVFP): New macro. + (vmov_reg_d_VFP_to_VFP): New function. 2012-02-20 Andrew Haley <aph at redhat.com> diff -r 01123e3102cc -r d5ab30d2a0fc Makefile.am --- a/Makefile.am Wed Feb 22 15:36:29 2012 +0000 +++ b/Makefile.am Fri Mar 16 08:50:50 2012 -0400 @@ -420,7 +420,10 @@ patches/openjdk/6764553-IdResolver_is_not_thread_safe.patch \ patches/openjdk/6761072-new_krb5_tests_fail_on_multiple_platforms.patch \ patches/openjdk/7140882-dont-return-booleans-from-methods-returning-pointers.patch \ - patches/openjdk/remove-mimpure-option-to-gcc.patch + patches/openjdk/remove-mimpure-option-to-gcc.patch \ + patches/ScriptEngineManager-doc.patch \ + patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch \ + patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch if WITH_RHINO ICEDTEA_PATCHES += \ @@ -640,6 +643,7 @@ autogen.sh \ tapset/hotspot.stp.in \ tapset/hotspot_jni.stp.in \ + tapset/jstack.stp.in \ scripts/jni_create_stap.c \ scripts/jni_desc \ rewriter/agpl-3.0.txt \ diff -r 01123e3102cc -r d5ab30d2a0fc NEWS --- a/NEWS Wed Feb 22 15:36:29 2012 +0000 +++ b/NEWS Fri Mar 16 08:50:50 2012 -0400 @@ -18,6 +18,8 @@ - S6706974: Add krb5 test infrastructure - S6764553: com.sun.org.apache.xml.internal.security.utils.IdResolver is not thread safe - S6761072: new krb5 tests fail on multiple platforms + - S6883983: JarVerifier dependency on sun.security.pkcs should be removed + - S4465490: Suspicious about double-check locking idiom being used in the code New in release 1.10.6 (2012-02-14): diff -r 01123e3102cc -r d5ab30d2a0fc arm_port/hotspot/src/cpu/zero/vm/arm_cas.S --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/arm_cas.S Fri Mar 16 08:50:50 2012 -0400 @@ -0,0 +1,31 @@ +#ifdef __ARM_ARCH_7A__ +@ jlong +@ arm_val_compare_and_swap_long(volatile void *ptr, +@ jlong oldval, +@ jlong newval) { + .pushsection .text + .global arm_val_compare_and_swap_long +#ifdef __thumb__ + .syntax unified + .thumb_func +#endif + .type arm_val_compare_and_swap_long, %function +arm_val_compare_and_swap_long: + stmfd sp!, {r4, r5, r6, r7} + ldrd r4, [sp, #16] + dmb sy +0: ldrexd r6, [r0] + cmp r6, r2 + it eq + cmpeq r7, r3 + bne 1f + strexd r1, r4, [r0] + cmp r1, #0 + bne 0b + dmb sy +1: mov r0, r6 + mov r1, r7 + ldmfd sp!, {r4, r5, r6, r7} + bx lr + .popsection +#endif // __ARM_ARCH_7A__ diff -r 01123e3102cc -r d5ab30d2a0fc arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def --- a/arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def Wed Feb 22 15:36:29 2012 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def Fri Mar 16 08:50:50 2012 -0400 @@ -2091,7 +2091,7 @@ bne 2f add r0, tmp1, #CONSTANTPOOL_BASE ldr r0, [r0, lr, lsl #2] - ldr r1, [r0, #60] + ldr r1, [r0, #KLASS_PART + KLASS_JAVA_MIRROR] PUSH r1 DISPATCH 0 2: @@ -2147,7 +2147,7 @@ bne 2f add r0, r2, #CONSTANTPOOL_BASE ldr r0, [r0, lr, lsl #2] - ldr r1, [r0, #60] + ldr r1, [r0, #KLASS_PART + KLASS_JAVA_MIRROR] PUSH r1 DISPATCH 0 2: diff -r 01123e3102cc -r d5ab30d2a0fc arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S --- a/arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Wed Feb 22 15:36:29 2012 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Fri Mar 16 08:50:50 2012 -0400 @@ -737,8 +737,8 @@ tst r2, #JVM_ACC_STATIC ldrne r2, [r1, #METHOD_CONSTANTS] ldreq r2, [r6, #0] - ldrne r2, [r2, #16] - ldrne r2, [r2, #60] + ldrne r2, [r2, #CONSTANTPOOL_POOL_HOLDER] + ldrne r2, [r2, #KLASS_PART + KLASS_JAVA_MIRROR] str r2, [r7, #4] .L10: ldr r2, [r3, #8] @@ -1125,9 +1125,9 @@ beq .do_fast_copy_args ldr r2, [r11, #METHOD_CONSTANTS] - ldr r2, [r2, #16] + ldr r2, [r2, #CONSTANTPOOL_POOL_HOLDER] str r3, [lr], #4 - ldr r2, [r2, #60] + ldr r2, [r2, #KLASS_PART + KLASS_JAVA_MIRROR] add r1, r1, #4 str r2, [r3] @@ -2861,9 +2861,9 @@ tst r3, #JVM_ACC_STATIC ldrne r3, [r0, #METHOD_CONSTANTS] ldreq sl, [locals, #0] - ldrne r2, [r3, #16] + ldrne r2, [r3, #CONSTANTPOOL_POOL_HOLDER] ldr tmp1, [istate, #ISTATE_MONITOR_BASE] - ldrne sl, [r2, #60] + ldrne sl, [r2, #KLASS_PART + KLASS_JAVA_MIRROR] ldr r3, [sl, #0] orr tmp_xxx, r3, #1 str tmp_xxx, [tmp1, #-8]! diff -r 01123e3102cc -r d5ab30d2a0fc arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Feb 22 15:36:29 2012 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Mar 16 08:50:50 2012 -0400 @@ -3042,6 +3042,7 @@ #define T_IT(cond, mask) (0xbf00 | (conds[cond] << 4) | (mask)) #define IT_MASK_T 8 +#define IT_MASK_TEE 0x0e #define PATCH(loc) do { \ unsigned oldidx = codebuf->idx; \ @@ -3067,6 +3068,28 @@ int it(CodeBuf *codebuf, unsigned cond, unsigned mask) { + if (cond & 1) { + // If this is a negated condition, flip all the bits above the + // least significant bit that is 1. Note that at least one bit is + // always 1 in mask + switch (mask & (-mask)) { + case 8: + break; + case 4: + mask ^= 8; + break; + case 2: + mask ^= 0x0c; + break; + case 1: + mask ^= 0x0e; + break; + default: + // Impossible unless someone specified an incorrect mask + longjmp(compiler_error_env, COMPILER_RESULT_FAILED); + } + } + return out_16(codebuf, T_IT(cond, mask)); } @@ -4233,7 +4256,8 @@ eor_imm(jinfo->codebuf, r_result, r, 0x80000000); } -void Thumb2_dNeg(Thumb2_Info *jinfo, u32 opc) +// arm_op is either DP_EOR (for dnegate) or DP_BIC (for dabs) +static void Thumb2_dUnaryOp(Thumb2_Info *jinfo, u32 arm_op) { Thumb2_Stack *jstack = jinfo->jstack; unsigned r_lo, r_hi, r_res_lo, r_res_hi; @@ -4248,7 +4272,17 @@ JASSERT(r_res_lo != r_res_hi, "oops"); JASSERT(r_res_lo != r_hi, "r_res_lo != r_hi"); mov_reg(jinfo->codebuf, r_res_lo, r_lo); - eor_imm(jinfo->codebuf, r_res_hi, r_hi, 0x80000000); + dop_imm(jinfo->codebuf, arm_op, r_res_hi, r_hi, 0x80000000); +} + +void Thumb2_dNeg(Thumb2_Info *jinfo) +{ + Thumb2_dUnaryOp(jinfo, DP_EOR); +} + +void Thumb2_dAbs(Thumb2_Info *jinfo) +{ + Thumb2_dUnaryOp(jinfo, DP_BIC); } void Thumb2_lOp(Thumb2_Info *jinfo, u32 opc) @@ -5008,42 +5042,34 @@ // Expand a call to a "special" method. These are usually inlines of // java.lang.Math methods. Return true if the inlining succeeded. -static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo) { +static bool handle_special_method(methodOop callee, Thumb2_Info *jinfo, + unsigned stackdepth) { + Thumb2_Stack *jstack = jinfo->jstack; + CodeBuf *codebuf = jinfo->codebuf; + + const char *entry_name; + + switch (callee->intrinsic_id()) { + case vmIntrinsics::_dabs: + { + Thumb2_dAbs(jinfo); + return true; + } + #ifdef __ARM_PCS_VFP - Thumb2_Stack *jstack = jinfo->jstack; - - const char *entry_name; - - unsigned loc1 = 0; - - switch (Interpreter::method_kind(callee)) { - case Interpreter::java_lang_math_abs: - { - unsigned r_lo, r_hi; - - Thumb2_Fill(jinfo, 2); - r_lo = POP(jstack); - r_hi = POP(jstack); - dop_imm_s(jinfo->codebuf, DP_BIC, r_hi, r_hi, 0x80000000, 0); - PUSH(jstack, r_hi); - PUSH(jstack, r_lo); - - return true; - } - - case Interpreter::java_lang_math_sin: + case vmIntrinsics::_dsin: entry_name = "Java_java_lang_StrictMath_sin"; break; - case Interpreter::java_lang_math_cos: + case vmIntrinsics::_dcos: entry_name = "Java_java_lang_StrictMath_cos"; break; - case Interpreter::java_lang_math_tan: + case vmIntrinsics::_dtan: entry_name = "Java_java_lang_StrictMath_tan"; break; - case Interpreter::java_lang_math_sqrt: + case vmIntrinsics::_dsqrt: { void *entry_point = dlsym(NULL, "Java_java_lang_StrictMath_sqrt"); if (! entry_point) @@ -5070,20 +5096,112 @@ // FIXME: The JNI StrictMath routines don't use the JNIEnv *env // parameter, so it's arguably pointless to pass it here. add_imm(jinfo->codebuf, ARM_R0, Rthread, THREAD_JNI_ENVIRONMENT); - blx(jinfo->codebuf, (unsigned)entry_point); + mov_imm(jinfo->codebuf, ARM_IP, (unsigned)entry_point); + blx_reg(jinfo->codebuf, ARM_IP); bcc_patch(jinfo->codebuf, COND_EQ, loc); vfp_to_jstack(jinfo, VFP_D0); return true; } - case Interpreter::java_lang_math_log: + case vmIntrinsics::_dlog: entry_name = "Java_java_lang_StrictMath_log"; break; - case Interpreter::java_lang_math_log10: + case vmIntrinsics::_dlog10: entry_name = "Java_java_lang_StrictMath_log10"; break; +#endif // __ARM_PCS_VFP + + case vmIntrinsics::_compareAndSwapInt: + { + Thumb2_Fill(jinfo, 4); + + unsigned update = POP(jstack); + unsigned expect = POP(jstack); + unsigned offset = POP(jstack); + POP(jstack); // Actually the high part of the offset + + // unsigned object = POP(jstack); + // unsigned unsafe = POP(jstack); // Initially an instance of java.lang.Unsafe + + Thumb2_Flush(jinfo); + // Get ourself a result reg that's not one of the inputs + unsigned exclude = (1<<update)|(1<<expect)|(1<<offset); + unsigned result = JSTACK_PREFER(jstack, ~exclude); + + ldm(codebuf, (1<<ARM_IP)|(1<<ARM_LR), Rstack, POP_FD, 1); // Object addr + add_reg(codebuf, result, offset, ARM_IP); // result now points to word + ldr_imm(codebuf, ARM_LR, ARM_LR, 0, 0, 0); // Security check + + fullBarrier(codebuf); + + int retry = out_loc(codebuf); + ldrex_imm(codebuf, ARM_LR, result, 0); + cmp_reg(codebuf, ARM_LR, expect); + int loc_failed = forward_16(codebuf); + strex_imm(codebuf, ARM_IP, update, result, 0); + cmp_imm(codebuf, ARM_IP, 0); + branch(codebuf, COND_NE, retry); + bcc_patch(jinfo->codebuf, COND_NE, loc_failed); + + it(codebuf, COND_NE, IT_MASK_TEE); + mov_imm(codebuf, result, 0); + mov_imm(codebuf, result, 1); + fullBarrier(codebuf); + + PUSH(jstack, result); + } + return true; + + case vmIntrinsics::_compareAndSwapLong: + { + Thumb2_Fill(jinfo, 4); + + unsigned update_lo = POP(jstack); + unsigned update_hi = POP(jstack); + unsigned expect_lo = POP(jstack); + unsigned expect_hi = POP(jstack); + + Thumb2_Flush(jinfo); + Thumb2_save_locals(jinfo, stackdepth - 4); // 4 args popped above + + // instance of java.lang.Unsafe: + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 3 * wordSize, 1, 0); + ldr_imm(codebuf, ARM_LR, ARM_LR, 0, 0, 0); // Security check + + // Object: + ldr_imm(jinfo->codebuf, ARM_LR, Rstack, 2 * wordSize, 1, 0); + // Offset: + ldr_imm(jinfo->codebuf, ARM_IP, Rstack, 0 * wordSize, 1, 0); + add_reg(codebuf, ARM_LR, ARM_LR, ARM_IP); // ARM_LR now points to word + + fullBarrier(codebuf); + + int retry = out_loc(codebuf); + ldrexd(codebuf, JAZ_V2, JAZ_V3, ARM_LR); + cmp_reg(codebuf, JAZ_V2, expect_lo); + it(jinfo->codebuf, COND_EQ, IT_MASK_T); + cmp_reg(codebuf, JAZ_V3, expect_hi); + + int loc_failed = forward_16(codebuf); + strexd(codebuf, JAZ_V1, update_lo, update_hi, ARM_LR); + cmp_imm(codebuf, JAZ_V1, 0); + branch(codebuf, COND_NE, retry); + bcc_patch(jinfo->codebuf, COND_NE, loc_failed); + + unsigned result = JSTACK_REG(jinfo->jstack); + + it(codebuf, COND_NE, IT_MASK_TEE); From ahughes at redhat.com Fri Mar 16 10:01:18 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Fri, 16 Mar 2012 13:01:18 -0400 (EDT) Subject: ARM: Support for OpenJDK 7 In-Reply-To: <4F6304C6.2030209@redhat.com> Message-ID: <3ecf048b-ddc4-4c62-a300-23c15cacb516@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On 03/15/2012 11:24 PM, Andrew Hughes wrote: > > From what I remember of the ARM port in IcedTea6, the mere presence > > of the ARM > > source files is enough to have them compiled, without additional > > build work. Is > > this correct? > > Yes, that's right. For that reason they're wrapped in #ifdef ARM. > Very ugly, but hard to figure out what else to do without a big > reorg. On the positive side, it means we don't need to adapt the build machinery at this stage. > > Andrew. > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Fri Mar 16 10:02:59 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Fri, 16 Mar 2012 13:02:59 -0400 (EDT) Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: <4F634121.10506@redhat.com> Message-ID: <7f6057f8-593e-4136-a2ec-80710a682b83@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> Andrew Hughes wrote: > >>> ----- Original Message ----- > >>>> Andrew Hughes wrote: > >>>>> ----- Original Message ----- > >>>>>> Hi, > >>>>>> > >>>>>> I'd like to add following "small" (well 1MB of size ;-) > >>>>>> backport > >>>>>> to > >>>>>> IcedTea6: > >>>>>> "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" > >>>>>> > >>>>>> This patch fixes (among other thing) following issue: > >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >>>>>> > >>>>>> hg diff created against recent IcedTea6 HEAD version is stored > >>>>>> in > >>>>>> an > >>>>>> attachment > >>>>>> in a BZIP archive (because I don't want to send quite big 1MB > >>>>>> attachment to public mail list). > >>>>>> > >>>>>> Please note that it's not a direct backport because of (quite > >>>>>> minor) > >>>>>> differences > >>>>>> between IT6 and OpenJDK7 sources. This patch applies cleanly > >>>>>> and > >>>>>> it > >>>>>> does not > >>>>>> seem to cause any compatibility issues. > >>>>>> > >>>>>> Here's ChangeLog entry: > >>>>>> > >>>>>> 2012-02-28 Pavel Tisnovsky <ptisnovs at redhat.com> > >>>>>> > >>>>>> * Makefile.am: Add new patch. > >>>>>> * NEWS: Mention backport. > >>>>>> * > >>>>>> patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: > >>>>>> Backport of S6469266: Integrate Apache XMLSec 1.4.2 into JDK > >>>>>> 7 > >>>>>> > >>>>>> > >>>>>> Can anybody please review this change? > >>>>>> > >>>>>> Thank you in advance, > >>>>>> Pavel > >>>>>> > >>>>> What's the motivation for this? Does the proprietary JDK 6 use > >>>>> this version? > >>>> Can not say anything about JDK 6, but tests mentioned here: > >>>> > >>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >>>> > >>>> failed only on IcedTea6. IT7/O7 looks ok, the same for > >>>> proprietary > >>>> JDK6. > >>>> > >>>> Pavel > >>>> > >>>> > >>> Yes, but IcedTea6/OpenJDK6 has to meet the Java 6 specification. > >>> IcedTea7/OpenJDK7 obviously don't. Do you have a link to the > >>> original > >>> changeset? > >> Hi Andrew, > >> > >> here's bug with description: > >> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6469266 > >> > >> and here the original changeset: > >> http://hg.openjdk.java.net/jdk7/jsn/jdk/rev/74fc78477907 > >> > > > > Ok the problem with this remains, as noted before, that the > > granularity > > of this patch is not sufficient. This bug & changeset aren't in > > reference > > to the issue you've found, but constitute updates for an entire > > API. > > Well, so let's forget the issue for a moment. Is there any problem in > updating > *internal* library which does not change the official Java SE API? > > The original changeset is named "Integrate Apache XMLSec 1.4.2 into > JDK 7", but > I see no reason why not to backport it to IT6. Moreover when we know > it fixes > at least one issue. > That's the same issue I'm talking about. Unless the proprietary JDK6 is known to have also upgraded to 1.4.2, we shouldn't do this. > > > > You need to find the actual bug fix and import that. I suggest > > looking at > > whatever project this was imported from. > project? It's a whole library included in JDK: > http://santuario.apache.org/ > > > > >> Pavel > >> > > > > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From aph at icedtea.classpath.org Fri Mar 16 10:05:59 2012 From: aph at icedtea.classpath.org (aph at icedtea.classpath.org) Date: Fri, 16 Mar 2012 17:05:59 +0000 Subject: /hg/icedtea6: Fix merge Message-ID: <hg.0894be5f665e.1331917559.2873452341184383832@icedtea.classpath.org> changeset 0894be5f665e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0894be5f665e author: aph date: Fri Mar 16 13:05:33 2012 -0400 Fix merge diffstat: ChangeLog | 83 ++++++++++++++++++++++++-------------------------------------- 1 files changed, 32 insertions(+), 51 deletions(-) diffs (122 lines): diff -r d5ab30d2a0fc -r 0894be5f665e ChangeLog --- a/ChangeLog Fri Mar 16 08:50:50 2012 -0400 +++ b/ChangeLog Fri Mar 16 13:05:33 2012 -0400 @@ -1,57 +1,27 @@ -<<<<<<< local 2012-03-16 Andrew Haley <aph at redhat.com> -======= -2012-03-14 Mark Wielaard <mjw at redhat.com> ->>>>>>> other - -<<<<<<< local + * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: Use unified syntax for thumb code. -======= - * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. ->>>>>>> other - -<<<<<<< local + 2012-03-15 Andrew Haley <aph at redhat.com> -======= -2012-03-13 Mark Wielaard <mjw at redhat.com> ->>>>>>> other - -<<<<<<< local + * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (it): Add code to handle negated conditions. (handle_special_method): Use blx_reg rather than blx in case the target is thumb code. -======= - * tapset/jstack.stp.in: Wrap heap accessors in try-catch block to be - able to report unusual frames. ->>>>>>> other - -<<<<<<< local + (IT_MASK_TE, IT_MASK_TT, IT_MASK_TTT): Delete. + (IT_MASK_TEE): Correct. + 2012-03-14 Andrew Haley <aph at redhat.com> -======= -2012-03-13 Mark Wielaard <mjw at redhat.com> ->>>>>>> other - -<<<<<<< local + * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def (ldc, ldc_w): Replace numeric constants for constant pool with symbols. * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S (build_frame): Likewise. (fast_native_entry): Likewise. -======= - * tapset/jstack.stp.in: Use @var construct if available to pick - target variable from the right CU (needed by newer DWARF/gcc - versions). ->>>>>>> other - -<<<<<<< local + 2012-03-02 Andrew Haley <aph at redhat.com> -======= -2012-03-13 Mark Wielaard <mjw at redhat.com> ->>>>>>> other - -<<<<<<< local + * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: New file. * patches/arm.patch (void get_processor_features): New function that enables compareAndSwap on jlongs. @@ -59,12 +29,7 @@ function. (atomic_linux_zero.inline.hpp: Atomic::store): Use arm_val_compare_and_swap. -======= - * tapset/jstack.stp.in: Index globals on pid() to support multiple - running hotspot jstacks at the same time. ->>>>>>> other - -<<<<<<< local + * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT encodings. @@ -74,15 +39,31 @@ Add handlers for _compareAndSwapInt and _compareAndSwapLong. (Thumb2_codegen): Call handle_special_method() for invokevirtual. Pass stackdepth to handle_special_method(). -======= + +2012-03-14 Mark Wielaard <mjw at redhat.com> + + * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. + 2012-03-13 Mark Wielaard <mjw at redhat.com> ->>>>>>> other - -<<<<<<< local -======= + + * tapset/jstack.stp.in: Wrap heap accessors in try-catch block to be + able to report unusual frames. + +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Use @var construct if available to pick + target variable from the right CU (needed by newer DWARF/gcc + versions). + +2012-03-13 Mark Wielaard <mjw at redhat.com> + + * tapset/jstack.stp.in: Index globals on pid() to support multiple + running hotspot jstacks at the same time. + +2012-03-13 Mark Wielaard <mjw at redhat.com> + * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. ->>>>>>> other 2012-03-02 Xerxes R??nby <xerxes at zafena.se> Andrew Haley <aph at redhat.com> From ddadacha at icedtea.classpath.org Fri Mar 16 11:18:02 2012 From: ddadacha at icedtea.classpath.org (ddadacha at icedtea.classpath.org) Date: Fri, 16 Mar 2012 18:18:02 +0000 Subject: /hg/icedtea-web: Fix JNLP parser to halt when required title and... Message-ID: <hg.53745f40a1ca.1331921882.8643924302249223276@icedtea.classpath.org> changeset 53745f40a1ca in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=53745f40a1ca author: Danesh Dadachanji <ddadacha at redhat.com> date: Fri Mar 16 14:17:36 2012 -0400 Fix JNLP parser to halt when required title and vendor elements are missing. diffstat: ChangeLog | 17 ++ netx/net/sourceforge/jnlp/Parser.java | 5 + netx/net/sourceforge/jnlp/resources/Messages.properties | 2 + tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp | 47 +++++ tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp | 52 ++++++ tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp | 51 ++++++ tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp | 52 ++++++ tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java | 81 ++++++++++ 8 files changed, 307 insertions(+), 0 deletions(-) diffs (354 lines): diff -r a988f5155172 -r 53745f40a1ca ChangeLog --- a/ChangeLog Wed Mar 14 15:05:54 2012 -0400 +++ b/ChangeLog Fri Mar 16 14:17:36 2012 -0400 @@ -1,3 +1,20 @@ +2012-03-16 Danesh Dadachanji <ddadacha at redhat.com> + + Applications using JNLP files without a title or vendor section + still run, despite them being required elements. + * netx/net/sourceforge/jnlp/Parser.java: + (getInformationDesc): If title or vendor are not found in info, + a new ParseException is thrown. + * netx/net/sourceforge/jnlp/resources/Messages.properties: + Added PNoTitleElement and PNoVendorElement + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp, + * tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/TitleVendorParserTest.java: + New test that runs JNLPs in a combination of missing information, title + and vendor tags, checking for the appropriate exceptions. + 2012-03-14 Deepak Bhole <dbhole at redhat.com> Omair Majid <omajid at redhat.com> diff -r a988f5155172 -r 53745f40a1ca netx/net/sourceforge/jnlp/Parser.java --- a/netx/net/sourceforge/jnlp/Parser.java Wed Mar 14 15:05:54 2012 -0400 +++ b/netx/net/sourceforge/jnlp/Parser.java Fri Mar 16 14:17:36 2012 -0400 @@ -504,6 +504,11 @@ child = child.getNextSibling(); } + if (info.getTitle() == null || info.getTitle().trim().isEmpty()) + throw new ParseException(R("PNoTitleElement")); + if (info.getVendor() == null || info.getVendor().trim().isEmpty()) + throw new ParseException(R("PNoVendorElement")); + return info; } diff -r a988f5155172 -r 53745f40a1ca netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Mar 14 15:05:54 2012 -0400 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Mar 16 14:17:36 2012 -0400 @@ -105,6 +105,8 @@ PTwoMains=Duplicate main JAR defined in a resources element (there can be only one) PNativeHasMain=Cannot specify main attribute on native JARs. PNoInfoElement=No information section defined +PNoTitleElement=The title section has not been defined in the JNLP file. +PNoVendorElement=The vendor section has not been defined in the JNLP file. PTwoDescriptions=Duplicate description of kind {0} PSharing=Element "sharing-allowed" is illegal in a standard JNLP file PTwoSecurity=Only one security element allowed per JNLPFile. diff -r a988f5155172 -r 53745f40a1ca tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp Fri Mar 16 14:17:36 2012 -0400 @@ -0,0 +1,47 @@ +<!-- + +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; either version 2, or (at your option) +any later version. + +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. + + --> +<?xml version="1.0" encoding="utf-8"?> +<jnlp spec="1.0" href="InformationParser.jnlp" codebase="."> + <!-- information tag missing --> + <resources> + <j2se version="1.4+"/> + <jar href="simpletest1.jar"/> + </resources> + <application-desc main-class="TitleVendorParser"> + </application-desc> +</jnlp> diff -r a988f5155172 -r 53745f40a1ca tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp Fri Mar 16 14:17:36 2012 -0400 @@ -0,0 +1,52 @@ +<!-- + +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; either version 2, or (at your option) +any later version. + +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. + + --> +<?xml version="1.0" encoding="utf-8"?> +<jnlp spec="1.0" href="TitleParser.jnlp" codebase="."> + <information> + <vendor>IcedTea</vendor> + <homepage href="http://jnlp.sourceforge.net/netx/"/> + <description>Title tag missing</description> + <offline/> + </information> + <resources> + <j2se version="1.4+"/> + <jar href="simpletest1.jar"/> + </resources> + <application-desc main-class="TitleVendorParser"> + </application-desc> +</jnlp> diff -r a988f5155172 -r 53745f40a1ca tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp Fri Mar 16 14:17:36 2012 -0400 @@ -0,0 +1,51 @@ +<!-- + +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; either version 2, or (at your option) +any later version. + +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. + + --> +<?xml version="1.0" encoding="utf-8"?> +<jnlp spec="1.0" href="TitleVendorParser.jnlp" codebase="."> + <information> + <homepage href="http://jnlp.sourceforge.net/netx/"/> + <description>Title/Vendor tags missing</description> + <offline/> + </information> + <resources> + <j2se version="1.4+"/> + <jar href="simpletest1.jar"/> + </resources> + <application-desc main-class="TitleVendorParser"> + </application-desc> +</jnlp> diff -r a988f5155172 -r 53745f40a1ca tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp Fri Mar 16 14:17:36 2012 -0400 @@ -0,0 +1,52 @@ +<!-- + +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; either version 2, or (at your option) +any later version. + +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. + + --> +<?xml version="1.0" encoding="utf-8"?> +<jnlp spec="1.0" href="VendorParser.jnlp" codebase="."> + <information> + <title>VendorParser + + Vendor tag missing + + + + + + + + + diff -r a988f5155172 -r 53745f40a1ca tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java Fri Mar 16 14:17:36 2012 -0400 @@ -0,0 +1,81 @@ +/* InformationTitleVendorParserTest.java +Copyright (C) 2011 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. + */ + + +import net.sourceforge.jnlp.ServerAccess; +import org.junit.Assert; +import org.junit.Test; + +public class InformationTitleVendorParserTest { + + private static ServerAccess server = new ServerAccess(); + + public void runTest(String jnlpName, String exceptionMessage) throws Exception { + System.out.println("connecting InformationTitleVendorParser request, testing " + jnlpName); + System.err.println("connecting InformationTitleVendorParser request, testing " + jnlpName); + ServerAccess.ProcessResult pr=server.executeJavawsHeadless(null,"/" + jnlpName + ".jnlp"); + System.out.println(pr.stdout); + System.err.println(pr.stderr); + String s1 = "Good simple javaws exapmle"; + Assert.assertFalse("test" + jnlpName + " stdout should not contain " + s1 + " but did.", pr.stdout.contains(s1)); + // Looking for "Could not read or parse the JNLP file. (${DESCRIPTION})" + String s2 = "(?s).*Could not read or parse the JNLP file.{0,5}" + exceptionMessage + "(?s).*"; + Assert.assertTrue("testForTitle stderr should match " + s2 + " but did not.", pr.stderr.matches(s2)); + Assert.assertFalse(pr.wasTerminated); + Assert.assertEquals((Integer)0, pr.returnValue); + } + + @Test + public void testInformationeParser() throws Exception { + runTest("InformationParser", "No information section defined"); + } + + @Test + public void testTitleParser() throws Exception { + runTest("TitleParser", "The title section has not been defined in the JNLP file."); + } + @Test + public void testVendorParser() throws Exception { + runTest("VendorParser", "The vendor section has not been defined in the JNLP file."); + } + + @Test + public void testTitleVendorParser() throws Exception { + // Note that the title message missing causes an immediate exception, regardless of Vendor. + runTest("TitleVendorParser", "The title section has not been defined in the JNLP file."); + } +} From ddadacha at redhat.com Fri Mar 16 11:20:33 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 16 Mar 2012 14:20:33 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F638239.3080201@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> <4F6091CE.7010707@redhat.com> <4F60FAD4.1030601@redhat.com> <4F638239.3080201@redhat.com> Message-ID: <4F638471.1040705@redhat.com> On 16/03/12 02:11 PM, Jiri Vanek wrote: > > Approved second times;) Thanks very much! Pushed to HEAD: http://icedtea.classpath.org/hg/icedtea-web/rev/53745f40a1ca Cheers, Danesh From jvanek at redhat.com Fri Mar 16 10:11:40 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 16 Mar 2012 18:11:40 +0100 Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: <7f6057f8-593e-4136-a2ec-80710a682b83@zmail17.collab.prod.int.phx2.redhat.com> References: <7f6057f8-593e-4136-a2ec-80710a682b83@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F63744C.1050609@redhat.com> On 03/16/2012 06:02 PM, Andrew Hughes wrote: > ----- Original Message ----- >> Andrew Hughes wrote: >>> ----- Original Message ----- >>>> Andrew Hughes wrote: >>>>> ----- Original Message ----- >>>>>> Andrew Hughes wrote: >>>>>>> ----- Original Message ----- >>>>>>>> Hi, >>>>>>>> >>>>>>>> I'd like to add following "small" (well 1MB of size ;-) >>>>>>>> backport >>>>>>>> to >>>>>>>> IcedTea6: >>>>>>>> "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" >>>>>>>> >>>>>>>> This patch fixes (among other thing) following issue: >>>>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>>>>>> >>>>>>>> hg diff created against recent IcedTea6 HEAD version is stored >>>>>>>> in >>>>>>>> an >>>>>>>> attachment >>>>>>>> in a BZIP archive (because I don't want to send quite big 1MB >>>>>>>> attachment to public mail list). >>>>>>>> >>>>>>>> Please note that it's not a direct backport because of (quite >>>>>>>> minor) >>>>>>>> differences >>>>>>>> between IT6 and OpenJDK7 sources. This patch applies cleanly >>>>>>>> and >>>>>>>> it >>>>>>>> does not >>>>>>>> seem to cause any compatibility issues. >>>>>>>> >>>>>>>> Here's ChangeLog entry: >>>>>>>> >>>>>>>> 2012-02-28 Pavel Tisnovsky >>>>>>>> >>>>>>>> * Makefile.am: Add new patch. >>>>>>>> * NEWS: Mention backport. >>>>>>>> * >>>>>>>> patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: >>>>>>>> Backport of S6469266: Integrate Apache XMLSec 1.4.2 into JDK >>>>>>>> 7 >>>>>>>> >>>>>>>> >>>>>>>> Can anybody please review this change? >>>>>>>> >>>>>>>> Thank you in advance, >>>>>>>> Pavel >>>>>>>> >>>>>>> What's the motivation for this? Does the proprietary JDK 6 use >>>>>>> this version? >>>>>> Can not say anything about JDK 6, but tests mentioned here: >>>>>> >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>>>> >>>>>> failed only on IcedTea6. IT7/O7 looks ok, the same for >>>>>> proprietary >>>>>> JDK6. >>>>>> >>>>>> Pavel >>>>>> >>>>>> >>>>> Yes, but IcedTea6/OpenJDK6 has to meet the Java 6 specification. >>>>> IcedTea7/OpenJDK7 obviously don't. Do you have a link to the >>>>> original >>>>> changeset? >>>> Hi Andrew, >>>> >>>> here's bug with description: >>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6469266 >>>> >>>> and here the original changeset: >>>> http://hg.openjdk.java.net/jdk7/jsn/jdk/rev/74fc78477907 >>>> >>> >>> Ok the problem with this remains, as noted before, that the >>> granularity >>> of this patch is not sufficient. This bug& changeset aren't in >>> reference >>> to the issue you've found, but constitute updates for an entire >>> API. >> >> Well, so let's forget the issue for a moment. Is there any problem in >> updating >> *internal* library which does not change the official Java SE API? >> >> The original changeset is named "Integrate Apache XMLSec 1.4.2 into >> JDK 7", but >> I see no reason why not to backport it to IT6. Moreover when we know >> it fixes >> at least one issue. >> > > That's the same issue I'm talking about. Unless the proprietary JDK6 is > known to have also upgraded to 1.4.2, we shouldn't do this. I'm afraid that this will be necessary to be kept as inside-rpm patch then :( J. > >>> >>> You need to find the actual bug fix and import that. I suggest >>> looking at >>> whatever project this was imported from. >> project? It's a whole library included in JDK: >> http://santuario.apache.org/ >> >>> >>>> Pavel >>>> >>> >> >> > From jvanek at redhat.com Fri Mar 16 11:11:05 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 16 Mar 2012 19:11:05 +0100 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F60FAD4.1030601@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> <4F6091CE.7010707@redhat.com> <4F60FAD4.1030601@redhat.com> Message-ID: <4F638239.3080201@redhat.com> On 03/14/2012 09:08 PM, Danesh Dadachanji wrote: > > On 14/03/12 08:40 AM, Jiri Vanek wrote: >> Yap. I think this can go in now with minor fix - In changelog you have >> mentioned + * >> tests/jnlp_tests/simple/InformationTitleVendorParser/srcs/TitleVendorParser.java, >> but this one is not going in (as you are using simpletest1 and the file >> is not present in patch), Ensure also if this >> InformationTitleVendorParser/srcs dir is really empty in your testing >> builds (if isn't ensure all is working when emptied). >> btw - spaces in changelog instead of tabs, although I suspect email >> clients to did so, please check before push. > > Done, I have removed the srcs dir too. > >> Thanx for test and after minor issue being fixed, please push. > > I actually noticed one more issue, after Omair's fix[1] for printing errors to terminal, it no longer prints the exception. I've changed the code to match part of the output. Here's what would be printed for a JNLP without : > > netx: Read Error: Could not read or parse the JNLP file. (No information section defined) > > > Here are the changes between this attached patch and the previous one: > > - String s2 = "(?s).*net.sourceforge.jnlp.ParseException.{0,5}" + exceptionMessage + "(?s).*"; > + // Looking for "Could not read or parse the JNLP file. (${DESCRIPTION})" > + String s2 = "(?s).*Could not read or parse the JNLP file.{0,5}" + exceptionMessage + "(?s).*"; > > > Can you just clarify this patch is okay for HEAD too? > > ChangeLog > +2012-03-14 Danesh Dadachanji > + > + Applications using JNLP files without a title or vendor section > + still run, despite them being required elements. > + * netx/net/sourceforge/jnlp/Parser.java: > + (getInformationDesc): If title or vendor are not found in info, > + a new ParseException is thrown. > + * netx/net/sourceforge/jnlp/resources/Messages.properties: > + Added PNoTitleElement and PNoVendorElement > + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp, > + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp, > + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp, > + * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp, > + * tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/TitleVendorParserTest.java: > + New test that runs JNLPs in a combination of missing information, title > + and vendor tags, checking for the appropriate exceptions. > + > > Cheers, > Danesh Approved second times;) J. From omajid at redhat.com Fri Mar 16 16:24:38 2012 From: omajid at redhat.com (Omair Majid) Date: Fri, 16 Mar 2012 19:24:38 -0400 Subject: java.lang.InternalError - No RenderingEngine module found In-Reply-To: <4F60C52C.2040500@redhat.com> References: <4F60BAFA.5060202@redhat.com> <4F60C341.7090602@redhat.com> <4F60C52C.2040500@redhat.com> Message-ID: <4F63CBB6.6040604@redhat.com> On 03/14/2012 12:19 PM, Jiri Vanek wrote: > On 03/14/2012 05:11 PM, Omair Majid wrote: >> On 03/14/2012 11:36 AM, Jiri Vanek wrote: >>> It happend when trying to create jframe from test, run inside junit, >>> run from make from commandline. >> >> Can you post the code that is causing the error and tell us exactly how >> you are running it? >> Sorry about the delay in getting back. > > @Test > public void frame() throws AWTException, IOException{ > JFrame f = new JFrame(); > f.setSize(800,600); > f.setVisible(true); > Assert.assertNotNull(f); > Robot r =new Robot(); > BufferedImage bi=r.createScreenCapture(new Rectangle(0,0,800,600)); > Assert.assertNotNull(bi); > ImageIO.write(bi, "png", new > File("/home/jvanek/Desktop/xp13.png")); > > } > > > in any testclass from jnlp testcases or unittests. > > Then ./autogen.sh ; ./configure > --prefix=/home/jvanek/icedtea-web-image --disable-docs; make check; make > install;make run-netx-dist-tests. In all cases the frame test failed on > first line with mentioned exception. Thanks for the reproducer and the steps. Ok, I see the problem now. Implementations of RenderingEngine are stored in rt.jar, but java uses the ServiceLoader mechanism to locate and use an implementation of RenderingEngine. In this case, ServiceLoader looks for META-INF/services/sun.java2d.pipe.RenderingEngine files in any jars on the classpath to find the implementations of RenderingEngine. This file, in icedtea (and openjdk), is stored in resources.jar which we do not add to the classpath when building. The attached patch works for me. It runs the test (which fails). That said, I am a little confused. Are you trying to use junit to run entire applications and take screenshots and do comparisons? I am not sure if junit is the best tool for this. Perhaps a simple java program will suffice (unless you need the various annoations/methods/integration-support provided by junit). Cheers, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: rendering-engine-01.patch Type: text/x-patch Size: 1250 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120316/b19261cb/rendering-engine-01.patch From bugzilla-daemon at icedtea.classpath.org Fri Mar 16 16:43:58 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 16 Mar 2012 23:43:58 +0000 Subject: [Bug 899] New: Internal Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=899 Bug #: 899 Summary: Internal Classification: Unclassified Product: IcedTea Version: 7-1.10 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: earias at idecnet.com Created attachment 677 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=677 Error reports Deploying a Tomcat6.035 app. Catalina.out: - Bind entity net.project.hibernate.model.PnTmpDocument on table PN_TMP_DOCUMENT # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (c1_Optimizer.cpp:271), pid=5592, tid=1833823120 # guarantee(x_compare_res != Constant::not_comparable) failed: incomparable constants in IfOp # # JRE version: 6.0_22-b22 # Java VM: OpenJDK Client VM (20.0-b11 mixed mode linux-x86 ) # Derivative: IcedTea6 1.10.6 # Distribution: CentOS release 5.7 (Final), package rhel-1.25.1.10.6.el5_8-i386 # An error report file with more information is saved as: # /tmp/hs_err_pid5592.log - Binding entity from annotated class: net.project.hibernate.model.PnTmpHeartbeatMetric - Bind entity net.project.hibernate.model.PnTmpHeartbeatMetric on table PN_TMP_HEARTBEAT_METRICS - Binding entity from annotated class: net.project.hibernate.model.PnUser - Bind entity net.project.hibernate.model.PnUser on table PN_USER - Binding entity from annotated class: net.project.hibernate.model.PnUserDefaultCredential - Bind entity net.project.hibernate.model.PnUserDefaultCredential on table PN_USER_DEFAULT_CREDENTIALS - Binding entity from annotated class: net.project.hibernate.model.PnUserDomain - Bind entity net.project.hibernate.model.PnUserDomain on table PN_USER_DOMAIN - Binding entity from annotated class: net.project.hibernate.model.PnUserDomainMigration - Bind entity net.project.hibernate.model.PnUserDomainMigration on table PN_USER_DOMAIN_MIGRATION # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Mar 16 16:45:12 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 16 Mar 2012 23:45:12 +0000 Subject: [Bug 899] Internal Error (c1_Optimizer.cpp:271) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=899 earias at idecnet.com changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Internal |Internal Error | |(c1_Optimizer.cpp:271) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From omajid at redhat.com Fri Mar 16 16:35:36 2012 From: omajid at redhat.com (Omair Majid) Date: Fri, 16 Mar 2012 19:35:36 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F60FAD4.1030601@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> <4F6091CE.7010707@redhat.com> <4F60FAD4.1030601@redhat.com> Message-ID: <4F63CE48.4060104@redhat.com> On 03/14/2012 04:08 PM, Danesh Dadachanji wrote: > + * netx/net/sourceforge/jnlp/Parser.java: > + (getInformationDesc): If title or vendor are not found in info, > + a new ParseException is thrown. There is something wrong here. Many unit tests contain snippets of jnlp files that do not contain title or vendor tags. Those unit tests are (mostly) still passing (by this, I mean a simple parse operation on them succeeds). I see about 1 new failure where I was expecting tons. Did I mention I prefer unit tests rather than integration tests for checking corner cases? :) Cheers, Omair From thomas at m3y3r.de Sun Mar 18 04:27:56 2012 From: thomas at m3y3r.de (Thomas Meyer) Date: Sun, 18 Mar 2012 12:27:56 +0100 Subject: Fix missing download parameter in addRessource() javadoc Message-ID: <1332070076.1433.11.camel@localhost.localdomain> # HG changeset patch # User thomas at m3y3r.de # Date 1332069408 -3600 # Node ID fe27f172a7ae67230ac7864c7b1584569c22b482 # Parent 7e52a177ec72d0311b54e1f85352fbb17f5342dc Fix missing download parameter in addRessource() javadoc diff -r 7e52a177ec72 -r fe27f172a7ae netx/net/sourceforge/jnlp/cache/ResourceTracker.java --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Sun Mar 18 12:09:48 2012 +0100 +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Sun Mar 18 12:16:48 2012 +0100 @@ -168,6 +168,7 @@ * * @param location the location of the resource * @param version the resource version + * @param options download options of the resource * @param updatePolicy whether to check for updates if already in cache */ public void addResource(URL location, Version version, DownloadOptions options, UpdatePolicy updatePolicy) { From thomas at m3y3r.de Sun Mar 18 04:31:07 2012 From: thomas at m3y3r.de (Thomas Meyer) Date: Sun, 18 Mar 2012 12:31:07 +0100 Subject: [RFC] PR858 In-Reply-To: <20120313210843.GO2401@redhat.com> References: <1331374720.1380.36.camel@localhost.localdomain> <20120313210843.GO2401@redhat.com> Message-ID: <1332070267.1433.14.camel@localhost.localdomain> Am Dienstag, den 13.03.2012, 17:08 -0400 schrieb Deepak Bhole: > This is odd. The code was added in that catch because at one point > loadClassExt() was not automatically adding the index classes. Now it is > :/ > > The best thing would be to somehow remove the index from the JarFile > returned by CachedJarFileCallback, but entries cannot be removed without > re-writing the JAR. I think given that, your logic of check for sd looks > correct. > > However, calling addJar means that the jar is now being downloaded twice > -- once by URLClassLoader (which doesn't cache it) and once by > JNLPClassLoader. > > We could scan for INDEX.LIST beforhand and add those jars, but then that > defeats lazy loading. Other suggestions? I did implement the preloading. what do you think of this patch: kind regards thomas # HG changeset patch # User thomas at m3y3r.de # Date 1332069949 -3600 # Node ID 540254dcb2b360f2cf8d343e2326b327e7a4177b # Parent fe27f172a7ae67230ac7864c7b1584569c22b482 Preload jar in the initial classpath to avoid a duplicate download in the URLClassLoader and fix PR858. The preloading will add a SecurityDesc to all jars in the initial classpath and thus return the correct getPermissions(CodeSource cs). Also prevent an NPE in getPermissions(CodeSource cs) and assign sandbox permissions in the case a CodeSource has no SecurityDesc yet. diff -r fe27f172a7ae -r 540254dcb2b3 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Sun Mar 18 12:16:48 2012 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Sun Mar 18 12:25:49 2012 +0100 @@ -206,10 +206,46 @@ setSecurity(); installShutdownHooks(); + + makeClassPathAvailable(); } /** + * Make jars in the classpath available and start downloading them. + * FIXME: only do this for applets?! + */ + private void makeClassPathAvailable() { + + if(file instanceof PluginBridge) { + + List classPathJars = new ArrayList(); + + //start downloading the jars + for (String classpath: classpaths) { + URL jarUrl; + try { + jarUrl = new URL(file.getCodeBase(), classpath); + JARDesc desc = new JARDesc(jarUrl, null, null, false, true, false, true); + classPathJars.add(desc); + addAvailable(desc); + } catch (MalformedURLException e) { + // do nothing + } + } + + // wait for download + waitForJars(classPathJars); + + //add them + for(JARDesc jar: classPathJars) { + addNewJar(jar); + } + } + + } + + /** * Install JVM shutdown hooks to clean up resources allocated by this * ClassLoader. */ @@ -448,16 +484,10 @@ for (int i = 0; i < jars.length; i++) { - available.add(jars[i]); + addAvailable(jars[i]); if (jars[i].isEager()) initialJars.add(jars[i]); // regardless of part - - tracker.addResource(jars[i].getLocation(), - jars[i].getVersion(), - getDownloadOptionsForJar(jars[i]), - jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE - ); } //If there are no eager jars, initialize the first jar @@ -496,7 +526,7 @@ checkForMain(initialJars); // If jar with main class was not found, check available resources - while (!foundMainJar && available != null && available.size() != 0) + while (!foundMainJar && available != null) addNextResource(); // If jar with main class was not found and there are no more @@ -576,6 +606,25 @@ } /*** + * Add jar to the list of available jars and start the tracker to download it + * + * @param jarDesc jar to make available + */ + private void addAvailable(JARDesc jarDesc) { + + if(available.contains(jarDesc)) + return; + + available.add(jarDesc); + + tracker.addResource(jarDesc.getLocation(), + jarDesc.getVersion(), + getDownloadOptionsForJar(jarDesc), + jarDesc.isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE + ); + } + + /*** * Checks for the jar that contains the main class. If the main class was * found, it checks to see if the jar is signed and whether it contains a * signed JNLP file @@ -908,15 +957,17 @@ // set default perms PermissionCollection permissions = security.getSandBoxPermissions(); + URL csUrl = cs.getLocation(); + SecurityDesc sd = getCodeSourceSecurity(csUrl); // If more than default is needed: // 1. Code must be signed // 2. ALL or J2EE permissions must be requested (note: plugin requests ALL automatically) - if (cs.getCodeSigners() != null && - (getCodeSourceSecurity(cs.getLocation()).getSecurityType().equals(SecurityDesc.ALL_PERMISSIONS) || - getCodeSourceSecurity(cs.getLocation()).getSecurityType().equals(SecurityDesc.J2EE_PERMISSIONS))) { + if (cs.getCodeSigners() != null && sd != null && + (sd.getSecurityType().equals(SecurityDesc.ALL_PERMISSIONS) || + sd.getSecurityType().equals(SecurityDesc.J2EE_PERMISSIONS))) { - permissions = getCodeSourceSecurity(cs.getLocation()).getPermissions(cs); + permissions = sd.getPermissions(cs); } Enumeration e = permissions.elements(); @@ -1263,11 +1314,11 @@ * * @param jars the jars */ - private void waitForJars(List jars) { + private void waitForJars(List jars) { URL urls[] = new URL[jars.size()]; for (int i = 0; i < jars.size(); i++) { - JARDesc jar = (JARDesc) jars.get(i); + JARDesc jar = jars.get(i); urls[i] = jar.getLocation(); } @@ -1340,30 +1391,7 @@ try { result = loadClassExt(name); } catch (ClassNotFoundException cnfe) { - // Not found in external loader either - - // Look in 'Class-Path' as specified in the manifest file - try { - for (String classpath: classpaths) { - JARDesc desc; - try { - URL jarUrl = new URL(file.getCodeBase(), classpath); - desc = new JARDesc(jarUrl, null, null, false, true, false, true); - } catch (MalformedURLException mfe) { - throw new ClassNotFoundException(name, mfe); - } - addNewJar(desc); - } - - result = loadClassExt(name); - return result; - } catch (ClassNotFoundException cnfe1) { - if (JNLPRuntime.isDebug()) { - cnfe1.printStackTrace(); - } - } - - // As a last resort, look in any available indexes + // Not found in external loader either, look in any available indexes // Currently this loads jars directly from the site. We cannot cache it because this // call is initiated from within the applet, which does not have disk read/write permissions @@ -1413,13 +1441,7 @@ */ private void addNewJar(final JARDesc desc) { - available.add(desc); - - tracker.addResource(desc.getLocation(), - desc.getVersion(), - null, - JNLPRuntime.getDefaultUpdatePolicy() - ); + addAvailable(desc); // Give read permissions to the cached jar file AccessController.doPrivileged(new PrivilegedAction() { From bugzilla-daemon at icedtea.classpath.org Sun Mar 18 04:33:12 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 18 Mar 2012 11:33:12 +0000 Subject: [Bug 858] MarvinSketch and several other Applets not working In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=858 --- Comment #6 from thomas at m3y3r.de 2012-03-18 11:33:12 UTC --- Proposed fix: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017759.html -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From jvanek at redhat.com Sun Mar 18 23:38:09 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 19 Mar 2012 07:38:09 +0100 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F63CE48.4060104@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> <4F6091CE.7010707@redhat.com> <4F60FAD4.1030601@redhat.com> <4F63CE48.4060104@redhat.com> Message-ID: <4F66D451.9000802@redhat.com> On 03/17/2012 12:35 AM, Omair Majid wrote: > On 03/14/2012 04:08 PM, Danesh Dadachanji wrote: >> + * netx/net/sourceforge/jnlp/Parser.java: >> + (getInformationDesc): If title or vendor are not found in info, >> + a new ParseException is thrown. > > There is something wrong here. Many unit tests contain snippets of jnlp > files that do not contain title or vendor tags. Those unit tests are > (mostly) still passing (by this, I mean a simple parse operation on them > succeeds). I see about 1 new failure where I was expecting tons. As far as I know Danesh have fixed all the information elements across testcases. > > Did I mention I prefer unit tests rather than integration tests for > checking corner cases? :) Yap. This give sense. The fault of directing this to reproducers run to my head :( Sorry J. > > Cheers, > Omair From ahughes at redhat.com Mon Mar 19 05:18:18 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Mon, 19 Mar 2012 08:18:18 -0400 (EDT) Subject: Reviewer needed: backport of "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" into IcedTea6 In-Reply-To: <4F63744C.1050609@redhat.com> Message-ID: <68c07a21-b00d-4f2a-9dfe-0b72ae0abb3b@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On 03/16/2012 06:02 PM, Andrew Hughes wrote: > > ----- Original Message ----- > >> Andrew Hughes wrote: > >>> ----- Original Message ----- > >>>> Andrew Hughes wrote: > >>>>> ----- Original Message ----- > >>>>>> Andrew Hughes wrote: > >>>>>>> ----- Original Message ----- > >>>>>>>> Hi, > >>>>>>>> > >>>>>>>> I'd like to add following "small" (well 1MB of size ;-) > >>>>>>>> backport > >>>>>>>> to > >>>>>>>> IcedTea6: > >>>>>>>> "6469266: Integrate Apache XMLSec 1.4.2 into JDK 7" > >>>>>>>> > >>>>>>>> This patch fixes (among other thing) following issue: > >>>>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >>>>>>>> > >>>>>>>> hg diff created against recent IcedTea6 HEAD version is > >>>>>>>> stored > >>>>>>>> in > >>>>>>>> an > >>>>>>>> attachment > >>>>>>>> in a BZIP archive (because I don't want to send quite big > >>>>>>>> 1MB > >>>>>>>> attachment to public mail list). > >>>>>>>> > >>>>>>>> Please note that it's not a direct backport because of > >>>>>>>> (quite > >>>>>>>> minor) > >>>>>>>> differences > >>>>>>>> between IT6 and OpenJDK7 sources. This patch applies cleanly > >>>>>>>> and > >>>>>>>> it > >>>>>>>> does not > >>>>>>>> seem to cause any compatibility issues. > >>>>>>>> > >>>>>>>> Here's ChangeLog entry: > >>>>>>>> > >>>>>>>> 2012-02-28 Pavel Tisnovsky > >>>>>>>> > >>>>>>>> * Makefile.am: Add new patch. > >>>>>>>> * NEWS: Mention backport. > >>>>>>>> * > >>>>>>>> patches/openjdk/6469266-Integrate_Apache_XMLSec_1_4_2.patch: > >>>>>>>> Backport of S6469266: Integrate Apache XMLSec 1.4.2 into > >>>>>>>> JDK > >>>>>>>> 7 > >>>>>>>> > >>>>>>>> > >>>>>>>> Can anybody please review this change? > >>>>>>>> > >>>>>>>> Thank you in advance, > >>>>>>>> Pavel > >>>>>>>> > >>>>>>> What's the motivation for this? Does the proprietary JDK 6 > >>>>>>> use > >>>>>>> this version? > >>>>>> Can not say anything about JDK 6, but tests mentioned here: > >>>>>> > >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >>>>>> > >>>>>> failed only on IcedTea6. IT7/O7 looks ok, the same for > >>>>>> proprietary > >>>>>> JDK6. > >>>>>> > >>>>>> Pavel > >>>>>> > >>>>>> > >>>>> Yes, but IcedTea6/OpenJDK6 has to meet the Java 6 > >>>>> specification. > >>>>> IcedTea7/OpenJDK7 obviously don't. Do you have a link to the > >>>>> original > >>>>> changeset? > >>>> Hi Andrew, > >>>> > >>>> here's bug with description: > >>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6469266 > >>>> > >>>> and here the original changeset: > >>>> http://hg.openjdk.java.net/jdk7/jsn/jdk/rev/74fc78477907 > >>>> > >>> > >>> Ok the problem with this remains, as noted before, that the > >>> granularity > >>> of this patch is not sufficient. This bug& changeset aren't in > >>> reference > >>> to the issue you've found, but constitute updates for an entire > >>> API. > >> > >> Well, so let's forget the issue for a moment. Is there any problem > >> in > >> updating > >> *internal* library which does not change the official Java SE API? > >> > >> The original changeset is named "Integrate Apache XMLSec 1.4.2 > >> into > >> JDK 7", but > >> I see no reason why not to backport it to IT6. Moreover when we > >> know > >> it fixes > >> at least one issue. > >> > > > > That's the same issue I'm talking about. Unless the proprietary > > JDK6 is > > known to have also upgraded to 1.4.2, we shouldn't do this. > I'm afraid that this will be necessary to be kept as inside-rpm patch > then :( > That doesn't mean you should do it in an RPM either. > J. > > > >>> > >>> You need to find the actual bug fix and import that. I suggest > >>> looking at > >>> whatever project this was imported from. > >> project? It's a whole library included in JDK: > >> http://santuario.apache.org/ > >> > >>> > >>>> Pavel > >>>> > >>> > >> > >> > > > > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Mon Mar 19 05:34:05 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Mon, 19 Mar 2012 08:34:05 -0400 (EDT) Subject: [PATCH 0 of 5] Some jstack fixes and improvements In-Reply-To: <20120316125145.GC2768@toonder.wildebeest.org> Message-ID: <1d9a8440-6613-4dab-9deb-61696120e050@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On Fri, Mar 16, 2012 at 01:22:28PM +0100, Mark Wielaard wrote: > > On Wed, Mar 14, 2012 at 11:06:59AM +0100, Mark Wielaard wrote: > > > These are for IcedTea6. Next up is making sure everything works > > > also > > > against IcedTea7. > > > > Same apply to icedtea7. But there is one additional patch needed to > > accomodate for a hotspot change. S6990754: Use native memory and > > reference counting to implement SymbolTable. That changes the class > > symbolOopDescs to class Symbol. Also update the offset used to > > calculate > > methodOopDesc and sigOopDesc. > > Forgot to attach the actual extra patch needed on icedtea7. > Attached now. > > > Next on the list is adding Jon's tests so we catch these kind of > > changes > > early and often. > > > > Cheers, > > > > Mark > I take it you're working against http://icedtea.classpath.org/hg/icedtea7 rather than the forest directly? I noticed a number of DTrace changes in the recent u4 changes over the weekend, when trying to bring IcedTea7 in sync with the forest again. The DTrace parts of the code have been altered to support Mac OS X as well as Solaris. It means that systemtap.patch has to change quite a bit, so it would be appreciated if you could check over the changes once pushed. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From mjw at redhat.com Mon Mar 19 05:37:19 2012 From: mjw at redhat.com (Mark Wielaard) Date: Mon, 19 Mar 2012 13:37:19 +0100 Subject: [PATCH 0 of 5] Some jstack fixes and improvements In-Reply-To: <1d9a8440-6613-4dab-9deb-61696120e050@zmail17.collab.prod.int.phx2.redhat.com> References: <20120316125145.GC2768@toonder.wildebeest.org> <1d9a8440-6613-4dab-9deb-61696120e050@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <20120319123718.GC2488@toonder.wildebeest.org> On Mon, Mar 19, 2012 at 08:34:05AM -0400, Andrew Hughes wrote: > ----- Original Message ----- > > On Fri, Mar 16, 2012 at 01:22:28PM +0100, Mark Wielaard wrote: > > > On Wed, Mar 14, 2012 at 11:06:59AM +0100, Mark Wielaard wrote: > > > > These are for IcedTea6. Next up is making sure everything works > > > > also against IcedTea7. > > > > > > Same apply to icedtea7. But there is one additional patch needed to > > > accomodate for a hotspot change. S6990754: Use native memory and > > > reference counting to implement SymbolTable. That changes the class > > > symbolOopDescs to class Symbol. Also update the offset used to > > > calculate > > > methodOopDesc and sigOopDesc. > > > > Forgot to attach the actual extra patch needed on icedtea7. > > Attached now. > > I take it you're working against http://icedtea.classpath.org/hg/icedtea7 > rather than the forest directly? Yes, just holding on the patch till all of the ARM changes have landed in 7. > I noticed a number of DTrace changes in the recent u4 changes over the weekend, > when trying to bring IcedTea7 in sync with the forest again. The DTrace parts > of the code have been altered to support Mac OS X as well as Solaris. It means that > systemtap.patch has to change quite a bit, so it would be appreciated if you > could check over the changes once pushed. Thanks, I hadn't noticed yet. Cheers, Mark From ptisnovs at icedtea.classpath.org Mon Mar 19 06:49:10 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 19 Mar 2012 13:49:10 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/ClippingCircleByConca... Message-ID: changeset 792acfb21a4f in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=792acfb21a4f author: Pavel Tisnovsky date: Mon Mar 19 14:51:46 2012 +0100 * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: Added new tests to this test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java | 374 ++++++++++ 2 files changed, 379 insertions(+), 0 deletions(-) diffs (396 lines): diff -r 611fd4d84e06 -r 792acfb21a4f ChangeLog --- a/ChangeLog Thu Mar 15 09:59:13 2012 +0100 +++ b/ChangeLog Mon Mar 19 14:51:46 2012 +0100 @@ -1,3 +1,8 @@ +2012-03-19 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: + Added new tests to this test suite. + 2012-03-15 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java: diff -r 611fd4d84e06 -r 792acfb21a4f src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Thu Mar 15 09:59:13 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Mon Mar 19 14:51:46 2012 +0100 @@ -574,6 +574,380 @@ } /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using horizontal gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeHorizontalGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set horizontal gradient paint + CommonRenderingStyles.setHorizontalGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using vertical gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeVerticalGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set vertical gradient paint + CommonRenderingStyles.setVerticalGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using diagonal gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set diagonal gradient paint + CommonRenderingStyles.setDiagonalGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using radial gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRadialGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set radial gradient paint + CommonRenderingStyles.setRadialGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeCheckerTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingCheckerTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalCheckerTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingDiagonalCheckerTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeGridTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingGridTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalGridTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingDiagonalGridTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeColorDotsTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingColorDotsTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeHorizontalStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingHorizontalStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeVerticalStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingVerticalStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingDiagonalStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeHorizontalColorStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingHorizontalColorStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeVerticalColorStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingVerticalColorStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRGB1TexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRGB2TexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingRGBTexture2(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRGB3TexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingRGBTexture3(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args From ptisnovs at redhat.com Mon Mar 19 07:34:01 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 19 Mar 2012 15:34:01 +0100 Subject: Applet's in browser, slow loading, remote and (in some bright future) graphical testing and some minor improvements (was Re: Icedtea-web splashscreen implementation) In-Reply-To: <4F62FA78.4040506@redhat.com> References: <4F50BE87.5070508@redhat.com> <4F5DD9D7.7030905@redhat.com> <4F5DEC6A.8040802@redhat.com> <4F5DF4F6.905@redhat.com> <4F5E0ACA.8010503@redhat.com> <4F62FA78.4040506@redhat.com> Message-ID: <4F6743D9.8050702@redhat.com> Jiri Vanek wrote: > Hi Pavel > > All your issues have been fixed in this version. of patch, except few > which we have been talking in office, and except remote testing which is > definitely for different patch and I consider it as suspended until the > need arise. Hi Jiri, these changes look good - approved. Thanks, Pavel > Just to summary our talk: > Browsers will be handled by annotations (thanx for forcing me to > investigate this way , are working great! ;) > XslowX will remain name-convention till now > the proof of concept of appelts testing is still included, and I'm > forking 100% on anotated version (As investigated on wed+thu). It will > change mostly transparently to current version (to keep it simple for > final tests writing) > Still o luck with awt-robot, possibility of new framework (extending > current one) to lunching complex applications (including robot, and > remote serer) considered. > > Ok for head now? > > Thanx for review! > J. > > > 2012-03-16 Jiri Vanek > * > tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: > as javaws have now integrated splash, I have changed this test to lunch > javaws -Xclearcache with -headless to skip this logo (although it is not > fatal fr testrun itself) > * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: > this html file is lunched during tests run in browser and stdout of > lunched applet is examined. Is lunched with slow resources to test > spalshscreen > * tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html: > this test html file is dedicated to manual lunch and let user to look > how the applet (with slow loading) is loaded and how looks splashscreen > in small mode and in large mode > * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: > test is enriched for lunching the html file with applet in browser and > is examining output of this file. Browser must be always terminated as > there is no way hoe to close from inside > * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png : > image to let user observe that user-defined splashscreen is still > working even when internal splashscreen is enabled > * > tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: > this and all jnlp files below are just for manual lunching and for > watching various lunches of splash screen - slow loading of resources > and with custom splash > * > tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp: > slow loading of resource and (XslowX)jnlp also > * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp: > slow loading of resource > * > tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp: > slow loading of resource with broken user's splash (our internal will be > used) > * > tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp: > slow loading of custom splash screen and resource > * > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: Main > server launcher was modified to support lunching of browser, stdout > listteners and for slowing download of resources to provide time for > watching splash screen > (main) was rewritten to provide free port OR run server in-D > specified directory on custom or default port - very useful for debuging > reproducers > (getIndependentInstance) can now run also on specified port and > (or) directory > (USED_BROWSER_COMMAND) new constant handling value of -D property > to set browser = "used.browser.command"; > (getBrowserLocation) new method to provide specified (by > used.browser.command -D property) or default browser location (firefox) > (ensureServer) test is testing weather XslowXmodifier is working > (executeBrowser) set of overloaded functions to lunch browser > (TinyHttpdImpl) was enriched for XslowX modifier. When resource > starts with this, is returned slowly - splited to 10 parts with 1s delay > betwen sending each of them. Although it is throwing BrokenPipe > exception, is working fine. > (splitArray) new function to split array of byte to n arrays of > bytes, which when concated do the same array > (splitArrayTestN) set of tests for splitArray > (ContentReader) now can also have lsteners for catching outputs n > runtime. > * > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java: > Listener for catching chars and lines form processes outputs > * > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: > added (testListeners) to test listeners behaviour > On 03/12/2012 03:40 PM, Jiri Vanek wrote: >> On 03/12/2012 02:07 PM, Pavel Tisnovsky wrote: >>> Jiri Vanek wrote: >>>> On 03/12/2012 12:11 PM, Pavel Tisnovsky wrote: >>>>> Hi Jiri, >>>>> >>>>> I'd like to comment the last patch with new test framework >>>>> functionality: >>>>> >>>>> 1) the idea of adding some delay to see/test splashscreen is great, >>>>> but is not >>>>> it better to add some annotation to such tests instead of using >>>>> "magic" test name? >>>>> Similar functionality is used in JTreg tests (not "true" >>>>> annotations, but similar approach). >>>>> I'm sure we'll need to add more per-test parameters in the future. >>>> >>>> hmhm interesting idea, but I need to specify this inside JNLP file or >>>> inside applet tag in html file. And I wanted to lunch it outside the >>>> engine.... Have you any clue how to do this with annotation? >>> >>> Yes, you can AFAIK use "property" tag in JNLP file. It contains "name" >>> and "value" and this pair should be available through >>> System.getProperty() >>> (there probably exist tests which check this functionality :-) >>> >>> So we could prepare a list of some properties used by the test >>> machinery. >> >> ugh ugh... Can you say little bit more about this idea? And applets? >> And usage inside/outside/itself engine? >>> >>>>> >>>>> 2) some notes to the patch: >>>>> >>>> Indentation - Damn this:-/ I was doublechecking this across all the >>>> files :-/ >>>>> tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: >>>>> - seems there's a bad indentation for the last 11 lines >>>> ..not found...?? >>>>> tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java >>>>> - bad indentation in a method getIndependentInstance() >>>> fixed >>>>> - -//- for executeJavawsHeadless >>>> fixed >>>>> - -//- executeJavaws, executeBrowser >>>> fixed >>>> >>>> >>>> And concept of executeBrowser and listeners at all? >>>> Is it worthy to continue this way? What about "firefox" issue? >>>> And posted testcases? Especially the applet in browser one? And change >>>> in main method? And issue with link? >>> >>> Well it's focused to test Firefox only at this moment, but I think >>> that we can start with your solution and then update it to support >>> Chrome >>> etc. etc. (it should be easy IMHO). >> >> True. I will add function which will return iterator for all possible >> browsers. So each test will be possible to run in all set browsers. >> >>> >>>> >>>> The issue with link and with browser is quit fundamental and I'm not >>>> sure how to continue with it. There is -Dvariable for setting up >>>> bowser, >>>> but it do not solve anything at all :( And the link issue is even more >>>> tricky with various (means supported x the testing one) browsers. Or >>>> should ve be happy with firefox? Or should this test to be >>>> multi-browsers? (== during each run, each html test wil be lunched in >>>> all possibel browser [I do not believe this is worthy, but recent >>>> regression on chromium shows differently]) >>> >>> But why not? After all the number of browsers supported is still >>> quite small (er Opera er ;-) >> As told above... Will be done. So we have Firefox and Chromium >> supported? Waht about chrome? opera? safari? >> >> Still I don't know how to handle link for firefox, and have absolutly >> no clue about other browser.... This is becoming quite funny :) >>> >>>> >>>> Although I have posted this in-browser tests as proof-of concept, there >>>> is already need for applets tests so I'm for to push it in, because >>>> abstraction, as it is written, is quite enough and improvements can be >>>> done in "runtime". >>> >>> I agree. >> Is there something more then javadoc, browser iterator, and tuned >> byte[] split You want me to do before next review round? >>> >>>> >>>>> - -//- splitArray (it needs JavaDoc >>>> definitely. Sorry for forgot it. >>>> too, contains double ";;" on one line etc.) >>>> damn. YY - fixed >>>>> I think it could be simplified to use one loop only and two index >>>>> variables >>>>> (we can talk about this personally) >>>> Can it? Make your shot! O:) Btw - I have *one* loop, tehn second O:) >>>> for copyying of aray (As I'm not friend of copyarray method :( ) and >>>> *one* index, but yes, the header of method is not nice. But it was >>>> still >>>> fighting with me:-/ Make your shot! >>> will send :-) >>>> >>>>> - I'm probably wrong but is seems that all applet/jnlp tests are using >>>>> only "localhost" network interface. >>>>> If it is true I'm afraid we miss some iptables-related or IPv6 related >>>>> issues. >>>> Hmhm.. very interesting topic (== you are not wrong), but it should be >>>> raised when the test-engine was done (bud good that wasnt O!o) ) >>>> On the other side, the testing framework on client itself can handle >>>> this. The problem is to have some server running. To have it integrated >>>> inside current makefile can be quit tricky, and I'm strongly against. >>>> Currently I'm against to add this feature at all, because there is no >>>> known issue with this and local host seem to be enough. >>>> In case this issue will rise with higher priority, then my suggestion >>>> will be: >>>> 1) to have some remote server running and working - absolutely out of >>>> icetea-web makefile's control >>>> 2) set eg --with-remote-server=my.server.org:xyz/something the remote >>>> server configurated for coopeartion >>>> 3) makefile will sed urls in (selected?) jnlps/htmls and, and will pass >>>> this url to testengine so it will know where to requests jnlps and >>>> htmls >>>> 4) makefile will copy (selected?) resources to this remote server, >>>> 5) the tests run will run as usual, because stdout/err/gui examination >>>> will behave in same way as in localhost. >>>> >>>> Acctually I do not see some big issue with this approach at all, and in >>>> case it will become handy it can be implemented. >>>> The only change in current implementation will be passing list of tests >>>> which should run remotly. In testengine run I can imageine some >>>> extension to executeJavaws(..) method Eg executeRemoteJavaws(...) - >>>> there is enough abstraction level to handle this properly. During >>>> compilation of reproducers and copying of resources it will need some >>>> list (or directory) to specify remote ones . >>>> >>>> But really - until there is some real need for this reproducers, I >>>> would >>>> rather stand without this. >>>>> >>>>> Cheers, >>>>> Pavel >>>>> >>>>> (Hint: Eclipse Ctrl+F) >>>> Yap NB have the same. But the issue is between computer and keyboard >>>> (as >>>> always with me and indentation) >>>>> >>>>> Jiri Vanek wrote: >>>> Snip >>>>> > snip >>> >> > From jvanek at redhat.com Mon Mar 19 07:40:59 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 19 Mar 2012 15:40:59 +0100 Subject: java.lang.InternalError - No RenderingEngine module found In-Reply-To: <4F63CBB6.6040604@redhat.com> References: <4F60BAFA.5060202@redhat.com> <4F60C341.7090602@redhat.com> <4F60C52C.2040500@redhat.com> <4F63CBB6.6040604@redhat.com> Message-ID: <4F67457B.9010904@redhat.com> On 03/17/2012 12:24 AM, Omair Majid wrote: > On 03/14/2012 12:19 PM, Jiri Vanek wrote: >> On 03/14/2012 05:11 PM, Omair Majid wrote: >>> On 03/14/2012 11:36 AM, Jiri Vanek wrote: >>>> It happend when trying to create jframe from test, run inside junit, >>>> run from make from commandline. >>> >>> Can you post the code that is causing the error and tell us exactly how >>> you are running it? >>> > > Sorry about the delay in getting back. > >> >> @Test >> public void frame() throws AWTException, IOException{ >> JFrame f = new JFrame(); >> f.setSize(800,600); >> f.setVisible(true); >> Assert.assertNotNull(f); >> Robot r =new Robot(); >> BufferedImage bi=r.createScreenCapture(new Rectangle(0,0,800,600)); >> Assert.assertNotNull(bi); >> ImageIO.write(bi, "png", new >> File("/home/jvanek/Desktop/xp13.png")); >> >> } >> >> >> in any testclass from jnlp testcases or unittests. >> >> Then ./autogen.sh ; ./configure >> --prefix=/home/jvanek/icedtea-web-image --disable-docs; make check; make >> install;make run-netx-dist-tests. In all cases the frame test failed on >> first line with mentioned exception. > > Thanks for the reproducer and the steps. > > Ok, I see the problem now. Implementations of RenderingEngine are stored > in rt.jar, but java uses the ServiceLoader mechanism to locate and use > an implementation of RenderingEngine. In this case, ServiceLoader looks > for META-INF/services/sun.java2d.pipe.RenderingEngine files in any jars > on the classpath to find the implementations of RenderingEngine. This > file, in icedtea (and openjdk), is stored in resources.jar which we do > not add to the classpath when building. > > The attached patch works for me. It runs the test (which fails). Wooou! Tyvm for wise advice! In case this will be needed, will it be possible to apply this patch for icedtea-web head? If no - then only for tests running? > > That said, I am a little confused. Are you trying to use junit to run > entire applications and take screenshots and do comparisons? I am not 50/50% right and wrong :) What I want to is to enable reprodcures with gui, yes. But not complex applications. For lunching comlex applications we are thinking little bit outside of junit sandbox, but it is in early stage of planing. > sure if junit is the best tool for this. Perhaps a simple java program > will suffice (unless you need the various > annoations/methods/integration-support provided by junit). Will be probably needed. We can already now launch reproducers with gui, we can also run browsers (extension to this topic is coming) we can read the stdout/err of their runs, and we can generate quite useful outputs. but we cannot examine gui and we can not affect it. Awt robot should be more then helpful. Whole concept is working very well and I think this can just enrich it. The jnlp reprodcures are working quite well (Although I found nasty bug today inside the engine:-/), In-browser tests as I have designed them last week are also working very well. Do yo think it is really bad idea to include some more capacity by adding awt.robot in some future? Bets regards and thank you very much for help with rendering device! J. > > Cheers, > Omair From omajid at redhat.com Mon Mar 19 08:17:11 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 19 Mar 2012 11:17:11 -0400 Subject: java.lang.InternalError - No RenderingEngine module found In-Reply-To: <4F67457B.9010904@redhat.com> References: <4F60BAFA.5060202@redhat.com> <4F60C341.7090602@redhat.com> <4F60C52C.2040500@redhat.com> <4F63CBB6.6040604@redhat.com> <4F67457B.9010904@redhat.com> Message-ID: <4F674DF7.2080909@redhat.com> On 03/19/2012 10:40 AM, Jiri Vanek wrote: > On 03/17/2012 12:24 AM, Omair Majid wrote: >> The attached patch works for me. It runs the test (which fails). > Wooou! Tyvm for wise advice! You are welcome :) > In case this will be needed, will it be possible to apply this patch for > icedtea-web head? If no - then only for tests running? Since I wrote the patch (and wasn't ashamed enough to not post it publicly), I am fine with it. It could use a review from others. An alternate fix might be to stop (ab)using bootcalpath instead. Perhaps -Xbootclasspath/a: might suffice. >> >> That said, I am a little confused. Are you trying to use junit to run >> entire applications and take screenshots and do comparisons? I am not > 50/50% right and wrong :) > What I want to is to enable reprodcures with gui, yes. But not complex > applications. For lunching comlex applications we are thinking little > bit outside of junit sandbox, but it is in early stage of planing. Hm.. still seems a little bit out of scope for junit but okay :) >> sure if junit is the best tool for this. Perhaps a simple java program >> will suffice (unless you need the various >> annoations/methods/integration-support provided by junit). > Will be probably needed. We can already now launch reproducers with gui, > we can also run browsers (extension to this topic is coming) we can read > the stdout/err of their runs, and we can generate quite useful outputs. > but we cannot examine gui and we can not affect it. Awt robot should be > more then helpful. > > Whole concept is working very well and I think this can just enrich it. > The jnlp reprodcures are working quite well (Although I found nasty bug > today inside the engine:-/), In-browser tests as I have designed them > last week are also working very well. Do yo think it is really bad idea > to include some more capacity by adding awt.robot in some future? No, adding just the awt support cant hurt that much. But we might want to take a step back at some point and ensure we are using the right tool for the right task. JUnit is meant for unit tests not for integration tests (our reproducers or complex applications). We are writing quite a bit of extra code to do what we want (and that code will have bugs). Is there something that can make our lives easier instead? Cheers, Omair From jvanek at icedtea.classpath.org Mon Mar 19 09:37:12 2012 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Mon, 19 Mar 2012 16:37:12 +0000 Subject: /hg/icedtea-web: added splash screen tests for upcoming splashsc... Message-ID: changeset 8c4e4cfd3540 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=8c4e4cfd3540 author: Jiri Vanek date: Mon Mar 19 17:25:09 2012 +0100 added splash screen tests for upcoming splashscreen diffstat: ChangeLog | 51 + tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java | 2 +- tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html | 44 + tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html | 52 ++ tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java | 27 +- tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp | 55 ++ tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp | 53 ++ tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp | 53 ++ tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp | 54 ++ tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp | 54 ++ tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java | 8 + tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java | 48 + tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java | 258 +++++++++- 13 files changed, 740 insertions(+), 19 deletions(-) diffs (truncated from 1045 to 500 lines): diff -r 53745f40a1ca -r 8c4e4cfd3540 ChangeLog --- a/ChangeLog Fri Mar 16 14:17:36 2012 -0400 +++ b/ChangeLog Mon Mar 19 17:25:09 2012 +0100 @@ -1,3 +1,54 @@ +2012-03-19 Jiri Vanek + * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: + as javaws have now integrated splash, I have changed this test to lunch javaws + -Xclearcache with -headless to skip this logo (although it is not fatal fr testrun itself) + * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: this html + file is lunched during tests run in browser and stdout of lunched applet is + examined. Is lunched with slow resources to test spalshscreen + * tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html: this + test html file is dedicated to manual lunch and let user to look how the applet + (with slow loading) is loaded and how looks splashscreen in small mode and in large mode + * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: test is enriched + for lunching the html file with applet in browser and is examining output of this file. + Browser must be always terminated as there is no way how to close from inside + * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png : image to let user + observe that user-defined splashscreen is still working even when internal splashscreen is enabled + * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: this and all jnlp + files below are just for manual lunching and for watching various lunches of splash + screen - slow loading of resources and with custom splash + * tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp: + slow loading of resource and (XslowX)jnlp also + * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp: + slow loading of resource + * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp: + slow loading of resource with broken user's splash (our internal will be used) + * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp: + slow loading of custom splash screen and resource + * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: + Main server launcher was modified to support lunching of browser, + stdout listteners and for slowing download of resources to provide time for watching + splash screen + (main) was rewritten to provide free port OR run server in-D specified directory on + custom or default port - very useful for debuging reproducers + (getIndependentInstance) can now run also on specified port and (or) directory + (USED_BROWSER_COMMAND) new constant handling value of -D property to + set browser = "used.browser.command"; + (getBrowserLocation) new method to provide specified + (by used.browser.command -D property) or default browser location (firefox) + (ensureServer) test is testing weather XslowXmodifier is working + (executeBrowser) set of overloaded functions to lunch browser + (TinyHttpdImpl) was enriched for XslowX modifier. When resource starts with this, + is returned slowly - splited to 10 parts with 1s delay betwen sending each of them. + Although it is throwing BrokenPipe exception, is working fine. + (splitArray) new function to split array of byte to n arrays of bytes, + which when concated do the same array + (splitArrayTestN) set of tests for splitArray + (ContentReader) now can also have lsteners for catching outputs n runtime. + * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java: + Listener for catching chars and lines form processes outputs + * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: + added (testListeners) to test listeners behaviour + 2012-03-16 Danesh Dadachanji Applications using JNLP files without a title or vendor section diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java --- a/tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java Fri Mar 16 14:17:36 2012 -0400 +++ b/tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java Mon Mar 19 17:25:09 2012 +0100 @@ -56,7 +56,7 @@ public class CacheReproducerTest { private static final ServerAccess server = new ServerAccess(); - private static final List clear = Arrays.asList(new String[]{server.getJavawsLocation(), "-Xclearcache"}); + private static final List clear = Arrays.asList(new String[]{server.getJavawsLocation(), "-Xclearcache", ServerAccess.HEADLES_OPTION}); private static final List trusted = Arrays.asList(new String[]{"-Xtrustall", ServerAccess.HEADLES_OPTION}); private static final String home = System.getProperty("user.home"); private static final String name = System.getProperty("user.name"); diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html Mon Mar 19 17:25:09 2012 +0100 @@ -0,0 +1,44 @@ + + +

+ + +

+ + diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html Mon Mar 19 17:25:09 2012 +0100 @@ -0,0 +1,52 @@ + + +ok applet + +

ok applet

+

+ +

+

ok applet

+

bad applet

+

+ +

+

bad applet

+ + diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java --- a/tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java Fri Mar 16 14:17:36 2012 -0400 +++ b/tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java Mon Mar 19 17:25:09 2012 +0100 @@ -36,6 +36,7 @@ */ import net.sourceforge.jnlp.ServerAccess; +import net.sourceforge.jnlp.ServerAccess.ProcessResult; import org.junit.Assert; import org.junit.Test; @@ -51,6 +52,12 @@ ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/AppletTest.jnlp"); System.out.println(pr.stdout); System.err.println(pr.stderr); + evaluateApplet(pr); + Assert.assertFalse(pr.wasTerminated); + Assert.assertEquals((Integer) 0, pr.returnValue); + } + + private void evaluateApplet(ProcessResult pr) { String s3 = "applet was initialised"; Assert.assertTrue("AppletTest stdout should contains " + s3 + " bud didn't", pr.stdout.contains(s3)); String s0 = "applet was started"; @@ -67,7 +74,23 @@ Assert.assertFalse("AppletTest stderr should not contains " + ss + " but did", pr.stderr.contains(ss)); String s7 = "Aplet killing himself after 2000 ms of life"; Assert.assertTrue("AppletTest stdout should contains " + s7 + " bud didn't", pr.stdout.contains(s7)); - Assert.assertFalse(pr.wasTerminated); - Assert.assertEquals((Integer) 0, pr.returnValue); + } + + @Test + public void AppletInFirefoxTest() throws Exception { + System.out.println("connecting AppletInFirefoxTest request"); + System.err.println("connecting AppletInFirefoxTest request"); + server.PROCESS_TIMEOUT = 30 * 1000; + try { + ServerAccess.ProcessResult pr = server.executeBrowser("/appletAutoTests.html"); + System.out.println(pr.stdout); + System.err.println(pr.stderr); + pr.process.destroy(); + evaluateApplet(pr); + Assert.assertTrue(pr.wasTerminated); + //Assert.assertEquals((Integer) 0, pr.returnValue); due to destroy is null + } finally { + server.PROCESS_TIMEOUT = 20 * 1000; //back to normal + } } } diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp Mon Mar 19 17:25:09 2012 +0100 @@ -0,0 +1,55 @@ + + + + + simpletest1 + NetX + + simpletest1 + + + + + + + + + + + diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp Mon Mar 19 17:25:09 2012 +0100 @@ -0,0 +1,53 @@ + + + + + simpletest1 + NetX + + simpletest1 + + + + + + + + + diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp Mon Mar 19 17:25:09 2012 +0100 @@ -0,0 +1,53 @@ + + + + + simpletest1 + NetX + + simpletest1 + + + + + + + + + diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp Mon Mar 19 17:25:09 2012 +0100 @@ -0,0 +1,54 @@ + + + + + simpletest1 + NetX + + + simpletest1 + + + + + + + + + diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp Mon Mar 19 17:25:09 2012 +0100 @@ -0,0 +1,54 @@ + + + + + simpletest1 From dbhole at redhat.com Mon Mar 19 09:50:54 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 19 Mar 2012 12:50:54 -0400 Subject: /hg/icedtea-web: added splash screen tests for upcoming splashsc... In-Reply-To: References: Message-ID: <20120319165054.GG6489@redhat.com> * jvanek at icedtea.classpath.org [2012-03-19 12:47]: > changeset 8c4e4cfd3540 in /hg/icedtea-web > details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=8c4e4cfd3540 > author: Jiri Vanek > date: Mon Mar 19 17:25:09 2012 +0100 > > added splash screen tests for upcoming splashscreen > > > diffstat: > > ChangeLog | 51 + > tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java | 2 +- > tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html | 44 + > tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html | 52 ++ > tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java | 27 +- > tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp | 55 ++ > tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp | 53 ++ > tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp | 53 ++ > tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp | 54 ++ > tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp | 54 ++ > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java | 8 + > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java | 48 + > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java | 258 +++++++++- > 13 files changed, 740 insertions(+), 19 deletions(-) > > diffs (truncated from 1045 to 500 lines): > > diff -r 53745f40a1ca -r 8c4e4cfd3540 ChangeLog > --- a/ChangeLog Fri Mar 16 14:17:36 2012 -0400 > +++ b/ChangeLog Mon Mar 19 17:25:09 2012 +0100 > @@ -1,3 +1,54 @@ > +2012-03-19 Jiri Vanek > + * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: > + as javaws have now integrated splash, I have changed this test to lunch javaws > + -Xclearcache with -headless to skip this logo (although it is not fatal fr testrun itself) > + * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: this html > + file is lunched during tests run in browser and stdout of lunched applet is > + examined. Is lunched with slow resources to test spalshscreen > + * tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html: this > + test html file is dedicated to manual lunch and let user to look how the applet > + (with slow loading) is loaded and how looks splashscreen in small mode and in large mode > + * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: test is enriched > + for lunching the html file with applet in browser and is examining output of this file. > + Browser must be always terminated as there is no way how to close from inside > + * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png : image to let user > + observe that user-defined splashscreen is still working even when internal splashscreen is enabled > + * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: this and all jnlp > + files below are just for manual lunching and for watching various lunches of splash > + screen - slow loading of resources and with custom splash > + * tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp: > + slow loading of resource and (XslowX)jnlp also > + * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp: > + slow loading of resource > + * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp: > + slow loading of resource with broken user's splash (our internal will be used) > + * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp: > + slow loading of custom splash screen and resource > + * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: > + Main server launcher was modified to support lunching of browser, > + stdout listteners and for slowing download of resources to provide time for watching > + splash screen > + (main) was rewritten to provide free port OR run server in-D specified directory on > + custom or default port - very useful for debuging reproducers > + (getIndependentInstance) can now run also on specified port and (or) directory > + (USED_BROWSER_COMMAND) new constant handling value of -D property to > + set browser = "used.browser.command"; > + (getBrowserLocation) new method to provide specified > + (by used.browser.command -D property) or default browser location (firefox) > + (ensureServer) test is testing weather XslowXmodifier is working > + (executeBrowser) set of overloaded functions to lunch browser > + (TinyHttpdImpl) was enriched for XslowX modifier. When resource starts with this, > + is returned slowly - splited to 10 parts with 1s delay betwen sending each of them. > + Although it is throwing BrokenPipe exception, is working fine. > + (splitArray) new function to split array of byte to n arrays of bytes, > + which when concated do the same array > + (splitArrayTestN) set of tests for splitArray > + (ContentReader) now can also have lsteners for catching outputs n runtime. > + * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java: > + Listener for catching chars and lines form processes outputs > + * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: > + added (testListeners) to test listeners behaviour > + Please fix the above for wrapping. We wrap all lines to <= 80 in the ChangeLog except when a file name is > 80. Thanks, Deepak > 2012-03-16 Danesh Dadachanji > > Applications using JNLP files without a title or vendor section > diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java > --- a/tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java Fri Mar 16 14:17:36 2012 -0400 > +++ b/tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java Mon Mar 19 17:25:09 2012 +0100 > @@ -56,7 +56,7 @@ > public class CacheReproducerTest { > > private static final ServerAccess server = new ServerAccess(); > - private static final List clear = Arrays.asList(new String[]{server.getJavawsLocation(), "-Xclearcache"}); > + private static final List clear = Arrays.asList(new String[]{server.getJavawsLocation(), "-Xclearcache", ServerAccess.HEADLES_OPTION}); > private static final List trusted = Arrays.asList(new String[]{"-Xtrustall", ServerAccess.HEADLES_OPTION}); > private static final String home = System.getProperty("user.home"); > private static final String name = System.getProperty("user.name"); > diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html Mon Mar 19 17:25:09 2012 +0100 > @@ -0,0 +1,44 @@ > + > + > +

> + > + > +

> + > + > diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html Mon Mar 19 17:25:09 2012 +0100 > @@ -0,0 +1,52 @@ > + > + > +ok applet > + > +

ok applet

> +

> + > +

> +

ok applet

> +

bad applet

> +

> + > +

> +

bad applet

> + > + > diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java > --- a/tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java Fri Mar 16 14:17:36 2012 -0400 > +++ b/tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java Mon Mar 19 17:25:09 2012 +0100 > @@ -36,6 +36,7 @@ > */ > > import net.sourceforge.jnlp.ServerAccess; > +import net.sourceforge.jnlp.ServerAccess.ProcessResult; > import org.junit.Assert; > > import org.junit.Test; > @@ -51,6 +52,12 @@ > ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/AppletTest.jnlp"); > System.out.println(pr.stdout); > System.err.println(pr.stderr); > + evaluateApplet(pr); > + Assert.assertFalse(pr.wasTerminated); > + Assert.assertEquals((Integer) 0, pr.returnValue); > + } > + > + private void evaluateApplet(ProcessResult pr) { > String s3 = "applet was initialised"; > Assert.assertTrue("AppletTest stdout should contains " + s3 + " bud didn't", pr.stdout.contains(s3)); > String s0 = "applet was started"; > @@ -67,7 +74,23 @@ > Assert.assertFalse("AppletTest stderr should not contains " + ss + " but did", pr.stderr.contains(ss)); > String s7 = "Aplet killing himself after 2000 ms of life"; > Assert.assertTrue("AppletTest stdout should contains " + s7 + " bud didn't", pr.stdout.contains(s7)); > - Assert.assertFalse(pr.wasTerminated); > - Assert.assertEquals((Integer) 0, pr.returnValue); > + } > + > + @Test > + public void AppletInFirefoxTest() throws Exception { > + System.out.println("connecting AppletInFirefoxTest request"); > + System.err.println("connecting AppletInFirefoxTest request"); > + server.PROCESS_TIMEOUT = 30 * 1000; > + try { > + ServerAccess.ProcessResult pr = server.executeBrowser("/appletAutoTests.html"); > + System.out.println(pr.stdout); > + System.err.println(pr.stderr); > + pr.process.destroy(); > + evaluateApplet(pr); > + Assert.assertTrue(pr.wasTerminated); > + //Assert.assertEquals((Integer) 0, pr.returnValue); due to destroy is null > + } finally { > + server.PROCESS_TIMEOUT = 20 * 1000; //back to normal > + } > } > } > diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp Mon Mar 19 17:25:09 2012 +0100 > @@ -0,0 +1,55 @@ > + > + > + > + > + simpletest1 > + NetX > + > + simpletest1 > + > + > + > + > + > + > + > + > + > + > + > diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp Mon Mar 19 17:25:09 2012 +0100 > @@ -0,0 +1,53 @@ > + > + > + > + > + simpletest1 > + NetX > + > + simpletest1 > + > + > + > + > + > + > + > + > + > diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp Mon Mar 19 17:25:09 2012 +0100 > @@ -0,0 +1,53 @@ > + > + > + > + > + simpletest1 > + NetX > + > + simpletest1 > + > + > + > + > + > + > + > + > + > diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp Mon Mar 19 17:25:09 2012 +0100 > @@ -0,0 +1,54 @@ > + > + > + > + > + simpletest1 > + NetX > + > + > + simpletest1 > + > + > + > + > + > + > + > + > + > diff -r 53745f40a1ca -r 8c4e4cfd3540 tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp Mon Mar 19 17:25:09 2012 +0100 > @@ -0,0 +1,54 @@ > + > + > + > + > + simpletest1 From omajid at redhat.com Mon Mar 19 09:56:47 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 19 Mar 2012 12:56:47 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F66D451.9000802@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> <4F6091CE.7010707@redhat.com> <4F60FAD4.1030601@redhat.com> <4F63CE48.4060104@redhat.com> <4F66D451.9000802@redhat.com> Message-ID: <4F67654F.30203@redhat.com> On 03/19/2012 02:38 AM, Jiri Vanek wrote: > On 03/17/2012 12:35 AM, Omair Majid wrote: >> On 03/14/2012 04:08 PM, Danesh Dadachanji wrote: >>> + * netx/net/sourceforge/jnlp/Parser.java: >>> + (getInformationDesc): If title or vendor are not found in info, >>> + a new ParseException is thrown. >> >> There is something wrong here. Many unit tests contain snippets of jnlp >> files that do not contain title or vendor tags. Those unit tests are >> (mostly) still passing (by this, I mean a simple parse operation on them >> succeeds). I see about 1 new failure where I was expecting tons. > > As far as I know Danesh have fixed all the information elements across > testcases. I was referring to junit tests (located at tests/netx/unit). Danesh and I talked about it on irc today. It looks like the Parser class is lazy and only parses parts of the xml when specific methods are called. So if you dont call the getInfo() method of the Parser, it will not check that the information element is valid. Most of the unit tests are not calling these methods explicitly so they are not checking for the validity. This is not a problem for jnlp parsing (using JNLPFile) because JNLPFile invokes all these lazy methods of the Parser (essentially) in its constructor. >> >> Did I mention I prefer unit tests rather than integration tests for >> checking corner cases? :) > > Yap. This give sense. The fault of directing this to reproducers run to > my head :( No worries. It's nice to have test cases one way or another :) Cheers, Omair From jvanek at icedtea.classpath.org Mon Mar 19 10:45:32 2012 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Mon, 19 Mar 2012 17:45:32 +0000 Subject: /hg/icedtea-web: Fixed chanagelog to fit 80chars column Message-ID: changeset ebdc0743399b in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=ebdc0743399b author: Jiri Vanek date: Mon Mar 19 18:46:05 2012 +0100 Fixed chanagelog to fit 80chars column diffstat: ChangeLog | 55 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 31 insertions(+), 24 deletions(-) diffs (79 lines): diff -r 8c4e4cfd3540 -r ebdc0743399b ChangeLog --- a/ChangeLog Mon Mar 19 17:25:09 2012 +0100 +++ b/ChangeLog Mon Mar 19 18:46:05 2012 +0100 @@ -1,35 +1,41 @@ 2012-03-19 Jiri Vanek * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: - as javaws have now integrated splash, I have changed this test to lunch javaws - -Xclearcache with -headless to skip this logo (although it is not fatal fr testrun itself) - * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: this html - file is lunched during tests run in browser and stdout of lunched applet is - examined. Is lunched with slow resources to test spalshscreen + as javaws have now integrated splash, I have changed this test to lunch + javaws -Xclearcache with -headless to skip this logo (although it is + not fatal fr testrun itself) + * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: + this html file is lunched during tests run in browser and stdout of + lunched applet is examined. Is lunched with slow resources to test + spalshscreen * tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html: this - test html file is dedicated to manual lunch and let user to look how the applet - (with slow loading) is loaded and how looks splashscreen in small mode and in large mode - * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: test is enriched - for lunching the html file with applet in browser and is examining output of this file. - Browser must be always terminated as there is no way how to close from inside - * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png : image to let user - observe that user-defined splashscreen is still working even when internal splashscreen is enabled - * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: this and all jnlp - files below are just for manual lunching and for watching various lunches of splash - screen - slow loading of resources and with custom splash + test html file is dedicated to manual lunch and let user to look how the + applet (with slow loading) is loaded and how looks splashscreen in + small mode and in large mode + * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: + test is enriched for lunching the html file with applet in browser and + is examining output of this file. Browser must be always terminated as + there is no way how to close from inside + * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png: + image to let user observe that user-defined splashscreen is still + working even when internal splashscreen is enabled + * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: + this and all jnlp files below are just for manual lunching and for + watching various lunches of splash screen - slow loading of resources + and with custom splash * tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp: slow loading of resource and (XslowX)jnlp also * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp: slow loading of resource * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp: - slow loading of resource with broken user's splash (our internal will be used) + slow loading of resource with broken user's splash (our internal will be used) * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp: - slow loading of custom splash screen and resource + slow loading of custom splash screen and resource * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: - Main server launcher was modified to support lunching of browser, - stdout listteners and for slowing download of resources to provide time for watching - splash screen - (main) was rewritten to provide free port OR run server in-D specified directory on - custom or default port - very useful for debuging reproducers + Main server launcher was modified to support lunching of browser, + stdout listteners and for slowing download of resources to provide time + for watching splash screen (main) was rewritten to provide free port OR + run server in-D specified directory on custom or default port - very + useful for debuging reproducers (getIndependentInstance) can now run also on specified port and (or) directory (USED_BROWSER_COMMAND) new constant handling value of -D property to set browser = "used.browser.command"; @@ -37,8 +43,9 @@ (by used.browser.command -D property) or default browser location (firefox) (ensureServer) test is testing weather XslowXmodifier is working (executeBrowser) set of overloaded functions to lunch browser - (TinyHttpdImpl) was enriched for XslowX modifier. When resource starts with this, - is returned slowly - splited to 10 parts with 1s delay betwen sending each of them. + (TinyHttpdImpl) was enriched for XslowX modifier. When resource starts + with this, is returned slowly - splited to 10 parts with 1s delay + betwen sending each of them. Although it is throwing BrokenPipe exception, is working fine. (splitArray) new function to split array of byte to n arrays of bytes, which when concated do the same array From ddadacha at redhat.com Mon Mar 19 11:31:53 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 19 Mar 2012 14:31:53 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F63CE48.4060104@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> <4F6091CE.7010707@redhat.com> <4F60FAD4.1030601@redhat.com> <4F63CE48.4060104@redhat.com> Message-ID: <4F677B99.9080707@redhat.com> On 16/03/12 07:35 PM, Omair Majid wrote: > On 03/14/2012 04:08 PM, Danesh Dadachanji wrote: >> + * netx/net/sourceforge/jnlp/Parser.java: >> + (getInformationDesc): If title or vendor are not found in info, >> + a new ParseException is thrown. > > There is something wrong here. Many unit tests contain snippets of jnlp > files that do not contain title or vendor tags. Those unit tests are > (mostly) still passing (by this, I mean a simple parse operation on them > succeeds). I see about 1 new failure where I was expecting tons. Thanks for the catch! Based on our conclusions on IRC, I'm only updating the one test that fails because of the changeset. Since every other unit test is using Parser directly, of which none call getInfo() or getInformationDesc() (both directly and indirectly), I think it's safe to let the other tests be. This will need to be changed if we ever muck around with Parser to enforce the JNLP rules. > Did I mention I prefer unit tests rather than integration tests for > checking corner cases? :) They definitely do beat the heck out of reproducers time-wise. ChangeLog: +2012-03-19 Danesh Dadachanji + + Fix failing unit test missing title/vendor tags in the JNLP stream. + * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java + (testNestedComments): Added title and vendor tags to malformedJnlp. + Cheers, Danesh -------------- next part -------------- A non-text attachment was scrubbed... Name: title-vendor-required-unit-test-update-01.patch Type: text/x-patch Size: 824 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120319/acd47b7a/title-vendor-required-unit-test-update-01.patch From omajid at redhat.com Mon Mar 19 11:34:28 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 19 Mar 2012 14:34:28 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F677B99.9080707@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> <4F6091CE.7010707@redhat.com> <4F60FAD4.1030601@redhat.com> <4F63CE48.4060104@redhat.com> <4F677B99.9080707@redhat.com> Message-ID: <4F677C34.8040100@redhat.com> On 03/19/2012 02:31 PM, Danesh Dadachanji wrote: > On 16/03/12 07:35 PM, Omair Majid wrote: >> On 03/14/2012 04:08 PM, Danesh Dadachanji wrote: >>> + * netx/net/sourceforge/jnlp/Parser.java: >>> + (getInformationDesc): If title or vendor are not found in info, >>> + a new ParseException is thrown. >> >> There is something wrong here. Many unit tests contain snippets of jnlp >> files that do not contain title or vendor tags. Those unit tests are >> (mostly) still passing (by this, I mean a simple parse operation on them >> succeeds). I see about 1 new failure where I was expecting tons. > > Thanks for the catch! > > Based on our conclusions on IRC, I'm only updating the one test that > fails because of the changeset. Since every other unit test is using > Parser directly, of which none call getInfo() or getInformationDesc() > (both directly and indirectly), I think it's safe to let the other tests > be. This will need to be changed if we ever muck around with Parser to > enforce the JNLP rules. > >> Did I mention I prefer unit tests rather than integration tests for >> checking corner cases? :) > > They definitely do beat the heck out of reproducers time-wise. > :) > ChangeLog: > +2012-03-19 Danesh Dadachanji > + > + Fix failing unit test missing title/vendor tags in the JNLP stream. > + * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java > + (testNestedComments): Added title and vendor tags to malformedJnlp. > + > Looks good to me. Cheers, Omair From ddadacha at icedtea.classpath.org Mon Mar 19 11:37:27 2012 From: ddadacha at icedtea.classpath.org (ddadacha at icedtea.classpath.org) Date: Mon, 19 Mar 2012 18:37:27 +0000 Subject: /hg/icedtea-web: Fix unit test missing title and vendor tags in ... Message-ID: changeset 89609d0a4e1c in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=89609d0a4e1c author: Danesh Dadachanji date: Mon Mar 19 14:37:03 2012 -0400 Fix unit test missing title and vendor tags in JNLP stream. diffstat: ChangeLog | 6 ++++++ tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java | 3 ++- 2 files changed, 8 insertions(+), 1 deletions(-) diffs (26 lines): diff -r ebdc0743399b -r 89609d0a4e1c ChangeLog --- a/ChangeLog Mon Mar 19 18:46:05 2012 +0100 +++ b/ChangeLog Mon Mar 19 14:37:03 2012 -0400 @@ -1,3 +1,9 @@ +2012-03-19 Danesh Dadachanji + + Fix failing unit test missing title/vendor tags in the JNLP stream. + * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java + (testNestedComments): Added title and vendor tags to malformedJnlp. + 2012-03-19 Jiri Vanek * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: as javaws have now integrated splash, I have changed this test to lunch diff -r ebdc0743399b -r 89609d0a4e1c tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java --- a/tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java Mon Mar 19 18:46:05 2012 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java Mon Mar 19 14:37:03 2012 -0400 @@ -163,7 +163,8 @@ @Test public void testNestedComments() throws ParseException { String malformedJnlp = "" + - "" + + "testNestedComments" + + "IcedTea" + " -->" + ""; Node root = Parser.getRootNode(new ByteArrayInputStream(malformedJnlp.getBytes())); From ddadacha at redhat.com Mon Mar 19 11:38:43 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 19 Mar 2012 14:38:43 -0400 Subject: [RFC][icedtea-web] Plugin doesn't halt when required elements from JNLP files are missing. In-Reply-To: <4F677C34.8040100@redhat.com> References: <4F0724DE.5000508@redhat.com> <4F07314B.1050300@redhat.com> <4F0746C7.10801@redhat.com> <4F0DB959.6030709@redhat.com> <4F0DE089.6090101@redhat.com> <4F5A68C3.3030409@redhat.com> <4F5DC162.5010508@redhat.com> <4F5DD4F5.70908@redhat.com> <4F5DD7CB.6030108@redhat.com> <4F5DDC73.9030609@redhat.com> <4F5DDD64.5030005@redhat.com> <4F5E229D.4010607@redhat.com> <4F5F7A16.6030402@redhat.com> <4F6091CE.7010707@redhat.com> <4F60FAD4.1030601@redhat.com> <4F63CE48.4060104@redhat.com> <4F677B99.9080707@redhat.com> <4F677C34.8040100@redhat.com> Message-ID: <4F677D33.1060408@redhat.com> On 19/03/12 02:34 PM, Omair Majid wrote: >> ChangeLog: >> > +2012-03-19 Danesh Dadachanji >> > + >> > + Fix failing unit test missing title/vendor tags in the JNLP stream. >> > + * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java >> > + (testNestedComments): Added title and vendor tags to malformedJnlp. >> > + >> > > Looks good to me. Thanks! Pushed here: http://icedtea.classpath.org/hg/icedtea-web/rev/89609d0a4e1c Cheers, Danesh From andrew at icedtea.classpath.org Mon Mar 19 16:34:09 2012 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 19 Mar 2012 23:34:09 +0000 Subject: /hg/icedtea: Sync with jdk tip. Message-ID: changeset e909b2c85913 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=e909b2c85913 author: Andrew John Hughes date: Mon Mar 19 23:34:01 2012 +0000 Sync with jdk tip. 2012-03-19 Andrew John Hughes * Makefile.am: (JDK_CHANGESET): Update to tip. (JDK_SHA256SUM): Likewise. diffstat: ChangeLog | 6 ++++++ Makefile.am | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diffs (34 lines): diff -r c8be9d3b6322 -r e909b2c85913 ChangeLog --- a/ChangeLog Mon Oct 10 17:48:35 2011 +0200 +++ b/ChangeLog Mon Mar 19 23:34:01 2012 +0000 @@ -1,3 +1,9 @@ +2012-03-19 Andrew John Hughes + + * Makefile.am: + (JDK_CHANGESET): Update to tip. + (JDK_SHA256SUM): Likewise. + 2011-10-10 Xerxes R??nby JamVM diff -r c8be9d3b6322 -r e909b2c85913 Makefile.am --- a/Makefile.am Mon Oct 10 17:48:35 2011 +0200 +++ b/Makefile.am Mon Mar 19 23:34:01 2012 +0000 @@ -6,7 +6,7 @@ HOTSPOT_CHANGESET = dc6631a3d175 JAXP_CHANGESET = bf4b076e4556 JAXWS_CHANGESET = 8ff499dc157f -JDK_CHANGESET = dc5df74132b6 +JDK_CHANGESET = 9a59860aaccb LANGTOOLS_CHANGESET = 8caec3672381 OPENJDK_CHANGESET = 5057eaa7e88a @@ -14,7 +14,7 @@ HOTSPOT_SHA256SUM = dd59a52bed76f01b382c0c3b44905390bd5e7a77a54b3c8f6de71001376e4b99 JAXP_SHA256SUM = 4daf673635e1a09339695ec246afbc154c5fc31715a4748a5c6d6ae7332ffdfb JAXWS_SHA256SUM = b1a54b1f295451d449683b04de8dc8b6c82014e647f1b41543798d401d011ca3 -JDK_SHA256SUM = cd06344728aff01027875757d26d5ec62b6406095af24e50fcaf72a5dbf8a10c +JDK_SHA256SUM = cca1a534ac98baf2b06b60cac6ed66960b1d432a3f14d8be02642d1de16701fd LANGTOOLS_SHA256SUM = 495b601afd6b12bee9a8ccc3e1d067bb14789d4f3c0a9d21388b1708d946e3fb OPENJDK_SHA256SUM = 6dada5c4c04640ef4b95b7ceeff20baeb69ff4cd64e2591eb64bb33c6035b5cf From andrew at icedtea.classpath.org Mon Mar 19 23:02:29 2012 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 20 Mar 2012 06:02:29 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset a89d8bca422d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a89d8bca422d author: Andrew John Hughes date: Tue Mar 20 01:51:56 2012 +0000 PR886: Provide a more general solution to PR600 to cover architectures other than just ARM. 2012-03-16 Andrew John Hughes PR600, 886: * patches/pr600-arm-jvm.cfg.patch: Removed. * Makefile.am: (extract-openjdk): Copy jvm.cfg over if building cacao. * acinclude.m4: (IT_ENABLE_CACAO): Generat jvm.cacao.cfg. * jvm.cacao.cfg.in: Copied from jvm.cfg.in. changeset 8b157b07b859 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=8b157b07b859 author: Andrew John Hughes date: Tue Mar 20 06:01:53 2012 +0000 Extend previous fix to cover JamVM on all archs. 2012-03-16 Andrew John Hughes PR600, 886: * Makefile.am: (extract-openjdk): Copy jvm.cfg over if building JamVM. * acinclude.m4: (IT_ENABLE_JAMVM): Generate jvm.jamvm.cfg. * jvm.jamvm.cfg.in: Copied from jvm.cfg.in. diffstat: ChangeLog | 19 +++++++++++++++++ Makefile.am | 9 +++++++- NEWS | 1 + acinclude.m4 | 2 + jvm.cacao.cfg.in | 44 +++++++++++++++++++++++++++++++++++++++++ jvm.jamvm.cfg.in | 44 +++++++++++++++++++++++++++++++++++++++++ patches/pr600-arm-jvm.cfg.patch | 43 ---------------------------------------- 7 files changed, 118 insertions(+), 44 deletions(-) diffs (226 lines): diff -r 0894be5f665e -r 8b157b07b859 ChangeLog --- a/ChangeLog Fri Mar 16 13:05:33 2012 -0400 +++ b/ChangeLog Tue Mar 20 06:01:53 2012 +0000 @@ -1,3 +1,22 @@ +2012-03-16 Andrew John Hughes + + PR600, 886: + * Makefile.am: + (extract-openjdk): Copy jvm.cfg over if building JamVM. + * acinclude.m4: + (IT_ENABLE_JAMVM): Generate jvm.jamvm.cfg. + * jvm.jamvm.cfg.in: Copied from jvm.cfg.in. + +2012-03-16 Andrew John Hughes + + PR600, 886: + * patches/pr600-arm-jvm.cfg.patch: Removed. + * Makefile.am: + (extract-openjdk): Copy jvm.cfg over if building cacao. + * acinclude.m4: + (IT_ENABLE_CACAO): Generate jvm.cacao.cfg. + * jvm.cacao.cfg.in: Copied from jvm.cfg.in. + 2012-03-16 Andrew Haley * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: Use unified syntax diff -r 0894be5f665e -r 8b157b07b859 Makefile.am --- a/Makefile.am Fri Mar 16 13:05:33 2012 -0400 +++ b/Makefile.am Tue Mar 20 06:01:53 2012 +0000 @@ -332,7 +332,6 @@ patches/jtreg-LastErrorString.patch \ patches/openjdk/6663040-com.sun.awt.patch \ patches/openjdk/6775317-non-AA-simple-shape-performance.patch \ - patches/pr600-arm-jvm.cfg.patch \ patches/openjdk/6887494-NPE-in-pisces.patch \ patches/openjdk/6967436-6967433-floating-pt-conversion.patch \ patches/openjdk/6976265-stroke-control.patch \ @@ -982,6 +981,14 @@ fi endif endif +if ENABLE_CACAO + mkdir -p openjdk/jdk/src/solaris/bin/$(JRE_ARCH_DIR) + cp jvm.cacao.cfg openjdk/jdk/src/solaris/bin/$(JRE_ARCH_DIR)/jvm.cfg +endif +if ENABLE_JAMVM + mkdir -p openjdk/jdk/src/solaris/bin/$(JRE_ARCH_DIR) + cp jvm.jamvm.cfg openjdk/jdk/src/solaris/bin/$(JRE_ARCH_DIR)/jvm.cfg +endif mkdir -p stamps touch stamps/extract-openjdk.stamp diff -r 0894be5f665e -r 8b157b07b859 NEWS --- a/NEWS Fri Mar 16 13:05:33 2012 -0400 +++ b/NEWS Tue Mar 20 06:01:53 2012 +0000 @@ -14,6 +14,7 @@ * Bug fixes - PR865: Patching fails with patches/ecj/jaxws-getdtdtype.patch + - PR886: 6-1.11.1 fails to build CACAO on ppc * Backports - S6706974: Add krb5 test infrastructure - S6764553: com.sun.org.apache.xml.internal.security.utils.IdResolver is not thread safe diff -r 0894be5f665e -r 8b157b07b859 acinclude.m4 --- a/acinclude.m4 Fri Mar 16 13:05:33 2012 -0400 +++ b/acinclude.m4 Tue Mar 20 06:01:53 2012 +0000 @@ -825,6 +825,7 @@ AC_MSG_RESULT(${ENABLE_JAMVM}) AM_CONDITIONAL(ENABLE_JAMVM, test x"${ENABLE_JAMVM}" = "xyes") AC_SUBST(ENABLE_JAMVM) + AC_CONFIG_FILES([jvm.jamvm.cfg]) ]) AC_DEFUN([IT_WITH_JAMVM_SRC_ZIP], @@ -863,6 +864,7 @@ AC_MSG_RESULT(${ENABLE_CACAO}) AM_CONDITIONAL(ENABLE_CACAO, test x"${ENABLE_CACAO}" = "xyes") AC_SUBST(ENABLE_CACAO) + AC_CONFIG_FILES([jvm.cacao.cfg]) ]) AC_DEFUN([IT_WITH_CACAO_HOME], diff -r 0894be5f665e -r 8b157b07b859 jvm.cacao.cfg.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jvm.cacao.cfg.in Tue Mar 20 06:01:53 2012 +0000 @@ -0,0 +1,44 @@ +# +# @(#)jvm.cfg 1.7 07/05/05 +# +# +# Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# +# +# +# List of JVMs that can be used as an option to java, javac, etc. +# Order is important -- first in this list is the default JVM. +# NOTE that this both this file and its format are UNSUPPORTED and +# WILL GO AWAY in a future release. +# +# You may also select a JVM in an arbitrary location with the +# "-XXaltjvm=" option, but that too is unsupported +# and may not be available in a future release. +# +-server KNOWN +-hotspot ERROR +-classic WARN +-client IGNORE +-native ERROR +-green ERROR diff -r 0894be5f665e -r 8b157b07b859 jvm.jamvm.cfg.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jvm.jamvm.cfg.in Tue Mar 20 06:01:53 2012 +0000 @@ -0,0 +1,44 @@ +# +# @(#)jvm.cfg 1.7 07/05/05 +# +# +# Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.com if you need additional information or +# have any questions. +# +# +# +# List of JVMs that can be used as an option to java, javac, etc. +# Order is important -- first in this list is the default JVM. +# NOTE that this both this file and its format are UNSUPPORTED and +# WILL GO AWAY in a future release. +# +# You may also select a JVM in an arbitrary location with the +# "-XXaltjvm=" option, but that too is unsupported +# and may not be available in a future release. +# +-server KNOWN +-hotspot ERROR +-classic WARN +-client IGNORE +-native ERROR +-green ERROR diff -r 0894be5f665e -r 8b157b07b859 patches/pr600-arm-jvm.cfg.patch --- a/patches/pr600-arm-jvm.cfg.patch Fri Mar 16 13:05:33 2012 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -Index: openjdk/jdk/src/solaris/bin/arm/jvm.cfg -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openjdk/jdk/src/solaris/bin/arm/jvm.cfg 2011-02-18 15:40:24.083043645 +0100 -@@ -0,0 +1,39 @@ -+# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. -+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+# -+# This code is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License version 2 only, as -+# published by the Free Software Foundation. Oracle designates this -+# particular file as subject to the "Classpath" exception as provided -+# by Oracle in the LICENSE file that accompanied this code. -+# -+# This code is distributed in the hope that it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+# version 2 for more details (a copy is included in the LICENSE file that -+# accompanied this code). -+# -+# You should have received a copy of the GNU General Public License version -+# 2 along with this work; if not, write to the Free Software Foundation, -+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+# -+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+# or visit www.oracle.com if you need additional information or have any -+# questions. -+# -+# -+# List of JVMs that can be used as an option to java, javac, etc. -+# Order is important -- first in this list is the default JVM. -+# NOTE that this both this file and its format are UNSUPPORTED and -+# WILL GO AWAY in a future release. -+# -+# You may also select a JVM in an arbitrary location with the -+# "-XXaltjvm=" option, but that too is unsupported -+# and may not be available in a future release. -+# -+-server KNOWN -+-client IGNORE -+-hotspot ERROR -+-classic WARN -+-native ERROR -+-green ERROR From ptisnovs at icedtea.classpath.org Tue Mar 20 03:41:23 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 20 Mar 2012 10:41:23 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/ClippingCircleBySelfI... Message-ID: changeset 8493e62e5065 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=8493e62e5065 author: Pavel Tisnovsky date: Tue Mar 20 11:44:02 2012 +0100 * src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java: Added new tests to this test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java | 374 ++++++++++ 2 files changed, 379 insertions(+), 0 deletions(-) diffs (396 lines): diff -r 792acfb21a4f -r 8493e62e5065 ChangeLog --- a/ChangeLog Mon Mar 19 14:51:46 2012 +0100 +++ b/ChangeLog Tue Mar 20 11:44:02 2012 +0100 @@ -1,3 +1,8 @@ +2012-03-20 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java: + Added new tests to this test suite. + 2012-03-19 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: diff -r 792acfb21a4f -r 8493e62e5065 src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java Mon Mar 19 14:51:46 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java Tue Mar 20 11:44:02 2012 +0100 @@ -574,6 +574,380 @@ } /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using horizontal gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeHorizontalGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set horizontal gradient paint + CommonRenderingStyles.setHorizontalGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using vertical gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeVerticalGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set vertical gradient paint + CommonRenderingStyles.setVerticalGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using diagonal gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set diagonal gradient paint + CommonRenderingStyles.setDiagonalGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using radial gradient paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRadialGradientPaint(TestImage image, Graphics2D graphics2d) + { + // render a polygonal which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set radial gradient paint + CommonRenderingStyles.setRadialGradientFill(image, graphics2d); + // set clip region and draw the circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeCheckerTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingCheckerTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalCheckerTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingDiagonalCheckerTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeGridTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingGridTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalGridTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingDiagonalGridTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeColorDotsTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingColorDotsTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeHorizontalStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingHorizontalStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeVerticalStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingVerticalStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeDiagonalStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingDiagonalStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeHorizontalColorStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingHorizontalColorStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeVerticalColorStripesTexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingVerticalColorStripesTexture(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRGB1TexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingRGBTexture1(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRGB2TexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingRGBTexture2(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a self intersecting polygonal shape. Circle is + * rendered using texture paint. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeRGB3TexturePaint(TestImage image, Graphics2D graphics2d) + { + // render clip polygon which is used as a base for clip shape + CommonClippingOperations.renderSelfIntersectingClipPolygon(image, graphics2d); + // set the texture + CommonRenderingStyles.setTextureFillUsingRGBTexture3(image, graphics2d); + // set clip region and render filled circle + drawFilledCircleClippedByPolygonalShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args From andrew at icedtea.classpath.org Tue Mar 20 03:43:52 2012 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 20 Mar 2012 10:43:52 +0000 Subject: /hg/icedtea6: Update list of JDK home directories checked. Message-ID: changeset af04fa17f62f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=af04fa17f62f author: Andrew John Hughes date: Tue Mar 20 10:43:41 2012 +0000 Update list of JDK home directories checked. 2012-03-19 Andrew John Hughes * acinclude.m4: (IT_CHECK_FOR_JDK): Update JDK home directory check list, adding some missing 1.6 entries and removing generic ones which may now pick up an unwanted 1.7 installation. diffstat: ChangeLog | 8 ++++++++ acinclude.m4 | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diffs (30 lines): diff -r 8b157b07b859 -r af04fa17f62f ChangeLog --- a/ChangeLog Tue Mar 20 06:01:53 2012 +0000 +++ b/ChangeLog Tue Mar 20 10:43:41 2012 +0000 @@ -1,3 +1,11 @@ +2012-03-19 Andrew John Hughes + + * acinclude.m4: + (IT_CHECK_FOR_JDK): Update JDK home directory + check list, adding some missing 1.6 entries + and removing generic ones which may now pick + up an unwanted 1.7 installation. + 2012-03-16 Andrew John Hughes PR600, 886: diff -r 8b157b07b859 -r af04fa17f62f acinclude.m4 --- a/acinclude.m4 Tue Mar 20 06:01:53 2012 +0000 +++ b/acinclude.m4 Tue Mar 20 10:43:41 2012 +0000 @@ -1142,9 +1142,9 @@ if test "x${enable_bootstrap}" = "xyes"; then BOOTSTRAP_VMS="/usr/lib/jvm/java-gcj /usr/lib/jvm/gcj-jdk /usr/lib/jvm/cacao"; fi - for dir in ${BOOTSTRAP_VMS} /usr/lib/jvm/java-openjdk \ + for dir in ${BOOTSTRAP_VMS} /usr/lib/jvm/java-1.6.0 \ /usr/lib/jvm/icedtea6 /usr/lib/jvm/java-6-openjdk \ - /usr/lib/jvm/openjdk /usr/lib/jvm/java-icedtea ; do + /usr/lib/jvm/java-1.6.0-openjdk /usr/lib/jvm/icedtea-6 ; do if test -d $dir; then SYSTEM_JDK_DIR=$dir break From chphilli at redhat.com Tue Mar 20 03:46:42 2012 From: chphilli at redhat.com (Chris Phillips) Date: Tue, 20 Mar 2012 06:46:42 -0400 Subject: ARM: Support for OpenJDK 7 In-Reply-To: <9da15e77-a1fd-4859-a182-dcc580c143aa@zmail17.collab.prod.int.phx2.redhat.com> References: <9da15e77-a1fd-4859-a182-dcc580c143aa@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F686012.1010802@redhat.com> Hi Andrew, These changes look good and are running well as merged into icedtea7-forest-release-2.1 using the patch set you provided. Have "self" built x64, x64-zero and arm-zero w/asm jit with the fixes. (Had to re-run the last build for arm as I had disk problems due to the the missing usb fix.) Chris On 15/03/12 07:24 PM, Andrew Hughes wrote: > ----- Original Message ----- >> This time, without word wrap. >> >> This is in three parts: >> >> 1. Copy files from IcedTea 6's arm_port to the to the >> icedtea7-forest-2.1 branch. It has to be the 2.1 branch because >> Zero doesn't work on later HotSpot releases, and won't for some >> time to com. >> >> 2. Apply ARM patches from IcedTea 6. >> >> 3. Make a few changes for HSX 22, as below. >> >> After this I don't propose to contine working on IcedTea 6. Apart >> from bug fixes, the ARM port will be frozen. >> > This sounds good to me and I'm glad to see it going in 7. I approve 1 & 2 > for the 2.1 branch as they're present in 6 anyway. I'll leave someone more > knowledge to comment on and approve the ARM ports of 3. The gcc.make changes > look fine and I'd like to see these go upstream ASAP. They could at least > go in IcedTea7 HEAD and 2.0 immediately. > > >From what I remember of the ARM port in IcedTea6, the mere presence of the ARM > source files is enough to have them compiled, without additional build work. Is > this correct? > >> Andrew. >> >> 2012-03-15 Andrew Haley >> >> * src/cpu/zero/vm/thumb2.cpp: Update copyright. >> Constify various jbyte* pointers. >> Use a Symbol, not a symbolOopDesc. >> * src/cpu/zero/vm/cppInterpreter_arm.S (asm_method_table): >> Add >> implementation of java.lang.ref.Reference.get(). >> * src/cpu/zero/vm/asm_helper.cpp: Update copyright. >> (klass_at_addr): Fix indentation. >> (Helper_Raise): use a Symbol, not a symbolOopDesc. >> >> * gcc.make (FASTDEBUG_CFLAGS): Add zero. >> (OPT_CFLAGS): Likewise. >> >> # HG changeset patch >> # User aph >> # Date 1331816821 14400 >> # Node ID 30c4dc24823a73138a55de5bb152f9b688bb859b >> # Parent 065df7302cf5b31fa9fbf76e464030f80de2d4a2 >> Changes for HSX22 >> >> diff -r 065df7302cf5 -r 30c4dc24823a make/linux/makefiles/gcc.make >> --- a/make/linux/makefiles/gcc.make Thu Mar 15 08:54:12 2012 -0400 >> +++ b/make/linux/makefiles/gcc.make Thu Mar 15 09:07:01 2012 -0400 >> @@ -249,6 +249,7 @@ >> FASTDEBUG_CFLAGS/amd64 = -g >> FASTDEBUG_CFLAGS/arm = -g >> FASTDEBUG_CFLAGS/ppc = -g >> + FASTDEBUG_CFLAGS/zero = -g >> FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) >> ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) >> FASTDEBUG_CFLAGS += -gstabs >> @@ -258,6 +259,7 @@ >> OPT_CFLAGS/amd64 = -g >> OPT_CFLAGS/arm = -g >> OPT_CFLAGS/ppc = -g >> + OPT_CFLAGS/zero = -g >> OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) >> ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) >> OPT_CFLAGS += -gstabs >> diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/asm_helper.cpp >> --- a/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 08:54:12 2012 -0400 >> +++ b/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 09:07:01 2012 -0400 >> @@ -1,5 +1,6 @@ >> /* >> * Copyright 2009, 2010 Edward Nevill >> + * Copyright 2011, Red Hat >> * >> * This code is free software; you can redistribute it and/or modify >> it >> * under the terms of the GNU General Public License version 2 only, >> as >> @@ -118,9 +119,9 @@ >> class VMStructs { >> public: >> - static inline klassOop klass_at_addr(constantPoolOop constants, u2 >> index) { >> - return (klassOop) *constants->obj_at_addr(index); >> - } >> + static inline klassOop klass_at_addr(constantPoolOop constants, u2 >> index) { >> + return (klassOop) *constants->obj_at_addr_raw(index); >> + } >> }; >> extern "C" oop Helper_new(interpreterState istate, unsigned index) >> @@ -314,7 +315,7 @@ >> } >> } >> -extern "C" void Helper_Raise(JavaThread *thread, symbolOopDesc >> *name, char const *msg) >> +extern "C" void Helper_Raise(JavaThread *thread, Symbol *name, char >> const *msg) >> { >> ThreadInVMfromJava trans(thread); >> Exceptions::_throw_msg(thread, "[Bytecoce Interpreter]", 99, >> name, msg); >> diff -r 065df7302cf5 -r 30c4dc24823a >> src/cpu/zero/vm/cppInterpreter_arm.S >> --- a/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 08:54:12 2012 >> -0400 >> +++ b/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 09:07:01 2012 >> -0400 >> @@ -1,6 +1,7 @@ >> #ifdef __arm__ >> @ Copyright 2009, 2010 Edward Nevill >> +@ Copyright 2012, Red Hat >> @ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. >> @ >> @ This code is free software; you can redistribute it and/or modify >> it >> @@ -809,6 +810,7 @@ >> .word normal_entry // implementation of >> java.lang.Math.sqrt (x) >> .word normal_entry // implementation of >> java.lang.Math.log (x) >> .word normal_entry // implementation of >> java.lang.Math.log10 (x) >> + .word accessor_entry // implementation of >> java.lang.ref.Reference.get() >> 3: >> >> ALIGN_CODE >> @@ -7093,7 +7095,7 @@ >> CompileThreshold_Address: .word 0 >> InterpreterInvocationLimit_Address: .word 0 >> UseCompiler_Address: .word 0 >> -can_post_interpreter_events: .word 0 >> +can_post_interpreter_events: .word 0 >> PrintCommandLineFlags_Address: .word 0 >> oopDesc_Address: .word 0 >> ThreadLocalStorage_thread_index: .word 0 >> diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/thumb2.cpp >> --- a/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 08:54:12 2012 -0400 >> +++ b/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 09:07:01 2012 -0400 >> @@ -1,5 +1,6 @@ >> /* >> * Copyright 2009, 2010 Edward Nevill >> + * Copyright 2012, Red Hat >> * >> * This code is free software; you can redistribute it and/or modify >> it >> * under the terms of the GNU General Public License version 2 only, >> as >> @@ -649,7 +650,7 @@ >> void Thumb2_save_locals(Thumb2_Info *jinfo, unsigned stackdepth); >> void Thumb2_restore_locals(Thumb2_Info *jinfo, unsigned stackdepth); >> -static int method_stackchange(jbyte *base) >> +static int method_stackchange(const jbyte *base) >> { >> jbyte c; >> int stackchange = 0; >> @@ -680,7 +681,8 @@ >> return stackchange; >> } >> -static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, >> methodOop method, jbyte *base) >> +static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, methodOop >> method, >> + const jbyte *base) >> { >> jbyte c; >> unsigned arg = 0; >> @@ -1784,8 +1786,8 @@ >> case opc_putfield: { >> int index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int stackchange; >> @@ -1812,9 +1814,8 @@ >> case opc_invokestatic: { >> int index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - //symbolOop name = pool->name_ref_at(index); >> - symbolOop sig = pool->signature_ref_at(index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(index); >> + const jbyte *base = sig->base(); >> //tty->print("%d: %s: %s\n", opcode, name->as_C_string(), >> sig->as_C_string()); >> stackdepth += method_stackchange(base); >> @@ -6005,8 +6006,8 @@ >> if (!cache->is_resolved((Bytecodes::Code)opcode)) { >> int java_index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(java_index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(java_index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int handler = H_GETFIELD_WORD; >> @@ -6073,8 +6074,8 @@ >> if (!cache->is_resolved((Bytecodes::Code)opcode)) { >> int java_index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(java_index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(java_index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int handler = H_GETSTATIC_WORD; >> @@ -6138,8 +6139,8 @@ >> if (!cache->is_resolved((Bytecodes::Code)opcode)) { >> int java_index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(java_index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(java_index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int handler = H_PUTFIELD_WORD; >> @@ -6204,8 +6205,8 @@ >> if (!cache->is_resolved((Bytecodes::Code)opcode)) { >> int java_index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(java_index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(java_index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int handler = H_PUTSTATIC_WORD; >> @@ -7300,9 +7301,9 @@ >> HandleMark __hm(thread); >> frame fr = thread->last_frame(); >> methodOop method = fr.interpreter_frame_method(); >> - symbolOop name = method->name(); >> - symbolOop sig = method->signature(); >> - jbyte *base = sig->base();; >> + Symbol *name = method->name(); >> + Symbol *sig = method->signature(); >> + const jbyte *base = sig->base(); >> jubyte *code_base = (jubyte *)method->code_base(); >> int code_size = method->code_size(); >> -- -- -- Woda: "Java: write once, debug anywhere" Hong Zhang http://thehenrys.ca | Chris Phillips @ T.O. Red Hat OpenJDK JVM Engineer, | | mailto:ChrisPhi at RedHat.Com (416)483-3768 | | http://LGonQn.Org/www/Chris.Phillips cell: (416)505-3610 | "EPIC stands for Expects Perfectly Intuitive Compilers" P. Bannon http://www.hazmatmodine.com NOTICE: This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. "blah blah blah - Ginger!" -- -- From ChrisPhi at redhat.com Tue Mar 20 03:54:24 2012 From: ChrisPhi at redhat.com (Chris Phillips) Date: Tue, 20 Mar 2012 06:54:24 -0400 Subject: ARM: Support for OpenJDK 7 [resend] In-Reply-To: <9da15e77-a1fd-4859-a182-dcc580c143aa@zmail17.collab.prod.int.phx2.redhat.com> References: <9da15e77-a1fd-4859-a182-dcc580c143aa@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F6861E0.3020403@RedHat.Com> Hi Andrew Haley, These changes look good and are running well as merged into icedtea7-forest-release-2.1 using the patch set you provided. Have "self" built x64, x64-zero and arm-zero w/asm jit with the fixes. (Had to re-run the last build for arm as I had disk problems due to the the missing usb fix.) Chris [Re-send addressing the appropriate Andrew and using the correct from!... I will go right down and have a coffee before I cause any further finger damage] On 15/03/12 07:24 PM, Andrew Hughes wrote: > ----- Original Message ----- >> This time, without word wrap. >> >> This is in three parts: >> >> 1. Copy files from IcedTea 6's arm_port to the to the >> icedtea7-forest-2.1 branch. It has to be the 2.1 branch because >> Zero doesn't work on later HotSpot releases, and won't for some >> time to com. >> >> 2. Apply ARM patches from IcedTea 6. >> >> 3. Make a few changes for HSX 22, as below. >> >> After this I don't propose to contine working on IcedTea 6. Apart >> from bug fixes, the ARM port will be frozen. >> > This sounds good to me and I'm glad to see it going in 7. I approve 1 & 2 > for the 2.1 branch as they're present in 6 anyway. I'll leave someone more > knowledge to comment on and approve the ARM ports of 3. The gcc.make changes > look fine and I'd like to see these go upstream ASAP. They could at least > go in IcedTea7 HEAD and 2.0 immediately. > > >From what I remember of the ARM port in IcedTea6, the mere presence of the ARM > source files is enough to have them compiled, without additional build work. Is > this correct? > >> Andrew. >> >> 2012-03-15 Andrew Haley >> >> * src/cpu/zero/vm/thumb2.cpp: Update copyright. >> Constify various jbyte* pointers. >> Use a Symbol, not a symbolOopDesc. >> * src/cpu/zero/vm/cppInterpreter_arm.S (asm_method_table): >> Add >> implementation of java.lang.ref.Reference.get(). >> * src/cpu/zero/vm/asm_helper.cpp: Update copyright. >> (klass_at_addr): Fix indentation. >> (Helper_Raise): use a Symbol, not a symbolOopDesc. >> >> * gcc.make (FASTDEBUG_CFLAGS): Add zero. >> (OPT_CFLAGS): Likewise. >> >> # HG changeset patch >> # User aph >> # Date 1331816821 14400 >> # Node ID 30c4dc24823a73138a55de5bb152f9b688bb859b >> # Parent 065df7302cf5b31fa9fbf76e464030f80de2d4a2 >> Changes for HSX22 >> >> diff -r 065df7302cf5 -r 30c4dc24823a make/linux/makefiles/gcc.make >> --- a/make/linux/makefiles/gcc.make Thu Mar 15 08:54:12 2012 -0400 >> +++ b/make/linux/makefiles/gcc.make Thu Mar 15 09:07:01 2012 -0400 >> @@ -249,6 +249,7 @@ >> FASTDEBUG_CFLAGS/amd64 = -g >> FASTDEBUG_CFLAGS/arm = -g >> FASTDEBUG_CFLAGS/ppc = -g >> + FASTDEBUG_CFLAGS/zero = -g >> FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) >> ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) >> FASTDEBUG_CFLAGS += -gstabs >> @@ -258,6 +259,7 @@ >> OPT_CFLAGS/amd64 = -g >> OPT_CFLAGS/arm = -g >> OPT_CFLAGS/ppc = -g >> + OPT_CFLAGS/zero = -g >> OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) >> ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) >> OPT_CFLAGS += -gstabs >> diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/asm_helper.cpp >> --- a/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 08:54:12 2012 -0400 >> +++ b/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 09:07:01 2012 -0400 >> @@ -1,5 +1,6 @@ >> /* >> * Copyright 2009, 2010 Edward Nevill >> + * Copyright 2011, Red Hat >> * >> * This code is free software; you can redistribute it and/or modify >> it >> * under the terms of the GNU General Public License version 2 only, >> as >> @@ -118,9 +119,9 @@ >> class VMStructs { >> public: >> - static inline klassOop klass_at_addr(constantPoolOop constants, u2 >> index) { >> - return (klassOop) *constants->obj_at_addr(index); >> - } >> + static inline klassOop klass_at_addr(constantPoolOop constants, u2 >> index) { >> + return (klassOop) *constants->obj_at_addr_raw(index); >> + } >> }; >> extern "C" oop Helper_new(interpreterState istate, unsigned index) >> @@ -314,7 +315,7 @@ >> } >> } >> -extern "C" void Helper_Raise(JavaThread *thread, symbolOopDesc >> *name, char const *msg) >> +extern "C" void Helper_Raise(JavaThread *thread, Symbol *name, char >> const *msg) >> { >> ThreadInVMfromJava trans(thread); >> Exceptions::_throw_msg(thread, "[Bytecoce Interpreter]", 99, >> name, msg); >> diff -r 065df7302cf5 -r 30c4dc24823a >> src/cpu/zero/vm/cppInterpreter_arm.S >> --- a/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 08:54:12 2012 >> -0400 >> +++ b/src/cpu/zero/vm/cppInterpreter_arm.S Thu Mar 15 09:07:01 2012 >> -0400 >> @@ -1,6 +1,7 @@ >> #ifdef __arm__ >> @ Copyright 2009, 2010 Edward Nevill >> +@ Copyright 2012, Red Hat >> @ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. >> @ >> @ This code is free software; you can redistribute it and/or modify >> it >> @@ -809,6 +810,7 @@ >> .word normal_entry // implementation of >> java.lang.Math.sqrt (x) >> .word normal_entry // implementation of >> java.lang.Math.log (x) >> .word normal_entry // implementation of >> java.lang.Math.log10 (x) >> + .word accessor_entry // implementation of >> java.lang.ref.Reference.get() >> 3: >> >> ALIGN_CODE >> @@ -7093,7 +7095,7 @@ >> CompileThreshold_Address: .word 0 >> InterpreterInvocationLimit_Address: .word 0 >> UseCompiler_Address: .word 0 >> -can_post_interpreter_events: .word 0 >> +can_post_interpreter_events: .word 0 >> PrintCommandLineFlags_Address: .word 0 >> oopDesc_Address: .word 0 >> ThreadLocalStorage_thread_index: .word 0 >> diff -r 065df7302cf5 -r 30c4dc24823a src/cpu/zero/vm/thumb2.cpp >> --- a/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 08:54:12 2012 -0400 >> +++ b/src/cpu/zero/vm/thumb2.cpp Thu Mar 15 09:07:01 2012 -0400 >> @@ -1,5 +1,6 @@ >> /* >> * Copyright 2009, 2010 Edward Nevill >> + * Copyright 2012, Red Hat >> * >> * This code is free software; you can redistribute it and/or modify >> it >> * under the terms of the GNU General Public License version 2 only, >> as >> @@ -649,7 +650,7 @@ >> void Thumb2_save_locals(Thumb2_Info *jinfo, unsigned stackdepth); >> void Thumb2_restore_locals(Thumb2_Info *jinfo, unsigned stackdepth); >> -static int method_stackchange(jbyte *base) >> +static int method_stackchange(const jbyte *base) >> { >> jbyte c; >> int stackchange = 0; >> @@ -680,7 +681,8 @@ >> return stackchange; >> } >> -static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, >> methodOop method, jbyte *base) >> +static void Thumb2_local_info_from_sig(Thumb2_Info *jinfo, methodOop >> method, >> + const jbyte *base) >> { >> jbyte c; >> unsigned arg = 0; >> @@ -1784,8 +1786,8 @@ >> case opc_putfield: { >> int index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int stackchange; >> @@ -1812,9 +1814,8 @@ >> case opc_invokestatic: { >> int index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - //symbolOop name = pool->name_ref_at(index); >> - symbolOop sig = pool->signature_ref_at(index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(index); >> + const jbyte *base = sig->base(); >> //tty->print("%d: %s: %s\n", opcode, name->as_C_string(), >> sig->as_C_string()); >> stackdepth += method_stackchange(base); >> @@ -6005,8 +6006,8 @@ >> if (!cache->is_resolved((Bytecodes::Code)opcode)) { >> int java_index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(java_index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(java_index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int handler = H_GETFIELD_WORD; >> @@ -6073,8 +6074,8 @@ >> if (!cache->is_resolved((Bytecodes::Code)opcode)) { >> int java_index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(java_index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(java_index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int handler = H_GETSTATIC_WORD; >> @@ -6138,8 +6139,8 @@ >> if (!cache->is_resolved((Bytecodes::Code)opcode)) { >> int java_index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(java_index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(java_index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int handler = H_PUTFIELD_WORD; >> @@ -6204,8 +6205,8 @@ >> if (!cache->is_resolved((Bytecodes::Code)opcode)) { >> int java_index = GET_NATIVE_U2(code_base+bci+1); >> constantPoolOop pool = jinfo->method->constants(); >> - symbolOop sig = pool->signature_ref_at(java_index); >> - jbyte *base = sig->base(); >> + Symbol *sig = pool->signature_ref_at(java_index); >> + const jbyte *base = sig->base(); >> jbyte c = *base; >> int handler = H_PUTSTATIC_WORD; >> @@ -7300,9 +7301,9 @@ >> HandleMark __hm(thread); >> frame fr = thread->last_frame(); >> methodOop method = fr.interpreter_frame_method(); >> - symbolOop name = method->name(); >> - symbolOop sig = method->signature(); >> - jbyte *base = sig->base();; >> + Symbol *name = method->name(); >> + Symbol *sig = method->signature(); >> + const jbyte *base = sig->base(); >> jubyte *code_base = (jubyte *)method->code_base(); >> int code_size = method->code_size(); >> From ptisnovs at redhat.com Tue Mar 20 04:07:02 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 20 Mar 2012 12:07:02 +0100 Subject: Reviewer needed: IcedTea6 HEAD - Fix for NameSpaceSymbTable class from Apache XML internal security library. Message-ID: <4F6864D6.9010108@redhat.com> Hi all, I'd like to push following patch to IcedTea6 HEAD. This patch fixes one issue in NameSpaceSymbTable class from Apache XML internal, security library. hg diff created against recent IcedTea6 HEAD is stored in an attachment. ChangeLog entry: 2012-03-20 Pavel Tisnovsky * patches/apache-xml-internal-fix.patch: Fix for NameSpaceSymbTable class from Apache XML internal security library. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/fc1cc479/hg.diff From ahughes at redhat.com Tue Mar 20 04:15:53 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 20 Mar 2012 07:15:53 -0400 (EDT) Subject: Reviewer needed: IcedTea6 HEAD - Fix for NameSpaceSymbTable class from Apache XML internal security library. In-Reply-To: <4F6864D6.9010108@redhat.com> Message-ID: <9e969593-4e49-4745-8d94-1ec8d3ec6437@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Hi all, > > I'd like to push following patch to IcedTea6 HEAD. This patch fixes > one issue in > NameSpaceSymbTable class from Apache XML internal, security library. > > hg diff created against recent IcedTea6 HEAD is stored in an > attachment. > > > ChangeLog entry: > > 2012-03-20 Pavel Tisnovsky > > * patches/apache-xml-internal-fix.patch: > Fix for NameSpaceSymbTable class from Apache XML internal > security library. > > Can anybody please review this change? > Is this from the mega-patch you posted before? Has this gone upstream? > Thank you in advance, > Pavel > > > > [Text File:hg.diff] > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at redhat.com Tue Mar 20 05:22:21 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 20 Mar 2012 13:22:21 +0100 Subject: Reviewer needed: IcedTea6 HEAD - Fix for NameSpaceSymbTable class from Apache XML internal security library. In-Reply-To: <9e969593-4e49-4745-8d94-1ec8d3ec6437@zmail17.collab.prod.int.phx2.redhat.com> References: <9e969593-4e49-4745-8d94-1ec8d3ec6437@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F68767D.4050106@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Hi all, >> >> I'd like to push following patch to IcedTea6 HEAD. This patch fixes >> one issue in >> NameSpaceSymbTable class from Apache XML internal, security library. >> >> hg diff created against recent IcedTea6 HEAD is stored in an >> attachment. >> >> >> ChangeLog entry: >> >> 2012-03-20 Pavel Tisnovsky >> >> * patches/apache-xml-internal-fix.patch: >> Fix for NameSpaceSymbTable class from Apache XML internal >> security library. >> >> Can anybody please review this change? >> > > Is this from the mega-patch you posted before? yes, this is part of the mega-patch > > Has this gone upstream? if you mean by upstream Apache XML sec. project - yes, it's part of changes made in this project (these changes are quite hard to spot as the sources were regularly reformatted :-|) > >> Thank you in advance, >> Pavel >> >> >> >> [Text File:hg.diff] >> > From mjw at redhat.com Tue Mar 20 05:57:47 2012 From: mjw at redhat.com (Mark Wielaard) Date: Tue, 20 Mar 2012 13:57:47 +0100 Subject: [PATCH 0 of 1] Fix make clean on icedtea6 Message-ID: Hi, As Pavel noticed on irc make clean would fail on icedtea6 after make check was run. This is because make clean depends on clean-jtreg which tries to remove the (it thinks) empty build test directory. For it to be really empty clean-jtreg needs to depend on clean-jtreg-reports. Which this patch does. Does this look correct? This doesn't affect icedtea7 since that never got the fix for PR719: make distcheck should work in IcedTea6. Maybe that should be forward ported to icedtea7? If so then this patch should also be applied there. Cheers, Mark From mjw at redhat.com Tue Mar 20 05:57:48 2012 From: mjw at redhat.com (Mark Wielaard) Date: Tue, 20 Mar 2012 13:57:48 +0100 Subject: [PATCH 1 of 1] Makefile.am (clean-jtreg): Depend on clean-jtreg-reports In-Reply-To: References: Message-ID: <2ec7673965579347cd63.1332248268@springer.wildebeest.org> # HG changeset patch # User Mark Wielaard # Date 1332247709 -3600 # Node ID 2ec7673965579347cd63bddaba5b207f08be2e07 # Parent af04fa17f62f75abdc5afd7a58c9f94684b356aa Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. clean-jtreg wants to remove the empty test build directory. But it can still contain jtreg report summary files. Clean those up first by depending on clean-jtreg-reports. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-03-20 Mark Wielaard + + * Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. + 2012-03-19 Andrew John Hughes * acinclude.m4: diff --git a/Makefile.am b/Makefile.am --- a/Makefile.am +++ b/Makefile.am @@ -2157,7 +2157,7 @@ mkdir -p stamps touch $@ -clean-jtreg: +clean-jtreg: clean-jtreg-reports rm -rf test/jtreg/classes if [ -e test/jtreg ] ; then \ rmdir test/jtreg ; \ From ptisnovs at redhat.com Tue Mar 20 06:13:19 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 20 Mar 2012 14:13:19 +0100 Subject: [PATCH 1 of 1] Makefile.am (clean-jtreg): Depend on clean-jtreg-reports In-Reply-To: <2ec7673965579347cd63.1332248268@springer.wildebeest.org> References: <2ec7673965579347cd63.1332248268@springer.wildebeest.org> Message-ID: <4F68826F.3060907@redhat.com> Hi Mark, this change looks ok, approved. Thanks, Pavel Mark Wielaard wrote: > # HG changeset patch > # User Mark Wielaard > # Date 1332247709 -3600 > # Node ID 2ec7673965579347cd63bddaba5b207f08be2e07 > # Parent af04fa17f62f75abdc5afd7a58c9f94684b356aa > Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. > > clean-jtreg wants to remove the empty test build directory. But it can > still contain jtreg report summary files. Clean those up first by depending > on clean-jtreg-reports. > > diff --git a/ChangeLog b/ChangeLog > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,7 @@ > +2012-03-20 Mark Wielaard > + > + * Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. > + > 2012-03-19 Andrew John Hughes > > * acinclude.m4: > diff --git a/Makefile.am b/Makefile.am > --- a/Makefile.am > +++ b/Makefile.am > @@ -2157,7 +2157,7 @@ > mkdir -p stamps > touch $@ > > -clean-jtreg: > +clean-jtreg: clean-jtreg-reports > rm -rf test/jtreg/classes > if [ -e test/jtreg ] ; then \ > rmdir test/jtreg ; \ From mjw at icedtea.classpath.org Tue Mar 20 06:18:32 2012 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Tue, 20 Mar 2012 13:18:32 +0000 Subject: /hg/icedtea6: Makefile.am (clean-jtreg): Depend on clean-jtreg-r... Message-ID: changeset 2ec767396557 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=2ec767396557 author: Mark Wielaard date: Tue Mar 20 13:48:29 2012 +0100 Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. clean-jtreg wants to remove the empty test build directory. But it can still contain jtreg report summary files. Clean those up first by depending on clean-jtreg-reports. diffstat: ChangeLog | 4 ++++ Makefile.am | 2 +- 2 files changed, 5 insertions(+), 1 deletions(-) diffs (23 lines): diff -r af04fa17f62f -r 2ec767396557 ChangeLog --- a/ChangeLog Tue Mar 20 10:43:41 2012 +0000 +++ b/ChangeLog Tue Mar 20 13:48:29 2012 +0100 @@ -1,3 +1,7 @@ +2012-03-20 Mark Wielaard + + * Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. + 2012-03-19 Andrew John Hughes * acinclude.m4: diff -r af04fa17f62f -r 2ec767396557 Makefile.am --- a/Makefile.am Tue Mar 20 10:43:41 2012 +0000 +++ b/Makefile.am Tue Mar 20 13:48:29 2012 +0100 @@ -2157,7 +2157,7 @@ mkdir -p stamps touch $@ -clean-jtreg: +clean-jtreg: clean-jtreg-reports rm -rf test/jtreg/classes if [ -e test/jtreg ] ; then \ rmdir test/jtreg ; \ From ahughes at redhat.com Tue Mar 20 06:23:08 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 20 Mar 2012 09:23:08 -0400 (EDT) Subject: Reviewer needed: IcedTea6 HEAD - Fix for NameSpaceSymbTable class from Apache XML internal security library. In-Reply-To: <4F68767D.4050106@redhat.com> Message-ID: <304448c1-244f-4c2e-adcd-4154cabfe20d@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> Hi all, > >> > >> I'd like to push following patch to IcedTea6 HEAD. This patch > >> fixes > >> one issue in > >> NameSpaceSymbTable class from Apache XML internal, security > >> library. > >> > >> hg diff created against recent IcedTea6 HEAD is stored in an > >> attachment. > >> > >> > >> ChangeLog entry: > >> > >> 2012-03-20 Pavel Tisnovsky > >> > >> * patches/apache-xml-internal-fix.patch: > >> Fix for NameSpaceSymbTable class from Apache XML internal > >> security library. > >> > >> Can anybody please review this change? > >> > > > > Is this from the mega-patch you posted before? > > yes, this is part of the mega-patch > > > > > Has this gone upstream? > > if you mean by upstream Apache XML sec. project - yes, it's part of > changes made in this project (these changes are > quite hard to spot as the sources were regularly reformatted :-|) > No, I mean OpenJDK6. > > > >> Thank you in advance, > >> Pavel > >> > >> > >> > >> [Text File:hg.diff] > >> > > > > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Tue Mar 20 06:25:51 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 20 Mar 2012 09:25:51 -0400 (EDT) Subject: [PATCH 1 of 1] Makefile.am (clean-jtreg): Depend on clean-jtreg-reports In-Reply-To: <4F68826F.3060907@redhat.com> Message-ID: <462e7591-92d8-4b5e-af87-2cd251f16826@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Hi Mark, > > this change looks ok, approved. > > Thanks, > Pavel > > > Mark Wielaard wrote: > > # HG changeset patch > > # User Mark Wielaard > > # Date 1332247709 -3600 > > # Node ID 2ec7673965579347cd63bddaba5b207f08be2e07 > > # Parent af04fa17f62f75abdc5afd7a58c9f94684b356aa > > Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. > > > > clean-jtreg wants to remove the empty test build directory. But it > > can > > still contain jtreg report summary files. Clean those up first by > > depending > > on clean-jtreg-reports. > > > > diff --git a/ChangeLog b/ChangeLog > > --- a/ChangeLog > > +++ b/ChangeLog > > @@ -1,3 +1,7 @@ > > +2012-03-20 Mark Wielaard > > + > > + * Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. > > + > > 2012-03-19 Andrew John Hughes > > > > * acinclude.m4: > > diff --git a/Makefile.am b/Makefile.am > > --- a/Makefile.am > > +++ b/Makefile.am > > @@ -2157,7 +2157,7 @@ > > mkdir -p stamps > > touch $@ > > > > -clean-jtreg: > > +clean-jtreg: clean-jtreg-reports > > rm -rf test/jtreg/classes > > if [ -e test/jtreg ] ; then \ > > rmdir test/jtreg ; \ > > It could also now be removed from clean-local. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Tue Mar 20 06:26:53 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 20 Mar 2012 09:26:53 -0400 (EDT) Subject: [PATCH 0 of 1] Fix make clean on icedtea6 In-Reply-To: Message-ID: ----- Original Message ----- > Hi, > > As Pavel noticed on irc make clean would fail on icedtea6 after make > check > was run. This is because make clean depends on clean-jtreg which > tries > to remove the (it thinks) empty build test directory. For it to be > really > empty clean-jtreg needs to depend on clean-jtreg-reports. Which this > patch > does. > > Does this look correct? > There doesn't appear to be anything attached. > This doesn't affect icedtea7 since that never got the fix for > PR719: make distcheck should work in IcedTea6. Maybe that should be > forward > ported to icedtea7? If so then this patch should also be applied > there. > make distcheck has worked a lot longer on 7 than on 6. What is the fix you refer to? > Cheers, > > Mark > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From mjw at redhat.com Tue Mar 20 06:33:37 2012 From: mjw at redhat.com (Mark Wielaard) Date: Tue, 20 Mar 2012 14:33:37 +0100 Subject: [PATCH 0 of 1] Fix make clean on icedtea6 In-Reply-To: References: Message-ID: <1332250417.10346.10.camel@springer.wildebeest.org> On Tue, 2012-03-20 at 09:26 -0400, Andrew Hughes wrote: > There doesn't appear to be anything attached. Yeah, sorry, that was hg email deciding to split the patch in two emails with the intro as PATCH 0 of 1. > > This doesn't affect icedtea7 since that never got the fix for > > PR719: make distcheck should work in IcedTea6. Maybe that should be > > forward > > ported to icedtea7? If so then this patch should also be applied > > there. > > > make distcheck has worked a lot longer on 7 than on 6. What is the > fix you refer to? # HG changeset patch # User Andrew John Hughes # Date 1321452073 0 # Node ID 1075c87ee0255fcf2ac59a461be0f5438c7c2650 # Parent b26203d46fdd414d8ebec5422349f6003029f23d PR719: make distcheck work in IcedTea6 2011-11-11 Andrew John Hughes PR719: make distcheck work in IcedTea6 * Makefile.am: (distclean-local): Depend on clean-local. (ports): Remove inapplicable conditionals from reversion and ensure copied files have correct permissions. (clean-generated): Replace hardcoded name with $(GENERATED_BUILD_DIR). (clean-jtreg): Remove all empty directories. * NEWS: List this fix. If that one isn't necessary for icedtea7 then everything is fine. Thanks, Mark From aph at icedtea.classpath.org Tue Mar 20 06:33:48 2012 From: aph at icedtea.classpath.org (aph at icedtea.classpath.org) Date: Tue, 20 Mar 2012 13:33:48 +0000 Subject: /hg/release/icedtea7-forest-2.1/hotspot: 6 new changesets Message-ID: changeset 46c1086c233b in /hg/release/icedtea7-forest-2.1/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot?cmd=changeset;node=46c1086c233b author: aph date: Thu Mar 15 07:53:52 2012 -0400 Add arm_port from IcedTea 6 changeset 61248c69e562 in /hg/release/icedtea7-forest-2.1/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot?cmd=changeset;node=61248c69e562 author: aph date: Thu Mar 15 07:56:24 2012 -0400 Add patches/arm.patch from IcedTea 6 changeset c1d02b230f8f in /hg/release/icedtea7-forest-2.1/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot?cmd=changeset;node=c1d02b230f8f author: aph date: Thu Mar 15 07:57:19 2012 -0400 Add patches/arm-debug.patch from IcedTea 6 changeset e0dc4262c74a in /hg/release/icedtea7-forest-2.1/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot?cmd=changeset;node=e0dc4262c74a author: aph date: Thu Mar 15 07:58:32 2012 -0400 Add patches/arm-hsdis.patch from IcedTea 6 changeset 065df7302cf5 in /hg/release/icedtea7-forest-2.1/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot?cmd=changeset;node=065df7302cf5 author: aph date: Thu Mar 15 08:54:12 2012 -0400 Move arm-port files to the correct place changeset 30c4dc24823a in /hg/release/icedtea7-forest-2.1/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot?cmd=changeset;node=30c4dc24823a author: aph date: Thu Mar 15 09:07:01 2012 -0400 Changes for HSX22 diffstat: make/linux/makefiles/gcc.make | 2 + make/linux/makefiles/vm.make | 2 +- make/linux/makefiles/zeroshark.make | 35 + src/cpu/zero/vm/arm_cas.S | 30 + src/cpu/zero/vm/asm_helper.cpp | 617 + src/cpu/zero/vm/bytecodes_arm.def | 7888 ++++++++++++++++ src/cpu/zero/vm/bytecodes_zero.cpp | 52 +- src/cpu/zero/vm/bytecodes_zero.hpp | 41 +- src/cpu/zero/vm/cppInterpreter_arm.S | 7129 +++++++++++++++ src/cpu/zero/vm/cppInterpreter_zero.cpp | 11 + src/cpu/zero/vm/thumb2.cpp | 8059 +++++++++++++++++ src/cpu/zero/vm/vm_version_zero.hpp | 11 + src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp | 14 + src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 10 + src/share/tools/hsdis/Makefile | 10 +- src/share/tools/hsdis/hsdis.c | 7 +- src/share/vm/utilities/vmError.cpp | 13 + src/share/vm/utilities/vmError.hpp | 8 + tools/mkbc.c | 607 + 19 files changed, 24539 insertions(+), 7 deletions(-) diffs (truncated from 24780 to 500 lines): diff -r 442edfd29936 -r 30c4dc24823a make/linux/makefiles/gcc.make --- a/make/linux/makefiles/gcc.make Tue Feb 14 10:56:16 2012 -0500 +++ b/make/linux/makefiles/gcc.make Thu Mar 15 09:07:01 2012 -0400 @@ -249,6 +249,7 @@ FASTDEBUG_CFLAGS/amd64 = -g FASTDEBUG_CFLAGS/arm = -g FASTDEBUG_CFLAGS/ppc = -g + FASTDEBUG_CFLAGS/zero = -g FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) FASTDEBUG_CFLAGS += -gstabs @@ -258,6 +259,7 @@ OPT_CFLAGS/amd64 = -g OPT_CFLAGS/arm = -g OPT_CFLAGS/ppc = -g + OPT_CFLAGS/zero = -g OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) OPT_CFLAGS += -gstabs diff -r 442edfd29936 -r 30c4dc24823a make/linux/makefiles/vm.make --- a/make/linux/makefiles/vm.make Tue Feb 14 10:56:16 2012 -0500 +++ b/make/linux/makefiles/vm.make Thu Mar 15 09:07:01 2012 -0400 @@ -203,7 +203,7 @@ # Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE. define findsrc $(notdir $(shell find $(1)/. ! -name . -prune \ - -a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \ + -a \( -name \*.c -o -name \*.cpp -o -name \*.s -o -name \*.S \) \ -a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \))) endef diff -r 442edfd29936 -r 30c4dc24823a make/linux/makefiles/zeroshark.make --- a/make/linux/makefiles/zeroshark.make Tue Feb 14 10:56:16 2012 -0500 +++ b/make/linux/makefiles/zeroshark.make Thu Mar 15 09:07:01 2012 -0400 @@ -25,6 +25,41 @@ # Setup common to Zero (non-Shark) and Shark versions of VM +ifeq ($(ZERO_LIBARCH),arm) + +Obj_Files += asm_helper.o +Obj_Files += cppInterpreter_arm.o +Obj_Files += thumb2.o + +CFLAGS += -DHOTSPOT_ASM + +cppInterpreter_arm.o: offsets_arm.s bytecodes_arm.s +thumb2.o: offsets_arm.s + +offsets_arm.s: mkoffsets + @echo Generating assembler offsets + ./mkoffsets > $@ + +bytecodes_arm.s: bytecodes_arm.def mkbc + @echo Generatine ARM assembler bytecode sequences + $(CC_COMPILE) -E -x c++ - < $< | ./mkbc - $@ $(COMPILE_DONE) + +mkbc: $(GAMMADIR)/tools/mkbc.c + @echo Compiling mkbc tool + $(CC_COMPILE) -o $@ $< $(COMPILE_DONE) + +mkoffsets: asm_helper.cpp + @echo Compiling offset generator + $(QUIETLY) $(REMOVE_TARGET) + $(CC_COMPILE) -DSTATIC_OFFSETS -o $@ $< $(COMPILE_DONE) + +endif + +%.o: %.S + @echo Assembling $< + $(QUIETLY) $(REMOVE_TARGET) + $(COMPILE.CC) -o $@ $< $(COMPILE_DONE) + # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT) # The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized diff -r 442edfd29936 -r 30c4dc24823a src/cpu/zero/vm/arm_cas.S --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cpu/zero/vm/arm_cas.S Thu Mar 15 09:07:01 2012 -0400 @@ -0,0 +1,30 @@ +#ifdef __ARM_ARCH_7A__ +@ jlong +@ arm_val_compare_and_swap_long(volatile void *ptr, +@ jlong oldval, +@ jlong newval) { + .pushsection .text + .global arm_val_compare_and_swap_long +#ifdef __thumb__ + .thumb_func +#endif + .type arm_val_compare_and_swap_long, %function +arm_val_compare_and_swap_long: + stmfd sp!, {r4, r5, r6, r7} + ldrd r4, [sp, #16] + dmb sy +0: ldrexd r6, [r0] + cmp r6, r2 + it eq + cmpeq r7, r3 + bne 1f + strexd r1, r4, [r0] + cmp r1, #0 + bne 0b + dmb sy +1: mov r0, r6 + mov r1, r7 + ldmfd sp!, {r4, r5, r6, r7} + bx lr + .popsection +#endif // __ARM_ARCH_7A__ diff -r 442edfd29936 -r 30c4dc24823a src/cpu/zero/vm/asm_helper.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cpu/zero/vm/asm_helper.cpp Thu Mar 15 09:07:01 2012 -0400 @@ -0,0 +1,617 @@ +/* + * Copyright 2009, 2010 Edward Nevill + * Copyright 2011, Red Hat + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifdef __arm__ + +#define ARCH_THUMBEE (1<<16) +#define ARCH_VFP (1<<17) +#define ARCH_CLZ (1<<18) + +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interp_masm_zero.hpp" +#include "interpreter/bytecodeInterpreter.hpp" +#include "interpreter/bytecodeInterpreter.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" + +#ifndef STATIC_OFFSETS + +#include +#include + +#define VECBUFF_SIZE 64 + +extern "C" unsigned hwcap(void) +{ + int fd; + unsigned vecs[VECBUFF_SIZE]; + unsigned *p; + int i, n; + unsigned rc = 0; + unsigned arch = 4; + + fd = open("/proc/self/auxv", O_RDONLY); + if (fd < 0) return 0; + do { + n = read(fd, vecs, VECBUFF_SIZE * sizeof(unsigned)); + p = vecs; + i = n/8; + while (--i >= 0) { + unsigned tag = *p++; + unsigned value = *p++; + if (tag == 0) goto fini; + if (tag == AT_HWCAP) { + if (value & HWCAP_THUMBEE) rc |= ARCH_THUMBEE; + if (value & HWCAP_VFP) rc |= ARCH_VFP; + } else if (tag == AT_PLATFORM) { + const char *s = (const char *)value; + int c; + + if (*s++ == 'v') { + arch = 0; + while ((isdigit)(c = *s++)) arch = arch * 10 + c - '0'; + } + } + } + } while (n == VECBUFF_SIZE * sizeof(unsigned)); +fini: + close(fd); +// printf("arch = %d, rc = 0x%08x\n", arch, rc); + if (arch >= 5) rc |= ARCH_CLZ; + if (arch >= 7) rc |= ARCH_THUMBEE; + return rc | (1<is_lock_owned(r1); +} + +extern "C" HeapWord **CollectedHeap_top_addr(CollectedHeap *r0) +{ + return r0->top_addr(); +} + +extern "C" HeapWord **CollectedHeap_end_addr(CollectedHeap *r0) +{ + return r0->end_addr(); +} + +extern "C" char *SharedRuntime_generate_class_cast_message(const char *name, const char *klass) +{ + return SharedRuntime::generate_class_cast_message(name, klass); +} + +#define HELPER_THROW(thread, name, msg) Exceptions::_throw_msg(thread, __FILE__, __LINE__, name, msg) + +class VMStructs { +public: + static inline klassOop klass_at_addr(constantPoolOop constants, u2 index) { + return (klassOop) *constants->obj_at_addr_raw(index); + } +}; + +extern "C" oop Helper_new(interpreterState istate, unsigned index) +{ + JavaThread *thread = istate->thread(); + + constantPoolOop constants = istate->method()->constants(); + oop result = NULL; + if (!constants->tag_at(index).is_unresolved_klass()) { + // Make sure klass is initialized and doesn't have a finalizer + oop entry = VMStructs::klass_at_addr(constants, index); + klassOop k_entry = (klassOop) entry; + instanceKlass* ik = (instanceKlass*) k_entry->klass_part(); + if ( ik->is_initialized() && ik->can_be_fastpath_allocated() ) { + size_t obj_size = ik->size_helper(); + // If the TLAB isn't pre-zeroed then we'll have to do it + bool need_zero = !ZeroTLAB; + if (UseTLAB) { + result = (oop) thread->tlab().allocate(obj_size); + } + if (result == NULL && !CMSIncrementalMode) { + need_zero = true; + // Try allocate in shared eden + retry: + HeapWord* compare_to = *Universe::heap()->top_addr(); + HeapWord* new_top = compare_to + obj_size; + if (new_top <= *Universe::heap()->end_addr()) { + if (Atomic::cmpxchg_ptr(new_top, Universe::heap()->top_addr(), compare_to) != compare_to) { + goto retry; + } + result = (oop) compare_to; + } + } + if (result != NULL) { + // Initialize object (if nonzero size and need) and then the header + if (need_zero ) { + HeapWord* to_zero = (HeapWord*) result + sizeof(oopDesc) / oopSize; + obj_size -= sizeof(oopDesc) / oopSize; + if (obj_size > 0 ) { + memset(to_zero, 0, obj_size * HeapWordSize); + } + } + if (UseBiasedLocking) { + result->set_mark(ik->prototype_header()); + } else { + result->set_mark(markOopDesc::prototype()); + } + result->set_klass_gap(0); + result->set_klass(k_entry); + return result; + } + } + } + // Slow case allocation + InterpreterRuntime::_new(thread, istate->method()->constants(), index); + result = thread->vm_result(); + thread->set_vm_result(NULL); + return result; +} + +extern "C" int Helper_instanceof(interpreterState istate, unsigned index, oop tos) +{ + if (tos == NULL) return 0; + + // Constant pool may have actual klass or unresolved klass. If it is + // unresolved we must resolve it + if (istate->method()->constants()->tag_at(index).is_unresolved_klass()) { + InterpreterRuntime::quicken_io_cc(istate->thread()); + if (istate->thread()->has_pending_exception()) return 0; + } + klassOop klassOf = VMStructs::klass_at_addr(istate->method()->constants(), index); + klassOop objKlassOop = tos->klass(); + // + // Check for compatibilty. This check must not GC!! + // Seems way more expensive now that we must dispatch + // + return objKlassOop == klassOf || objKlassOop->klass_part()->is_subtype_of(klassOf); +} + +extern "C" oop Helper_checkcast(interpreterState istate, unsigned index, oop tos) +{ + if (tos == NULL) return NULL; + + // Constant pool may have actual klass or unresolved klass. If it is + // unresolved we must resolve it + if (istate->method()->constants()->tag_at(index).is_unresolved_klass()) { + oop except_oop; + InterpreterRuntime::quicken_io_cc(istate->thread()); + if (except_oop = istate->thread()->pending_exception()) return except_oop; + } + klassOop klassOf = VMStructs::klass_at_addr(istate->method()->constants(), index); + klassOop objKlassOop = tos->klass(); //ebx + // + // Check for compatibilty. This check must not GC!! + // Seems way more expensive now that we must dispatch + // + if (objKlassOop != klassOf && !objKlassOop->klass_part()->is_subtype_of(klassOf)) { + ResourceMark rm(istate->thread()); + const char* objName = Klass::cast(objKlassOop)->external_name(); + const char* klassName = Klass::cast(klassOf)->external_name(); + char* message = SharedRuntime::generate_class_cast_message(objName, klassName); + ThreadInVMfromJava trans(istate->thread()); + HELPER_THROW(istate->thread(), vmSymbols::java_lang_ClassCastException(), message); + } + return istate->thread()->pending_exception(); +} + +extern "C" oop Helper_aastore(interpreterState istate, oop value, int index, arrayOop arrayref) +{ + if (arrayref == NULL) { + ThreadInVMfromJava trans(istate->thread()); + HELPER_THROW(istate->thread(), vmSymbols::java_lang_NullPointerException(), ""); + } else if ((uint32_t)index >= (uint32_t)arrayref->length()) { + char message[jintAsStringSize]; + sprintf(message, "%d", index); + HELPER_THROW(istate->thread(), vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message); + } else { + if (value != NULL) { + /* Check assignability of value into arrayref */ + klassOop rhsKlassOop = value->klass(); // EBX (subclass) + klassOop elemKlassOop = ((objArrayKlass*) arrayref->klass()->klass_part())->element_klass(); + // + // Check for compatibilty. This check must not GC!! + // Seems way more expensive now that we must dispatch + // + if (rhsKlassOop != elemKlassOop && !rhsKlassOop->klass_part()->is_subtype_of(elemKlassOop)) { + HELPER_THROW(istate->thread(), vmSymbols::java_lang_ArrayStoreException(), ""); + goto handle_exception; + } + } + oop* elem_loc = (oop*)(((address) arrayref->base(T_OBJECT)) + index * sizeof(oop)); + // *(oop*)(((address) arrayref->base(T_OBJECT)) + index * sizeof(oop)) = value; + *elem_loc = value; + // Mark the card + BarrierSet* bs = Universe::heap()->barrier_set(); + static volatile jbyte* _byte_map_base = (volatile jbyte*)(((CardTableModRefBS*)bs)->byte_map_base); + OrderAccess::release_store(&_byte_map_base[(uintptr_t)elem_loc >> CardTableModRefBS::card_shift], 0); + } +handle_exception: + return istate->thread()->pending_exception(); +} + +extern "C" void Helper_aputfield(oop obj) +{ + BarrierSet* bs = Universe::heap()->barrier_set(); + static volatile jbyte* _byte_map_base = (volatile jbyte*)(((CardTableModRefBS*)bs)->byte_map_base); + OrderAccess::release_store(&_byte_map_base[(uintptr_t)obj >> CardTableModRefBS::card_shift], 0); +} + +extern "C" oop Helper_synchronized_enter(JavaThread *thread, BasicObjectLock *mon) +{ + BasicLock *lock = mon->lock(); + markOop displaced = lock->displaced_header(); + + if (thread->is_lock_owned((address)displaced->clear_lock_bits())) + lock->set_displaced_header(NULL); + else + InterpreterRuntime::monitorenter(thread, mon); + return thread->pending_exception(); +} + +extern "C" oop Helper_synchronized_exit(JavaThread *thread, BasicObjectLock *mon) +{ + { + HandleMark __hm(thread); + if (mon->obj() == NULL) + InterpreterRuntime::throw_illegal_monitor_state_exception(thread); + else + InterpreterRuntime::monitorexit(thread, mon); + } + return thread->pending_exception(); +} + +extern "C" oop Helper_SafePoint(JavaThread *thread) +{ + { + HandleMarkCleaner __hmc(thread); + } + SafepointSynchronize::block(thread); + return thread->pending_exception(); +} + +extern "C" void Helper_RaiseArrayBoundException(JavaThread *thread, int index) +{ + char message[jintAsStringSize]; + sprintf(message, "%d", index); + { + ThreadInVMfromJava trans(thread); + Exceptions::_throw_msg(thread, "[Bytecoce Interpreter]", 99, + vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message); + } +} + +extern "C" void Helper_Raise(JavaThread *thread, Symbol *name, char const *msg) +{ + ThreadInVMfromJava trans(thread); + Exceptions::_throw_msg(thread, "[Bytecoce Interpreter]", 99, name, msg); +} + +extern "C" void Helper_RaiseIllegalMonitorException(JavaThread *thread) +{ + HandleMark __hm(thread); + thread->clear_pending_exception(); + InterpreterRuntime::throw_illegal_monitor_state_exception(thread); +} + +extern "C" address Helper_HandleException(interpreterState istate, JavaThread *thread) +{ + HandleMarkCleaner __hmc(thread); + Handle except_oop(thread, thread->pending_exception()); + HandleMark __hm(thread); + intptr_t continuation_bci; + intptr_t *topOfStack; + address pc; + + thread->clear_pending_exception(); + continuation_bci = (intptr_t)InterpreterRuntime::exception_handler_for_exception(thread, except_oop()); + except_oop = (oop) thread->vm_result(); + thread->set_vm_result(NULL); + if (continuation_bci >= 0) { + topOfStack = (intptr_t *)istate->stack(); + *topOfStack-- = (intptr_t)except_oop(); + istate->set_stack(topOfStack); + pc = istate->method()->code_base() + continuation_bci; +#if 0 + tty->print_cr("Exception <%s> (" INTPTR_FORMAT ")", Klass::cast(except_oop->klass())->external_name(), except_oop()); + tty->print_cr(" thrown in interpreter method <%s>", istate->method()->name_and_sig_as_C_string()); + tty->print_cr(" at bci %d, continuing at %d for thread " INTPTR_FORMAT, + pc - (intptr_t)istate->method()->code_base(), + continuation_bci, thread); +#endif + return pc; + } +#if 0 + tty->print_cr("Exception <%s> (" INTPTR_FORMAT ")", Klass::cast(except_oop->klass())->external_name(), except_oop()); + tty->print_cr(" thrown in interpreter method <%s>", istate->method()->name_and_sig_as_C_string()); + tty->print_cr(" at bci %d, unwinding for thread " INTPTR_FORMAT, + pc - (intptr_t) istate->method()->code_base(), + thread); +#endif + thread->set_pending_exception(except_oop(), NULL, 0); + return 0; +} + +extern "C" void Helper_report_fatal(char *filename, int line, + char *msg, int opcode, char *name) +{ + report_fatal(filename, line, + err_msg(msg, opcode, name)); +} + +#endif // STATIC_OFFSETS + +#ifdef STATIC_OFFSETS + +class VMStructs { +public: + static void print_vm_offsets(void); +}; + +#define outfile stdout + From andrew at icedtea.classpath.org Tue Mar 20 06:35:29 2012 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 20 Mar 2012 13:35:29 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset ccdd6a1bd958 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ccdd6a1bd958 author: Andrew John Hughes date: Tue Mar 20 13:34:06 2012 +0000 Bring compiler detection into line with other jdk tools and check java/javac work before running other macros. 2012-03-20 Andrew John Hughes * acinclude.m4: (IT_FIND_COMPILER): Define only once and rename from IT_FIND_JAVAC. (IT_FIND_ECJ): Use same form as detection for java, javah, jar and rmic. (IT_FIND_JAVAC): Likewise. (IT_CHECK_JAVA_AND_JAVAC_WORK): New macro to check java and javac actually work together to compile code before running other tests such as the dtdtype one. (IT_CHECK_FOR_CLASS): Depend on java/javac working. (IT_CHECK_IF_INSTANTIABLE): Likewise. (IT_GETDTDTYPE_CHECK): Likewise. Add -target 5. (IT_JAVAH): Depend on java/javac working. * configure.ac: Invoke IT_FIND_COMPILER rather than IT_FIND_JAVAC. changeset f4bcb05229c9 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f4bcb05229c9 author: Andrew John Hughes date: Tue Mar 20 13:35:23 2012 +0000 Merge diffstat: ChangeLog | 22 ++++++++ Makefile.am | 2 +- acinclude.m4 | 149 +++++++++++++++++++++++++++++++++++++--------------------- configure.ac | 2 +- 4 files changed, 119 insertions(+), 56 deletions(-) diffs (289 lines): diff -r af04fa17f62f -r f4bcb05229c9 ChangeLog --- a/ChangeLog Tue Mar 20 10:43:41 2012 +0000 +++ b/ChangeLog Tue Mar 20 13:35:23 2012 +0000 @@ -1,3 +1,25 @@ +2012-03-20 Mark Wielaard + + * Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. + +2012-03-20 Andrew John Hughes + + * acinclude.m4: + (IT_FIND_COMPILER): Define only once and + rename from IT_FIND_JAVAC. + (IT_FIND_ECJ): Use same form as detection + for java, javah, jar and rmic. + (IT_FIND_JAVAC): Likewise. + (IT_CHECK_JAVA_AND_JAVAC_WORK): New macro to check + java and javac actually work together to compile code + before running other tests such as the dtdtype one. + (IT_CHECK_FOR_CLASS): Depend on java/javac working. + (IT_CHECK_IF_INSTANTIABLE): Likewise. + (IT_GETDTDTYPE_CHECK): Likewise. Add -target 5. + (IT_JAVAH): Depend on java/javac working. + * configure.ac: Invoke IT_FIND_COMPILER rather than + IT_FIND_JAVAC. + 2012-03-19 Andrew John Hughes * acinclude.m4: diff -r af04fa17f62f -r f4bcb05229c9 Makefile.am --- a/Makefile.am Tue Mar 20 10:43:41 2012 +0000 +++ b/Makefile.am Tue Mar 20 13:35:23 2012 +0000 @@ -2157,7 +2157,7 @@ mkdir -p stamps touch $@ -clean-jtreg: +clean-jtreg: clean-jtreg-reports rm -rf test/jtreg/classes if [ -e test/jtreg ] ; then \ rmdir test/jtreg ; \ diff -r af04fa17f62f -r f4bcb05229c9 acinclude.m4 --- a/acinclude.m4 Tue Mar 20 10:43:41 2012 +0000 +++ b/acinclude.m4 Tue Mar 20 13:35:23 2012 +0000 @@ -129,49 +129,46 @@ AC_SUBST(OS_PATH) ]) -AC_DEFUN([IT_FIND_JAVAC], +AC_DEFUN_ONCE([IT_FIND_COMPILER], [ - JAVAC=${SYSTEM_JDK_DIR}/bin/javac IT_FIND_JAVAC IT_FIND_ECJ - AC_SUBST(JAVAC) -]) - -AC_DEFUN([IT_FIND_ECJ], -[ - AC_ARG_WITH([ecj], - [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)], - [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - IT_CHECK_ECJ(${withval}) - else - if test "x${withval}" != xno; then - IT_CHECK_ECJ - fi - fi - ], - [ - IT_CHECK_ECJ - ]) if test "x${JAVAC}" = "x"; then if test "x{ECJ}" != "x"; then JAVAC="${ECJ} -nowarn" fi fi + AC_SUBST(ECJ) + AC_SUBST(JAVAC) ]) -AC_DEFUN([IT_CHECK_ECJ], +AC_DEFUN_ONCE([IT_FIND_ECJ], [ - if test "x$1" != x; then - if test -f "$1"; then - AC_MSG_CHECKING(for ecj) - ECJ="$1" - AC_MSG_RESULT(${ECJ}) + ECJ_DEFAULT=/usr/bin/ecj + AC_MSG_CHECKING([if an ecj binary was specified]) + AC_ARG_WITH([ecj], + [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)], + [ + if test "x${withval}" = "xyes"; then + ECJ=no else - AC_PATH_PROG(ECJ, "$1") + ECJ="${withval}" fi + ], + [ + ECJ=no + ]) + AC_MSG_RESULT(${ECJ}) + if test "x${ECJ}" = "xno"; then + ECJ=${ECJ_DEFAULT} + fi + AC_MSG_CHECKING([if $ECJ is a valid executable file]) + if test -x "${ECJ}" && test -f "${ECJ}"; then + AC_MSG_RESULT([yes]) else + AC_MSG_RESULT([no]) + ECJ="" AC_PATH_PROG(ECJ, "ecj") if test -z "${ECJ}"; then AC_PATH_PROG(ECJ, "ecj-3.1") @@ -182,43 +179,45 @@ if test -z "${ECJ}"; then AC_PATH_PROG(ECJ, "ecj-3.3") fi + if test -z "${ECJ}"; then + AC_PATH_PROG(ECJ, "ecj-3.4") + fi fi ]) -AC_DEFUN([IT_FIND_JAVAC], +AC_DEFUN_ONCE([IT_FIND_JAVAC], [ + JAVAC_DEFAULT=${SYSTEM_JDK_DIR}/bin/javac + AC_MSG_CHECKING([if a javac binary was specified]) AC_ARG_WITH([javac], [AS_HELP_STRING(--with-javac,bytecode compilation with javac)], [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - IT_CHECK_JAVAC(${withval}) + if test "x${withval}" = "xyes"; then + JAVAC=no else - if test "x${withval}" != xno; then - IT_CHECK_JAVAC - fi + JAVAC="${withval}" fi ], - [ - IT_CHECK_JAVAC + [ + JAVAC=no + ]) + AC_MSG_RESULT(${JAVAC}) + if test "x${JAVAC}" = "xno"; then + JAVAC=${JAVAC_DEFAULT} + fi + AC_MSG_CHECKING([if $JAVAC is a valid executable file]) + if test -x "${JAVAC}" && test -f "${JAVAC}"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + JAVAC="" + AC_PATH_PROG(JAVAC, "javac") + fi + AC_SUBST(JAVAC) ]) ]) -AC_DEFUN([IT_CHECK_JAVAC], -[ - if test "x$1" != x; then - if test -f "$1"; then - AC_MSG_CHECKING(for javac) - JAVAC="$1" - AC_MSG_RESULT(${JAVAC}) - else - AC_PATH_PROG(JAVAC, "$1") - fi - else - AC_PATH_PROG(JAVAC, "javac") - fi -]) - -AC_DEFUN([IT_FIND_JAVA], +AC_DEFUN_ONCE([IT_FIND_JAVA], [ JAVA_DEFAULT=${SYSTEM_JDK_DIR}/bin/java AC_MSG_CHECKING([if a java binary was specified]) @@ -1241,6 +1240,44 @@ fi ]) +dnl check that javac and java work +AC_DEFUN_ONCE([IT_CHECK_JAVA_AND_JAVAC_WORK],[ + AC_REQUIRE([IT_FIND_JAVA]) + AC_REQUIRE([IT_FIND_COMPILER]) + AC_CACHE_CHECK([if the VM and compiler work together], it_cv_jdk_works, [ + CLASS=Test.java + BYTECODE=$(echo $CLASS|sed 's#\.java##') + mkdir tmp.$$ + cd tmp.$$ + cat << \EOF > $CLASS +[/* [#]line __oline__ "configure" */ + +public class Test +{ + public static void main(String[] args) + { + System.out.println("Hello World!"); + } +}] +EOF + if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then + it_cv_jdk_works=yes; + else + it_cv_jdk_works=no; + AC_MSG_ERROR([VM failed to run compiled class.]) + fi + else + it_cv_jdk_works=no; + AC_MSG_ERROR([Compiler failed to compile Java code.]) + fi + rm -f $CLASS *.class + cd .. + rmdir tmp.$$ + ]) +AC_PROVIDE([$0])dnl +]) + dnl Generic macro to check for a Java class dnl Takes two arguments: the name of the macro dnl and the name of the class. The macro name @@ -1248,6 +1285,7 @@ dnl replaced by '_' and all letters capitalised. dnl e.g. IT_CHECK_FOR_CLASS([JAVA_UTIL_SCANNER],[java.util.Scanner]) AC_DEFUN([IT_CHECK_FOR_CLASS],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if $2 is missing], it_cv_$1, [ CLASS=Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') @@ -1291,6 +1329,7 @@ dnl e.g. IT_CHECK_FOR_INSTANTIABLE_CLASS([JAVA_LANG_INTEGER], dnl [java.lang.Integer],[0],[./bin]) AC_DEFUN([IT_CHECK_IF_INSTANTIABLE],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if $2 is instantiable], it_cv_$1, [ CLASS=Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') @@ -1350,7 +1389,8 @@ AC_PROVIDE([$0])dnl ]) -AC_DEFUN([IT_GETDTDTYPE_CHECK],[ +AC_DEFUN_ONCE([IT_GETDTDTYPE_CHECK],[ + AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if javax.xml.stream.events.Attribute.getDTDType() wrongly returns a QName], it_cv_dtdtype, [ CLASS=Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') @@ -1407,7 +1447,7 @@ } }] EOF - if $JAVAC -cp . $JAVACFLAGS -source 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then it_cv_dtdtype=no; else @@ -1672,6 +1712,7 @@ ]) AC_DEFUN([IT_JAVAH],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if $JAVAH exhibits Classpath bug 39408], it_cv_cp39408_javah, [ SUPERCLASS=Test.java SUBCLASS=TestImpl.java diff -r af04fa17f62f -r f4bcb05229c9 configure.ac --- a/configure.ac Tue Mar 20 10:43:41 2012 +0000 +++ b/configure.ac Tue Mar 20 13:35:23 2012 +0000 @@ -144,7 +144,7 @@ IT_CHECK_IF_BOOTSTRAPPING IT_CHECK_FOR_JDK IT_FIND_JAVA -IT_FIND_JAVAC +IT_FIND_COMPILER IT_FIND_JAVAH IT_FIND_JAR IT_FIND_RMIC From aph at redhat.com Tue Mar 20 06:36:04 2012 From: aph at redhat.com (Andrew Haley) Date: Tue, 20 Mar 2012 13:36:04 +0000 Subject: ARM: Support for OpenJDK 7 [resend] In-Reply-To: <4F6861E0.3020403@RedHat.Com> References: <9da15e77-a1fd-4859-a182-dcc580c143aa@zmail17.collab.prod.int.phx2.redhat.com> <4F6861E0.3020403@RedHat.Com> Message-ID: <4F6887C4.5090108@redhat.com> On 03/20/2012 10:54 AM, Chris Phillips wrote: > These changes look good and are running well as merged into > icedtea7-forest-release-2.1 > using the patch set you provided. > Have "self" built x64, x64-zero and arm-zero w/asm jit with the fixes. Pushed, thanks. Andrew. From bugzilla-daemon at icedtea.classpath.org Tue Mar 20 07:33:58 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 20 Mar 2012 14:33:58 +0000 Subject: [Bug 900] New: Fatal: Application Error: Unknown Main-Class. Could not determine the main class for this application. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=900 Bug #: 900 Summary: Fatal: Application Error: Unknown Main-Class. Could not determine the main class for this application. Classification: Unclassified Product: IcedTea-Web Version: 1.2 Platform: x86 OS/Version: Linux Status: NEW Severity: major Priority: P3 Component: NetX (javaws) AssignedTo: omajid at redhat.com ReportedBy: grin at grin.hu CC: unassigned at icedtea.classpath.org After upgrading to icedtea-7 and it's NetX implementation at least one program started to act weird (and started not to work anymore through webstart, though working fine using plain java). The message (I have seen no relevant info in the debug): net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize application. at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:778) at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:552) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:889) Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: Unknown Main-Class. Could not determine the main class for this application. at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:505) at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:198) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:317) at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:770) ... 2 more Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: Unknown Main-Class. Could not determine the main class for this application. at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:505) at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:198) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:317) at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:770) at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:552) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:889) But probably you can check for yourself: $ javaws http://soft.bt747.org/BT747_J2SE_Latest_RXTX2.2_Install.jnlp I am no java expert so all I see is that the jnlp looks like just fine. If there's any further help Ican provide please ask. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at redhat.com Tue Mar 20 08:21:58 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 20 Mar 2012 16:21:58 +0100 Subject: Reviewer needed: IcedTea6 HEAD - Fix for NameSpaceSymbTable class from Apache XML internal security library. In-Reply-To: <304448c1-244f-4c2e-adcd-4154cabfe20d@zmail17.collab.prod.int.phx2.redhat.com> References: <304448c1-244f-4c2e-adcd-4154cabfe20d@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F68A096.6040408@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Andrew Hughes wrote: >>> ----- Original Message ----- >>>> Hi all, >>>> >>>> I'd like to push following patch to IcedTea6 HEAD. This patch >>>> fixes >>>> one issue in >>>> NameSpaceSymbTable class from Apache XML internal, security >>>> library. >>>> >>>> hg diff created against recent IcedTea6 HEAD is stored in an >>>> attachment. >>>> >>>> >>>> ChangeLog entry: >>>> >>>> 2012-03-20 Pavel Tisnovsky >>>> >>>> * patches/apache-xml-internal-fix.patch: >>>> Fix for NameSpaceSymbTable class from Apache XML internal >>>> security library. >>>> >>>> Can anybody please review this change? >>>> >>> Is this from the mega-patch you posted before? >> yes, this is part of the mega-patch >> >>> Has this gone upstream? >> if you mean by upstream Apache XML sec. project - yes, it's part of >> changes made in this project (these changes are >> quite hard to spot as the sources were regularly reformatted :-|) >> > > No, I mean OpenJDK6. No, it's not part of OpenJDK6. I thought it should go to IcedTea6 first. > >>>> Thank you in advance, >>>> Pavel >>>> >>>> >>>> >>>> [Text File:hg.diff] >>>> >> > From jvanek at redhat.com Tue Mar 20 09:24:27 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 20 Mar 2012 17:24:27 +0100 Subject: Extending jnlp reproducers for html+applet reproducers Message-ID: <4F68AF3B.6030607@redhat.com> Hi All! As promised some time ago, and "proof of concepted" week ago, I have written small extension to reproducers framework, which allows to launch applet reproducers inside browsers. The hg diff in attachment is not considered for review (however any brave soul *can do this!*), but is added for overview information. I will post individual parts of this one by one for next months. Also individual parts into to which I have split browserTests.diff have small overleaps. _concept_ At first all available (supported and avaiable) browsers are discovered by configure: eg AC_CHECK_PROGS([OPERA],[opera],[], []) .... for opera, chrome, chromium and firefox. *New make targets* for creating *symlinks* to --prefixed location were added (stamps/user-links.stamp and stamps/global-links.stamp). Those depends on make install and stamps/run-netx-dist-tests.stamp depends on global-links. Those targets are mentioned only for testing purposes. Those ensure that tested browsers will use just built plugin. There is test for this correctness inside reproducers (testBrowser family of tests inside jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java) So just before running reproducers the links are created (bad luck that for opera this linking need roots privileges :( )and used browsers are passed into testing framework by -Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA) This variable is inside tranlsated by BrowserFactory to proxies representing individual browser (providing theirs binary, theirs plugin dirs, theirs individual settings. Tests are invoked in browser by lunching already introduced server.executeBrowser(resource). But there is little bit of magic around this procedure - annotation @TestInBrowsers(testIn={...}) Where values are singletons pointing to individual concrete proxies. or special case ONE, which represents any one of configured browsers - so method will be invoked just once times with this browser injected, NONE - which is mostly just for testing purposes and will inject non existing browser. Or ALL which will inject all configured browsers. In case that ALL returns zero of browsers, or individual requested proxies are not configured, or when requested is one ONE and no Browser is returned, then NONE browser is injected. (causing none-browser result) This injection is very real, and if Eg FIREFOX,CHROMIUM and OPERA are requested by annotation, then the testing method is really launched three times - once for each browser. if ALL is requested by annotation, then method is really iterated for each configured browser. This injection is also propagated into reporting, where is displayed method - browser. When no browser is configured, then all "browser" tests will fail as for "unset_browser" (which is representation of mentioned NONE) This injection and iterating over methods is done inside custom junit runner BrowserTestRunner, which is invoking the tested method several times, and is always injecting desired browser into its ServerAccess (included by inheriting of BrowserTest). So the only thing which final reproducer writer is to do is: - prepare reproducer as is common now - instead of jnlp file prepare html file which will launch appelt - make his testcase to extends BrowserTest - annotate methods which have something to do with browser which browsers they should be tested against - there is still possibility to work without this annotation and get browsers directly from factory or to inject custom browsers, or tu run whatever he wants :) -the port handling and other deployment stuff have been used form current jnlp reproducers _fixes_ There was bug in ProcessAssasin which leaked killed process. It acctual did not kill it, just left it be and return control to main theread :-/ It is fixed by correctly added (!to proper place!) destroy() method of process. This leak have come to light when I started to launch browsers. _other minor and useful stuff_ *@Bug* annotation - can handle IDs of bugs or urls to web which contains more info about "why this reproducer or unit test was added", are *nicely* propagated also to html report (see attached report.zip). NAme convention is as we are used to from NEWS files. *@NeedsDispaly* - annotation which tell that this method can not be run if no display is specified. *UnitTests* also have benefits of Bug annotation and of *ServerAccess*. - added classpath dependence *Blacklist* to exclude some reproducers is introduced (REPRODUCERS_CLASS_BLACKLIST) *enabled decision weather to kill the process or just to skip him *embeded virtual server now returns correct mimetypes (this was really mayor issue just wrongly ignored by firefox) *fied *leaking* proceses (missing process.destroy() Changelogs: in order of expected order of to be applied browserTests-criticalFixes: fixing issue when process was not launched at all and when was killed but left behind hanging *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: (getContentOfStream) this method overlaoded with possibility to specify encoding (I needed to set aASCI in one test) (deadlyException) field intoruced in ThreadedProcess to record exception caused by impassibility of launching the process. And so process have been null without any sign why. (TinyHtmlServer) now correctly returns known mime types (ProcessAssasin) can now skip or smoothly (and finally correctly) destroy its process, and all his logging messages were done null-proof (as deadlyException now allows) Asynchronous (ContentReader) have been silenced when complaining about closed streams by Assassin. browserTests-MakeLinks: Added detection of installed browsers and added targets to create symbolic links from install dir to browsers' plugin directories. Primarily for testing purposes *Makefile.am: (clean-local) optionally delets links' stamps (stamps/user-links.stamp) with alias (links) - new target for creating symlinks for all users. One must be root to execute this target. (stamps/global-links.stamp) with alias (user-links) - new target for creating symlinks for logged user only. Because opera is missing this feature, quite useless. *configure.ac: added basic check whether and which browsers are installed browserTests-blacklist: Added possibility to exclude some classes) from being processed by reproducers engine. Usefull when testing just one testcase or when interfaces or abstract classes are included (throwing initialization exception) *Makefile.am: (REPRODUCERS_CLASS_BLACKLIST) new variable holding the file with list (REPRODUCERS_CLASS_NAMES) added loop through REPRODUCERS_CLASS_BLACKLIST file which contains regular expressions which, when matched, causing file not to be included in list. *netx-dist-tests-blacklist: new file containing expressions. browserTests-BugAnnotation: Intorduced new annotations Bug (to connect test/reproducer with documentation) and NeedsDisplay which tells the launching engine thet this particualr test needs Display. BAsed on Pavel's ideas and jtreg experiences *Makefile.am: (JUNIT_RUNNER_JAR), (stamps/run-netx-unit-tests.stamp) and (stamps/run-unit-test-code-coverage.stamp) are now dependent on (stamps/netx-dist-tests-compile) and classpaths inside them have been enriched for JNLP_TESTS_ENGINE_DIRwhich contains definitions of those annotations *tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: and *tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: and *tests/jnlp_tests/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java: filled Bug annotations *tests/junit-runner/JunitLikeXmlOutputListener.java: made to understan Bug annotation *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/NeedsDisplay.java: and *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/Bug.java: annotations definitions *tests/report-styles/jreport.xsl" made nice links from bug annotation prepared by JunitLikeXmlOutputListener browserTests-TestInBrowsersAnnotation introduced possibility to run comfortably applets+html reproducers *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: (currentBrowser) variable holding injected browser (getBrowserLocation) - returning path to process to be launched when browser requested (getBrowserParams) - gathering set default's browser settings (set/getCurrentBrowsers) - set browser by id/return id of set browser (set/getCurrentBrowser) - set browser instance /returns instance of current browser (executeBrowser) family of methods now cooperate with above methods for default set browser (executeBrowser(Browser) family to work with implicit browser *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/TestInBrowsers.java: annotation for determining which browser(s) to use with annotated method *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browser.java: interface for dealing with various browsers *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserFactory.java: singleton for mapping configured browsers x requested browser x browsers proxies *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTest.java: Forefather of all testcases which have methods to do tests iniside browser. Is allowing correct annotation -> proxy trasnver to VirtualServer for selected method and is requesting custom runner from junit framework *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java: custom test Ruuner which is responsible for translating annotation and run the method mutlipletimes for each requested browser and to name it properly *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browsers.java: enumeration of abstract browsers and theirs sets or subsets. tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/*: individual browsers proxies browserTests-tests: various test for browser engine *tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: fixed missing parenthesis *tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests2.html: new test excluding XslowX for applets *tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests: (doubleChrome) test for ensuring that two chrome browsers launched behind themselves will not cause errors as they vere withhout criticalFixes patch (AppletInBrowserTest) and (AppletInBrowserTestXslowX) testing methods for all browser */tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java: improved to print sometimes something out *tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: (testDeadLockTestTerminatedBody) enchanced to ensure that not so much is lost when process is terminated, but showing that something can be lost (which is correct) *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: (testNonExisitngBrowserWillNotDeadlock) testing taht when no browser is set, then no deadlock happens as happend before criticalFixes's deadlyException (testUnexistingProcessWillFailRecognizedly) is actually testing deadlyException (testNonExisitngBrowserWillNotCauseMess) some but with annotation which was also harmiing output of tool little bit without TestInBrowsersAnnotation fixed. (testBrowsers2) is testing all browsers configuration without annotation and (testBrowser3) do the same configuration tests annotation driven (testBrowser) body of above two methods. Is testing whether used browsers are correctly linked with latest build (testBrowsers1) is testing parsing of -D variable (testListeners) annotated that needs display *tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: annotated with Bug annotation browserTests is gathering all previous patches and can be applied and tested See samples in atached archive!-) However.... Omair have raised an opinion against this approach (damn.. after it was written) - http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017768.html Personally I disagree with searching for new engine and I think it is worthy to keep maintain our framework (as I have made quite progress on it) and is designed exactly for our needs. If it will be extended for awt robot (soon) and for remote tests (faaar future) it will be quite really nice!-) And maintaining it is quite fun O:) I'm also not aware of any framework matching our needs at least from 50% and bending something so much ...I don't like this idea. Looking forward to opinions! Best regards and good luck J. Ps: mjw is cced just for case it need approve to distro-pkg O:) -------------- next part -------------- A non-text attachment was scrubbed... Name: report.zip Type: application/zip Size: 10967 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/8ef6bdfe/report.zip -------------- next part -------------- A non-text attachment was scrubbed... Name: browserTests-TestInBrowsersAnnotation.diff Type: text/x-patch Size: 23759 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/8ef6bdfe/browserTests-TestInBrowsersAnnotation.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: browserTests-criticalFixes.diff Type: text/x-patch Size: 14198 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/8ef6bdfe/browserTests-criticalFixes.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: browserTests-BugAnnotation.diff Type: text/x-patch Size: 17588 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/8ef6bdfe/browserTests-BugAnnotation.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: browserTests-blacklist.diff Type: text/x-patch Size: 2815 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/8ef6bdfe/browserTests-blacklist.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: browserTests-MakeLinks.diff Type: text/x-patch Size: 3911 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/8ef6bdfe/browserTests-MakeLinks.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: browserTests-tests.diff Type: text/x-patch Size: 28292 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/8ef6bdfe/browserTests-tests.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: browserTests.diff Type: text/x-patch Size: 89998 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120320/8ef6bdfe/browserTests.diff From ptisnovs at redhat.com Tue Mar 20 10:19:47 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 20 Mar 2012 18:19:47 +0100 Subject: Extending jnlp reproducers for html+applet reproducers In-Reply-To: <4F68AF3B.6030607@redhat.com> References: <4F68AF3B.6030607@redhat.com> Message-ID: <4F68BC33.40500@redhat.com> Hi Jiri, I'm going to review all your changes when I'll have some free time :-) As Omair said we are likely pushing JUnit to its limit and it's probably that we will need another solution (still JUnit is usable for unit tests, not integration or smoke tests). Pavel PS: I need to buy +6 hr/day but can't find it on Amazon! Jiri Vanek wrote: > Hi All! > > As promised some time ago, and "proof of concepted" week ago, I have > written small extension to reproducers framework, which allows to launch > applet reproducers inside browsers. > > The hg diff in attachment is not considered for review (however any > brave soul *can do this!*), but is added for overview information. I > will post individual parts of this one by one for next months. > Also individual parts into to which I have split browserTests.diff have > small overleaps. > > _concept_ > At first all available (supported and avaiable) browsers are discovered > by configure: eg AC_CHECK_PROGS([OPERA],[opera],[], []) .... for opera, > chrome, chromium and firefox. > > *New make targets* for creating *symlinks* to --prefixed location were > added (stamps/user-links.stamp and stamps/global-links.stamp). Those > depends on make install and stamps/run-netx-dist-tests.stamp depends on > global-links. Those targets are mentioned only for testing purposes. > Those ensure that tested browsers will use just built plugin. There is > test for this correctness inside reproducers (testBrowser family of > tests inside jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java) > > So just before running reproducers the links are created (bad luck that > for opera this linking need roots privileges :( )and used browsers are > passed into testing framework by > -Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA) > > This variable is inside tranlsated by BrowserFactory to proxies > representing individual browser (providing theirs binary, theirs plugin > dirs, theirs individual settings. > > Tests are invoked in browser by lunching already introduced > server.executeBrowser(resource). > But there is little bit of magic around this procedure - annotation > @TestInBrowsers(testIn={...}) Where values are singletons pointing to > individual concrete proxies. or special case ONE, which represents any > one of configured browsers - so method will be invoked just once times > with this browser injected, NONE - which is mostly just for testing > purposes and will inject non existing browser. Or ALL which will inject > all configured browsers. > In case that ALL returns zero of browsers, or individual requested > proxies are not configured, or when requested is one ONE and no Browser > is returned, then NONE browser is injected. (causing none-browser result) > > This injection is very real, and if Eg FIREFOX,CHROMIUM and OPERA are > requested by annotation, then the testing method is really launched > three times - once for each browser. if ALL is requested by annotation, > then method is really iterated for each configured browser. > This injection is also propagated into reporting, where is displayed > method - browser. When no browser is configured, then all "browser" > tests will fail as for "unset_browser" (which is representation of > mentioned NONE) > This injection and iterating over methods is done inside custom junit > runner BrowserTestRunner, which is invoking the tested method several > times, and is always injecting desired browser into its ServerAccess > (included by inheriting of BrowserTest). So the only thing which final > reproducer writer is to do is: > - prepare reproducer as is common now > - instead of jnlp file prepare html file which will launch appelt > - make his testcase to extends BrowserTest > - annotate methods which have something to do with browser which > browsers they should be tested against > - there is still possibility to work without this annotation and > get browsers directly from factory or to inject custom browsers, or tu > run whatever he wants :) > -the port handling and other deployment stuff have been used form > current jnlp reproducers > > _fixes_ > There was bug in ProcessAssasin which leaked killed process. It acctual > did not kill it, just left it be and return control to main theread :-/ > It is fixed by correctly added (!to proper place!) destroy() method of > process. This leak have come to light when I started to launch browsers. > > _other minor and useful stuff_ > *@Bug* annotation - can handle IDs of bugs or urls to web which > contains more info about "why this reproducer or unit test was added", > are *nicely* propagated also to html report (see attached report.zip). > NAme convention is as we are used to from NEWS files. > *@NeedsDispaly* - annotation which tell that this method can not be run > if no display is specified. > *UnitTests* also have benefits of Bug annotation and of *ServerAccess*. > - added classpath dependence > *Blacklist* to exclude some reproducers is introduced > (REPRODUCERS_CLASS_BLACKLIST) > *enabled decision weather to kill the process or just to skip him > *embeded virtual server now returns correct mimetypes (this was really > mayor issue just wrongly ignored by firefox) > *fied *leaking* proceses (missing process.destroy() > > Changelogs: in order of expected order of to be applied > browserTests-criticalFixes: > > fixing issue when process was not launched at all and when was > killed but left behind hanging > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: > (getContentOfStream) this method overlaoded with possibility to > specify encoding (I needed to set aASCI in one test) > (deadlyException) field intoruced in ThreadedProcess to record > exception caused by impassibility of launching the process. And so > process have been null without any sign why. > (TinyHtmlServer) now correctly returns known mime types > (ProcessAssasin) can now skip or smoothly (and finally correctly) > destroy its process, and all his logging messages were done null-proof > (as deadlyException now allows) > Asynchronous (ContentReader) have been silenced when complaining > about closed streams by Assassin. > > > browserTests-MakeLinks: > > Added detection of installed browsers and added targets to create > symbolic links from install dir to browsers' plugin directories. > Primarily for testing purposes > *Makefile.am: (clean-local) optionally delets links' stamps > (stamps/user-links.stamp) with alias (links) - new target for > creating symlinks for all users. One must be root to execute this target. > (stamps/global-links.stamp) with alias (user-links) - new target for > creating symlinks for logged user only. Because opera is missing this > feature, quite useless. > *configure.ac: added basic check whether and which browsers are > installed > > > browserTests-blacklist: > > Added possibility to exclude some classes) from being processed by > reproducers engine. Usefull when testing just one testcase or when > interfaces or abstract classes are included (throwing initialization > exception) > *Makefile.am: (REPRODUCERS_CLASS_BLACKLIST) new variable holding the > file with list > (REPRODUCERS_CLASS_NAMES) added loop through > REPRODUCERS_CLASS_BLACKLIST file which contains regular expressions > which, when matched, causing file not to be included in list. > *netx-dist-tests-blacklist: new file containing expressions. > > > browserTests-BugAnnotation: > > Intorduced new annotations Bug (to connect test/reproducer with > documentation) and NeedsDisplay which tells the launching engine thet > this particualr test needs Display. BAsed on Pavel's ideas and jtreg > experiences > *Makefile.am: (JUNIT_RUNNER_JAR), (stamps/run-netx-unit-tests.stamp) > and (stamps/run-unit-test-code-coverage.stamp) are now dependent on > (stamps/netx-dist-tests-compile) and classpaths inside them have been > enriched for JNLP_TESTS_ENGINE_DIRwhich contains definitions of those > annotations > *tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: > and > *tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: > and > *tests/jnlp_tests/simple/Spaces can be > everywhere/testcases/SpacesCanBeEverywhereTests.java: filled Bug > annotations > *tests/junit-runner/JunitLikeXmlOutputListener.java: made to > understan Bug annotation > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/NeedsDisplay.java: > and > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/Bug.java: > annotations definitions > *tests/report-styles/jreport.xsl" made nice links from bug > annotation prepared by JunitLikeXmlOutputListener > > > browserTests-TestInBrowsersAnnotation > > introduced possibility to run comfortably applets+html reproducers > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: > (currentBrowser) variable holding injected browser > (getBrowserLocation) - returning path to process to be launched when > browser requested > (getBrowserParams) - gathering set default's browser settings > (set/getCurrentBrowsers) - set browser by id/return id of set browser > (set/getCurrentBrowser) - set browser instance /returns instance of > current browser > (executeBrowser) family of methods now cooperate with above methods > for default set browser > (executeBrowser(Browser) family to work with implicit browser > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/TestInBrowsers.java: > annotation for determining which browser(s) to use with annotated method > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browser.java: > interface for dealing with various browsers > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserFactory.java: > > singleton for mapping configured browsers x requested browser x > browsers proxies > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTest.java: > > Forefather of all testcases which have methods to do tests iniside > browser. Is allowing correct annotation -> proxy trasnver to > VirtualServer for selected method and is requesting custom runner from > junit framework > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java: > > custom test Ruuner which is responsible for translating annotation > and run the method mutlipletimes for each requested browser and to name > it properly > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browsers.java: > enumeration of abstract browsers and theirs sets or subsets. > tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/*: > individual browsers proxies > > > browserTests-tests: > > various test for browser engine > *tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: > fixed missing parenthesis > *tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests2.html: > new test excluding XslowX for applets > *tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests: > (doubleChrome) test for ensuring that two chrome browsers launched > behind themselves will not cause errors as they vere withhout > criticalFixes patch > (AppletInBrowserTest) and (AppletInBrowserTestXslowX) testing > methods for all browser > */tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java: > improved to print sometimes something out > *tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: > (testDeadLockTestTerminatedBody) enchanced to ensure that not so much is > lost when process is terminated, but showing that something can be lost > (which is correct) > *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: > (testNonExisitngBrowserWillNotDeadlock) testing taht when no browser > is set, then no deadlock happens as happend before criticalFixes's > deadlyException > (testUnexistingProcessWillFailRecognizedly) is actually testing > deadlyException > (testNonExisitngBrowserWillNotCauseMess) some but with annotation > which was also harmiing output of tool little bit without > TestInBrowsersAnnotation fixed. > (testBrowsers2) is testing all browsers configuration without > annotation and (testBrowser3) do the same configuration tests > annotation driven > (testBrowser) body of above two methods. Is testing whether used > browsers are correctly linked with latest build > (testBrowsers1) is testing parsing of -D variable > (testListeners) annotated that needs display > *tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: > annotated with Bug annotation > > > > browserTests is gathering all previous patches and can be applied and > tested > See samples in atached archive!-) > > > > However.... Omair have raised an opinion against this approach (damn.. > after it was written) - > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017768.html > > > Personally I disagree with searching for new engine and I think it is > worthy to keep maintain our framework (as I have made quite progress on > it) and is designed exactly for our needs. If it will be extended for > awt robot (soon) and for remote tests (faaar future) it will be quite > really nice!-) > And maintaining it is quite fun O:) > > I'm also not aware of any framework matching our needs at least from 50% > and bending something so much ...I don't like this idea. > > Looking forward to opinions! > > > Best regards and good luck > J. > > > > > Ps: mjw is cced just for case it need approve to distro-pkg O:) > > > > From ptisnovs at redhat.com Wed Mar 21 02:27:36 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 21 Mar 2012 10:27:36 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) Message-ID: <4F699F08.4060603@redhat.com> Hi, I'd like to push following patch to IcedTea6 HEAD. This patch fixes the bug #881: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 Patch contains only minimal (but still functional) changes needed to be made in Apache XML Security libraries. I've excluded other changes which is IMHO important, but not directly related to #881. (FYI: there's no API changes) ChangeLog entry: 2012-03-21 Pavel Tisnovsky PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 * Makefile.am: Updated * patches/idresolver_fix.patch: added patch for a class IdResolver. Could anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120321/55faa559/hg.diff From ptisnovs at icedtea.classpath.org Wed Mar 21 02:33:48 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 21 Mar 2012 09:33:48 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/ClippingPathByRectang... Message-ID: changeset 340dbde1b7e4 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=340dbde1b7e4 author: Pavel Tisnovsky date: Wed Mar 21 10:36:00 2012 +0100 * src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java: Added new tests to this test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java | 291 +++++++++- 2 files changed, 245 insertions(+), 51 deletions(-) diffs (471 lines): diff -r 8493e62e5065 -r 340dbde1b7e4 ChangeLog --- a/ChangeLog Tue Mar 20 11:44:02 2012 +0100 +++ b/ChangeLog Wed Mar 21 10:36:00 2012 +0100 @@ -1,3 +1,8 @@ +2012-03-21 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java: + Added new tests to this test suite. + 2012-03-20 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingCircleBySelfIntersectingPolygonalShape.java: diff -r 8493e62e5065 -r 340dbde1b7e4 src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java --- a/src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java Tue Mar 20 11:44:02 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java Wed Mar 21 10:36:00 2012 +0100 @@ -40,6 +40,7 @@ package org.gfxtest.testsuites; +import java.awt.BasicStroke; import java.awt.Graphics2D; @@ -88,7 +89,7 @@ } /** - * Draw path consisting of one line only clipped by rectangle area. + * Draw path consisting of one line only clipped by rectangle shape. * * @param image * work image @@ -106,7 +107,7 @@ } /** - * Draw quadratic path clipped by rectangle area. + * Draw quadratic path clipped by rectangle shape. * * @param image * work image @@ -124,7 +125,7 @@ } /** - * Draw cubic path clipped by rectangle area. + * Draw cubic path clipped by rectangle shape. * * @param image * work image @@ -142,7 +143,7 @@ } /** - * Draw closed path clipped by rectangle area. + * Draw closed path clipped by rectangle shape. * * @param image * work image @@ -160,7 +161,7 @@ } /** - * Draw crossed closed path clipped by rectangle area. + * Draw crossed closed path clipped by rectangle shape. * * @param image * work image @@ -178,7 +179,7 @@ } /** - * Check if line path could be clipped by a rectangle area. Path is + * Check if line path could be clipped by a rectangle shape. Path is * rendered using stroke paint with default stroke width. * * @param image @@ -198,7 +199,7 @@ } /** - * Check if quadratic path could be clipped by a rectangle area. Path is + * Check if quadratic path could be clipped by a rectangle shape. Path is * rendered using stroke paint with default stroke width. * * @param image @@ -218,7 +219,7 @@ } /** - * Check if cubic path could be clipped by a rectangle area. Path is + * Check if cubic path could be clipped by a rectangle shape. Path is * rendered using stroke paint with default stroke width. * * @param image @@ -238,7 +239,7 @@ } /** - * Check if closed path could be clipped by a rectangle area. Path is + * Check if closed path could be clipped by a rectangle shape. Path is * rendered using stroke paint with default stroke width. * * @param image @@ -258,7 +259,7 @@ } /** - * Check if crossed closed path could be clipped by a rectangle area. Path is + * Check if crossed closed path could be clipped by a rectangle shape. Path is * rendered using stroke paint with default stroke width. * * @param image @@ -278,6 +279,126 @@ } /** + * Check if line path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipLinePathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawLinePathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipQuadraticPathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if closed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipClosedPathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawClosedPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if crossed closed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawCrossedClosedPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if line path could be clipped by a rectangle shape. Path is rendered * using stroke paint with thick stroke width. * @@ -518,8 +639,8 @@ } /** - * Check if line path could be clipped by a rectangle shape. Path is rendered - * using stroke paint with zero width stroke. + * Check if line path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with default stroke width. * * @param image * work image @@ -527,23 +648,21 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testClipLinePathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipLinePathByRectangleShapeDashedStrokePaint(TestImage image, Graphics2D graphics2d) { - // render rectangle which is used as a clip shape + // render clip rectangle CommonClippingOperations.renderClipRectangle(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); - // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path - drawCrossedClosedPathClippedByRectangleShape(image, graphics2d); + drawLinePathClippedByRectangleShape(image, graphics2d); // test result return TestResult.PASSED; } /** - * Check if quadratic Bezier path could be clipped by a rectangle shape. Path - * is rendered using stroke paint with zero width stroke. + * Check if closed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with default stroke width. * * @param image * work image @@ -551,23 +670,21 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testClipQuadraticPathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipClosedPathByRectangleShapeDashedStrokePaint(TestImage image, Graphics2D graphics2d) { - // render rectangle which is used as a clip shape + // render clip rectangle CommonClippingOperations.renderClipRectangle(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); - // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path - drawQuadraticPathClippedByRectangleShape(image, graphics2d); + drawClosedPathClippedByRectangleShape(image, graphics2d); // test result return TestResult.PASSED; } /** - * Check if cubic Bezier path could be clipped by a rectangle shape. Path - * is rendered using stroke paint with zero width stroke. + * Check if line path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. * * @param image * work image @@ -575,23 +692,23 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testClipCubicPathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipLinePathByRectangleShapeDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) { - // render rectangle which is used as a clip shape + // render clip rectangle CommonClippingOperations.renderClipRectangle(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path - drawCubicPathClippedByRectangleShape(image, graphics2d); + drawLinePathClippedByRectangleShape(image, graphics2d); // test result return TestResult.PASSED; } /** - * Check if closed path could be clipped by a rectangle shape. Path - * is rendered using stroke paint with zero width stroke. + * Check if closed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. * * @param image * work image @@ -599,14 +716,14 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testClipClosedPathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipClosedPathByRectangleShapeDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) { - // render rectangle which is used as a clip shape + // render clip rectangle CommonClippingOperations.renderClipRectangle(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path drawClosedPathClippedByRectangleShape(image, graphics2d); // test result @@ -614,8 +731,8 @@ } /** - * Check if crossed closed path could be clipped by a rectangle shape. Path - * is rendered using stroke paint with zero width stroke. + * Check if line path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. * * @param image * work image @@ -623,16 +740,88 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testClipCrossedClosedPathByRectangleShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipLinePathByRectangleShapeDashedExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) { - // render rectangle which is used as a clip shape + // render clip rectangle CommonClippingOperations.renderClipRectangle(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePatternForExtraThickPaths(graphics2d); // set clip region and draw the path - drawCrossedClosedPathClippedByRectangleShape(image, graphics2d); + drawLinePathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if closed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipClosedPathByRectangleShapeDashedExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePatternForExtraThickPaths(graphics2d); + // set clip region and draw the path + drawClosedPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if line path could be clipped by a rectangle shape. Path is rendered + * using stroke paint with thick stroke width and using round cap style. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipLinePathByRectangleShapeDottedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d, BasicStroke.CAP_ROUND); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d, new float[] {1,20}); + // set clip region and draw the path + drawLinePathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if closed path could be clipped by a rectangle shape. Path is rendered + * using stroke paint with thick stroke width and using round cap style. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipClosedPathByRectangleShapeDottedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d, BasicStroke.CAP_ROUND); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d, new float[] {1,20}); + // set clip region and draw the path + drawClosedPathClippedByRectangleShape(image, graphics2d); // test result return TestResult.PASSED; } From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 02:45:26 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 09:45:26 +0000 Subject: [Bug 899] Internal Error (c1_Optimizer.cpp:271) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=899 earias at idecnet.com changed: What |Removed |Added ---------------------------------------------------------------------------- Version|7-1.10 |6-1.10.6 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at redhat.com Wed Mar 21 02:49:29 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 21 Mar 2012 10:49:29 +0100 Subject: Old packages available at http://icedtea.classpath.org/download/fedora/ Message-ID: <4F69A429.2090104@redhat.com> Hi, people seems to be confused with the packages which are available at http://icedtea.classpath.org/download/fedora/ (they ask me where are new packages as they are redirected to ^^^ by Google) Does it make sense to make a "advertising" with such old packages? Links to newer packages (koji?) would be AFAIK better... Could anybody please ponder about it? Cheers Pavel From stefan at complang.tuwien.ac.at Wed Mar 21 03:23:13 2012 From: stefan at complang.tuwien.ac.at (Stefan Ring) Date: Wed, 21 Mar 2012 11:23:13 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <4F699F08.4060603@redhat.com> References: <4F699F08.4060603@redhat.com> Message-ID: > Patch contains only minimal (but still functional) changes needed > to be made in Apache XML Security libraries. I've excluded other > changes which is IMHO important, but not directly related to #881. Where does the patch come from? Did you just write it or was it taken from another repo? From ahughes at redhat.com Wed Mar 21 04:03:29 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 07:03:29 -0400 (EDT) Subject: ARM: Support for OpenJDK 7 [resend] In-Reply-To: <4F6887C4.5090108@redhat.com> Message-ID: <8560cc26-513b-4926-9dff-fa83ad3dc463@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On 03/20/2012 10:54 AM, Chris Phillips wrote: > > These changes look good and are running well as merged into > > icedtea7-forest-release-2.1 > > using the patch set you provided. > > Have "self" built x64, x64-zero and arm-zero w/asm jit with the > > fixes. > > Pushed, thanks. > Is there a reason the assembly code is called src/cpu/zero/vm/cppInterpreter_arm.S rather than src/cpu/zero/vm/cppInterpreter_arm.s? If you did the latter, the divergence in vm.make would be unnecessary. Is there any progress on getting the gcc.make changes upstream? > Andrew. > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Wed Mar 21 04:05:26 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 07:05:26 -0400 (EDT) Subject: Reviewer needed: IcedTea6 HEAD - Fix for NameSpaceSymbTable class from Apache XML internal security library. In-Reply-To: <4F68A096.6040408@redhat.com> Message-ID: ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> Andrew Hughes wrote: > >>> ----- Original Message ----- > >>>> Hi all, > >>>> > >>>> I'd like to push following patch to IcedTea6 HEAD. This patch > >>>> fixes > >>>> one issue in > >>>> NameSpaceSymbTable class from Apache XML internal, security > >>>> library. > >>>> > >>>> hg diff created against recent IcedTea6 HEAD is stored in an > >>>> attachment. > >>>> > >>>> > >>>> ChangeLog entry: > >>>> > >>>> 2012-03-20 Pavel Tisnovsky > >>>> > >>>> * patches/apache-xml-internal-fix.patch: > >>>> Fix for NameSpaceSymbTable class from Apache XML > >>>> internal > >>>> security library. > >>>> > >>>> Can anybody please review this change? > >>>> > >>> Is this from the mega-patch you posted before? > >> yes, this is part of the mega-patch > >> > >>> Has this gone upstream? > >> if you mean by upstream Apache XML sec. project - yes, it's part > >> of > >> changes made in this project (these changes are > >> quite hard to spot as the sources were regularly reformatted :-|) > >> > > > > No, I mean OpenJDK6. > > No, it's not part of OpenJDK6. I thought it should go to IcedTea6 > first. > Well, it should go there too and they are better placed to review it. You haven't provided any explanation as to what this actually fixes and why this change is appropriate, so I can't really review it as it stands. > > > >>>> Thank you in advance, > >>>> Pavel > >>>> > >>>> > >>>> > >>>> [Text File:hg.diff] > >>>> > >> > > > > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From aph at redhat.com Wed Mar 21 04:08:57 2012 From: aph at redhat.com (Andrew Haley) Date: Wed, 21 Mar 2012 11:08:57 +0000 Subject: ARM: Support for OpenJDK 7 [resend] In-Reply-To: <8560cc26-513b-4926-9dff-fa83ad3dc463@zmail17.collab.prod.int.phx2.redhat.com> References: <8560cc26-513b-4926-9dff-fa83ad3dc463@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F69B6C9.6060208@redhat.com> On 03/21/2012 11:03 AM, Andrew Hughes wrote: > ----- Original Message ----- >> On 03/20/2012 10:54 AM, Chris Phillips wrote: >>> These changes look good and are running well as merged into >>> icedtea7-forest-release-2.1 >>> using the patch set you provided. >>> Have "self" built x64, x64-zero and arm-zero w/asm jit with the >>> fixes. >> >> Pushed, thanks. > > Is there a reason the assembly code is called src/cpu/zero/vm/cppInterpreter_arm.S > rather than src/cpu/zero/vm/cppInterpreter_arm.s? Yes. .S files are source that must be preprocessed. > If you did the latter, the divergence > in vm.make would be unnecessary. > > Is there any progress on getting the gcc.make changes upstream? I haven't yet had time. I need to collect together everything for upstream and start doing builds for up-to-date HotSpot. However, AIUI Zero doesn't build on up-to-date HotSpot, and I think we should get it working and then push the fixes. I don't think there's anything to be gained by pushing fixes to old HotSpot branches upstream. Andrew. From mark at klomp.org Wed Mar 21 04:09:12 2012 From: mark at klomp.org (Mark Wielaard) Date: Wed, 21 Mar 2012 12:09:12 +0100 Subject: old builder - build.sh fix (Was: IcedTea7 build failed for e909b2c85913) In-Reply-To: <03327190-2113-462d-8fe0-0d4208abfa66@zmail17.collab.prod.int.phx2.redhat.com> References: <03327190-2113-462d-8fe0-0d4208abfa66@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <1332328152.3000.4.camel@springer.wildebeest.org> On Tue, 2012-03-20 at 06:40 -0400, Andrew Hughes wrote: > ----- Original Message ----- > > The current IcedTea build fails. > > > > More info at http://builder.wildebeest.org/icedtea/icedtea7/ > > > > Possibly, but not necessarily, because of one of these changes: > > [...] > There seems to be some confusion here, Mark. This is a change that was > pushed to the IcedTea8 tree: > > http://icedtea.classpath.org/hg/icedtea/rev/e909b2c85913 > > not IcedTea7: > > http://icedtea.classpath.org/hg/icedtea7 You are correct. Sorry about that. This was because the old builder assumed everything not icedtea6 must be 7... I updated the script and updated the directories on builder.classpath.org to handle 6, (the real) 7 or trunk. With this all three icedtea trees should be handled. Note the new buildbot based slaves currently only build 6 and 7 (not trunk icedtea aka icedtea8), that needs some coordiantion with the buildbot slave machine maintainers and updating of the master.cfg file: http://icedtea.classpath.org/hg/buildbot/file/tip/icedtea/master.cfg Cheers, Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: build.patch Type: text/x-patch Size: 6502 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120321/6e7edfe6/build.patch From mjw at icedtea.classpath.org Wed Mar 21 04:09:34 2012 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Wed, 21 Mar 2012 11:09:34 +0000 Subject: /hg/buildbot: Make build.sh (old builder) handle 6, 7 or trunk i... Message-ID: changeset 93e227921517 in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=93e227921517 author: Mark Wielaard date: Wed Mar 21 12:03:41 2012 +0100 Make build.sh (old builder) handle 6, 7 or trunk icedtea builds. diffstat: icedtea/build.sh | 58 ++++++++++++++++++++++++++++++++----------------------- 1 files changed, 34 insertions(+), 24 deletions(-) diffs (157 lines): diff -r 1e60d0136e99 -r 93e227921517 icedtea/build.sh --- a/icedtea/build.sh Thu Jan 26 12:43:56 2012 +0100 +++ b/icedtea/build.sh Wed Mar 21 12:03:41 2012 +0100 @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (C) 2009, 2010, Mark J. Wielaard +# Copyright (C) 2009, 2010, 2012, Mark J. Wielaard # This IcedTea build script 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 3 of the @@ -13,7 +13,9 @@ # # Currently being run on builder.classpath.org with: # while true; do time ./build.sh 6; date; sleep 600; \ -# time ./build.sh 7; date; sleep 600; done 2>&1 | tee build.log +# time ./build.sh 7; date; sleep 600; \ +# time ./build.sh trunk; date; sleep 600; done 2>&1 \ +# | tee build.log # Where to send error reports, add committers later. EMAIL="testresults at icedtea.classpath.org" @@ -22,19 +24,27 @@ # http://www.davidpashley.com/articles/writing-robust-shell-scripts.html if [ $# -ne 1 ]; then - echo "build.sh takes one argument 6 or 7" + echo "build.sh takes one argument 6, 7 or trunk" exit -1; -elif [ "$1" != "6" -a "$1" != "7" ]; then - echo "build.sh argument must be 6 or 7" +elif [ "$1" != "6" -a "$1" != "7" -a "$1" != trunk ]; then + echo "build.sh argument must be 6, 7 or trunk" exit -1; fi +# Add dash (-) in case of trunk to version string, to make file/dir names +# more readable. +if [ "$1" == "trunk" ]; then + VERSIONSTR="-trunk" +else + VERSIONSTR="$1" +fi + BASE_BUILD_DIR=/usr/local/build -ICEDTEA_DIR=$BASE_BUILD_DIR/icedtea$1 -ICEDTEA_BUILD_DIR=$BASE_BUILD_DIR/icedtea$1-build +ICEDTEA_DIR=$BASE_BUILD_DIR/icedtea${VERSIONSTR} +ICEDTEA_BUILD_DIR=$BASE_BUILD_DIR/icedtea${VERSIONSTR}-build # Build artifacts, sources and test results will be stored here. -RESULTS_DIR=/usr/local/build/results/icedtea$1 +RESULTS_DIR=/usr/local/build/results/icedtea${VERSIONSTR} echo "Building $ICEDTEA_DIR" echo " in $ICEDTEA_BUILD_DIR" @@ -77,8 +87,8 @@ EMAIL="$EMAIL $USERS" # Announce the test build coming up. -#(echo -n "Doing a test build for IcedTea$1"; echo; echo "$CHANGES") \ -# | mail -s "IcedTea$1 build testing for $HG_CURRENT_ID" $EMAIL +#(echo -n "Doing a test build for IcedTea${VERSIONSTR}"; echo; echo "$CHANGES") \ +# | mail -s "IcedTea${VERSIONSTR} build testing for $HG_CURRENT_ID" $EMAIL # Remove both 6 and 7, there is only disk space for one build #echo "Removing old builds $BASE_BUILD_DIR/icedtea6-build $BASE_BUILD_DIR/icedtea7-build..." @@ -94,17 +104,17 @@ SOURCES_DIR=$RESULTS_DIR/src cp -r $SOURCES_DIR/*.tar.* $SOURCES_DIR/drops $ICEDTEA_BUILD_DIR/ -BUILD_LOG_FILE=$BASE_BUILD_DIR/build-icedtea$1.log +BUILD_LOG_FILE=$BASE_BUILD_DIR/build-icedtea${VERSIONSTR}.log echo "Putting build log in $BUILD_LOG_FILE" # Make sure a failure in any command in a pipe, fails the whole pipe command. set -o pipefail # Some additional VMs only build against one or the other version. -if [ "$1" == "6"]; then +if [ "${VERSIONSTR}" == "6"]; then ICEDTEA_ADDITIONAL_VMS="cacao,jamvm,shark" ADDITIONAL_OPTIONS="" -elif [ "$1" == "7" ]; then +elif [ "${VERSIONSTR}" == "7" ]; then ICEDTEA_ADDITIONAL_VMS="shark" ADDITIONAL_OPTIONS="--disable-system-lcms" fi @@ -127,10 +137,10 @@ # store the full build log and config.log file cp $ICEDTEA_BUILD_DIR/config.log $BUILD_LOG_FILE $RESULTS_DIR/ -RESULTS_URL="http://builder.wildebeest.org/icedtea/icedtea$1/" +RESULTS_URL="http://builder.wildebeest.org/icedtea/icedtea${VERSIONSTR}/" if [ $BUILD_RESULT -ne 0 ]; then - (echo "The current IcedTea$i build fails."; \ + (echo "The current IcedTea${VERSIONSTR} build fails."; \ echo; \ echo "More info at $RESULTS_URL"; \ echo; \ @@ -140,7 +150,7 @@ echo; echo; \ echo "Last part of build log: "; echo; \ tail -160 $BUILD_LOG_FILE) \ - | mail -s "IcedTea$1 build failed for $HG_CURRENT_ID" $EMAIL + | mail -s "IcedTea${VERSIONSTR} build failed for $HG_CURRENT_ID" $EMAIL exit -1 fi @@ -156,7 +166,7 @@ echo "Test results compare: $TEST_RESULT" if [ $TEST_RESULT -ne 0 ]; then - (echo "The current IcedTea$i build test results changed."; \ + (echo "The current IcedTea${VERSIONSTR} build test results changed."; \ echo; \ echo "Changed test results: "; echo; \ diff -u $TESTS_DIR/jtreg-summary.log \ @@ -167,24 +177,24 @@ echo "Possibly, but not necessarily, because of one of these changes:"; \ echo; \ echo "$CHANGES") \ - | mail -s "IcedTea$1 test results changed for $HG_CURRENT_ID" $EMAIL; + | mail -s "IcedTea${VERSIONSTR} test results changed for $HG_CURRENT_ID" $EMAIL; else - (echo "The current IcedTea$i build succeeded, no changes in test results."; \ + (echo "The current IcedTea${VERSIONSTR} build succeeded, no changes in test results."; \ echo; \ echo "More info at $RESULTS_URL"; \ echo; \ echo "New changes since last time:"; \ echo; \ echo "$CHANGES") \ - | mail -s "IcedTea$1 build succeeded for $HG_CURRENT_ID" $EMAIL; + | mail -s "IcedTea${VERSIONSTR} build succeeded for $HG_CURRENT_ID" $EMAIL; fi # Need to fixup jtreg report html files. # Escape paths for sed. # From path is absolute build path on (chrooted) file system. # To path is absolute (prefix) path on webserver. -FROM_PATH="\/usr\/local\/build\/icedtea$1-build\/test\/" -TO_PATH="\/icedtea\/icedtea$1\/test\/" +FROM_PATH="\/usr\/local\/build\/icedtea${VERSIONSTR}-build\/test\/" +TO_PATH="\/icedtea\/icedtea${VERSIONSTR}\/test\/" for i in `find $ICEDTEA_BUILD_DIR/test/*/JTreport -name \*.html`; do \ sed -i "s/$FROM_PATH/$TO_PATH/" $i; \ done @@ -211,5 +221,5 @@ cp -r $ICEDTEA_BUILD_DIR/*.tar.* $ICEDTEA_BUILD_DIR/drops $SOURCES_DIR/ # And the actual icedtea sources used. -rm -f $SOURCES_DIR/icedtea$1.tar.gz -cd $ICEDTEA_DIR && hg archive --type tgz $SOURCES_DIR/icedtea$1.tar.gz +rm -f $SOURCES_DIR/icedtea${VERSIONSTR}.tar.gz +cd $ICEDTEA_DIR && hg archive --type tgz $SOURCES_DIR/icedtea${VERSIONSTR}.tar.gz From mark at icedtea.classpath.org Wed Mar 21 04:09:54 2012 From: mark at icedtea.classpath.org (mark at icedtea.classpath.org) Date: Wed, 21 Mar 2012 11:09:54 +0000 Subject: /hg/icedtea7: 6 new changesets Message-ID: changeset d679a8e581ec in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=d679a8e581ec author: Mark Wielaard date: Tue Mar 13 16:29:10 2012 +0100 * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. The size of constantPoolOopDesc had changed, but it was hard coded. We use a trick now to calculate it from the DWARF data. Pretend we have an array at address zero and take address of second element and we have the size. changeset 91870f1e0c92 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=91870f1e0c92 author: Mark Wielaard date: Tue Mar 13 16:41:32 2012 +0100 jstack.stp support multiple running hotspots by indexing globals by pid(). changeset 3622f089d9f3 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=3622f089d9f3 author: Mark Wielaard date: Tue Mar 13 17:24:50 2012 +0100 * tapset/jstack.stp.in: Use @var construct if available. Newer versions of systemtap (since 1.8) make it possible to use the @var construct if available to pick target variables from the right CU. Which is needed by newer DWARF/gcc versions which don't add a defining variable declaration to each CU anymore. changeset 5cc05c7552ef in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=5cc05c7552ef author: Mark Wielaard date: Tue Mar 13 23:21:36 2012 +0100 * tapset/jstack.stp.in: Wrap heap accessors in try-catch block. When we cannot read some part of the hotspot code heap catch that error and report the frame (address) without trying to decode it. changeset 527807ac6196 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=527807ac6196 author: Mark Wielaard date: Wed Mar 14 10:55:24 2012 +0100 * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. changeset 732f30ec8b7b in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=732f30ec8b7b author: Mark Wielaard date: Fri Mar 16 13:15:15 2012 +0100 jstack: Change symbolOopDesc to Symbol to accomodate S6990754. Use native memory and reference counting to implement SymbolTable. diffstat: ChangeLog | 30 +++++ Makefile.am | 1 + tapset/jstack.stp.in | 287 ++++++++++++++++++++++++++++---------------------- 3 files changed, 190 insertions(+), 128 deletions(-) diffs (426 lines): diff -r 5f0d96a60071 -r 732f30ec8b7b ChangeLog --- a/ChangeLog Mon Feb 27 11:43:26 2012 -0500 +++ b/ChangeLog Fri Mar 16 13:15:15 2012 +0100 @@ -1,3 +1,33 @@ +2012-03-16 Mark Wielaard + + * tapset/jstack.stp.in: Change symbolOopDesc to Symbol to accomodate + S6990754 - Use native memory and reference counting to implement + SymbolTable. + +2012-03-14 Mark Wielaard + + * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. + +2012-03-13 Mark Wielaard + + * tapset/jstack.stp.in: Wrap heap accessors in try-catch block to be + able to report unusual frames. + +2012-03-13 Mark Wielaard + + * tapset/jstack.stp.in: Use @var construct if available to pick + target variable from the right CU (needed by newer DWARF/gcc + versions). + +2012-03-13 Mark Wielaard + + * tapset/jstack.stp.in: Index globals on pid() to support multiple + running hotspot jstacks at the same time. + +2012-03-13 Mark Wielaard + + * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. + 2012-02-24 Deepak Bhole PR885: IcedTea7 does not build scripting support diff -r 5f0d96a60071 -r 732f30ec8b7b Makefile.am --- a/Makefile.am Mon Feb 27 11:43:26 2012 -0500 +++ b/Makefile.am Fri Mar 16 13:15:15 2012 +0100 @@ -713,6 +713,7 @@ hotspot.map autogen.sh \ tapset/hotspot.stp.in \ tapset/hotspot_jni.stp.in \ + tapset/jstack.stp.in \ scripts/jni_create_stap.c \ scripts/jni_desc \ rewriter/agpl-3.0.txt \ diff -r 5f0d96a60071 -r 732f30ec8b7b tapset/jstack.stp.in --- a/tapset/jstack.stp.in Mon Feb 27 11:43:26 2012 -0500 +++ b/tapset/jstack.stp.in Fri Mar 16 13:15:15 2012 +0100 @@ -1,5 +1,5 @@ /* jstack systemtap tapset, for extracting hotspot java backtraces. - Copyright (C) 2009, Red Hat Inc. + Copyright (C) 2009, 2012 Red Hat Inc. This file is part of IcedTea. @@ -67,7 +67,9 @@ probe hotspot.vm_init_end { // The parent/type oop for a methodOop. - Universe_methodKlassObj = $_methodKlassObj; + Universe_methodKlassObj[pid()] = %( systemtap_v >= "1.8" + %? @var("_methodKlassObj at universe.cpp") + %: $_methodKlassObj %); // For compressed oops. // Universe_heap_base = $_heap_base; @@ -82,8 +84,10 @@ * * Note that we access it through its "short name" _collectedHeap. */ - Universe_collectedHeap = $_collectedHeap; - HeapWordSize = $HeapWordSize; + Universe_collectedHeap[pid()] = %( systemtap_v >= "1.8" + %? @var("_collectedHeap at universe.cpp") + %: $_collectedHeap %); + HeapWordSize[pid()] = $HeapWordSize; /** * The CodeCache class contains the static CodeHeap _heap that @@ -101,7 +105,9 @@ * the segment at index - N (which can be recursive if a block * contains more than 0xFE segments). */ - CodeCache_heap = $_heap; + CodeCache_heap[pid()] = %( systemtap_v >= "1.8" + %? @var("_heap at codeCache.cpp") + %: $_heap %); // Should really check arch of user space (for 32bit jvm on 64bit kernel). %( arch == "i386" %? @@ -110,22 +116,33 @@ pc_register = "eip"; ptr_size = 4; ptr_mask = 0xFFFFFFFF; - constantPoolOopDesc_size = 32; // Should use dwarf @size %: %(arch == "x86_64" %? sp_register = "rsp"; fp_register = "rbp"; pc_register = "rip"; ptr_size = 8; // XXX - might be probing 32-on-64 jvm. ptr_mask = 0xFFFFFFFFFFFFFFFF; - constantPoolOopDesc_size = 56; // Should use dwarf @size %: **ERROR** unknown architecture %) %) + // Pretend we have an array at address zero and take address of second + // element and we have the size. + constantPoolOopDesc_size = &@cast(0, "constantPoolOopDesc")[1]; + // Really should get from dwarf: @size("HeapBlock::Header"), @size("oopDesc") HeapBlock_Header_size = 2 * ptr_size; oopDesc_size = 2 * ptr_size; - vm_inited = 1; + vm_inited[pid()] = 1; +} + +probe hotspot.vm_shutdown +{ + delete(Universe_methodKlassObj[pid()]); + delete(Universe_collectedHeap[pid()]); + delete(HeapWordSize[pid()]); + delete(CodeCache_heap[pid()]); + delete(vm_inited[pid()]); } function jstack:string() @@ -223,7 +240,7 @@ function jstack_call:string(max_depth:long, log_sig:long, log_native:long, print_frames:long) { - if (! vm_inited) + if (! vm_inited[pid()]) { frame = ""; if (print_frames) @@ -236,23 +253,23 @@ } // Extract heap and code bounds. - heap_start = @cast(Universe_collectedHeap, + heap_start = @cast(Universe_collectedHeap[pid()], "CollectedHeap", "@ABS_SERVER_LIBJVM_SO@")->_reserved->_start; - heap_size = HeapWordSize * @cast(Universe_collectedHeap, + heap_size = HeapWordSize[pid()] * @cast(Universe_collectedHeap[pid()], "CollectedHeap", "@ABS_SERVER_LIBJVM_SO@")->_reserved->_word_size; heap_end = heap_start + heap_size; - CodeCache_low = @cast(CodeCache_heap, "CodeHeap", + CodeCache_low = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_memory->_low; - CodeCache_high = @cast(CodeCache_heap, "CodeHeap", + CodeCache_high = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_memory->_high; - CodeHeap_log2_segment_size = @cast(CodeCache_heap, + CodeHeap_log2_segment_size = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_log2_segment_size; - CodeCache_segmap_low = @cast(CodeCache_heap, + CodeCache_segmap_low = @cast(CodeCache_heap[pid()], "CodeHeap", "@ABS_SERVER_LIBJVM_SO@")->_segmap->_low; @@ -292,129 +309,143 @@ } block = CodeCache_low + (segment << CodeHeap_log2_segment_size); - // Do some sanity checking. - used = @cast(block, "HeapBlock", - "@ABS_SERVER_LIBJVM_SO@")->_header->_used; - if (used != 1) + // Some of this is "fuzzy" so catch any read error in case we + // "guessed" wrong. + try { - // Something very odd has happened. - frame = sprintf("0x%x ", pc); - blob_name = "unused"; - trust_fp = 0; - frame_size = 0; - } - else - { - // We don't like spaces in frames (makes it hard to return - // a space separated frame list). So make sure they are - // replaced by underscores when used in frames. - blob = block + HeapBlock_Header_size; - blob_name_ptr = @cast(blob, "CodeBlob", - "@ABS_SERVER_LIBJVM_SO@")->_name; - blob_name = ((blob_name_ptr == 0) ? "" - : user_string(blob_name_ptr)); - } - // For compiled code the methodOop is part of the code blob. - // For the interpreter (and other code blobs) it is on the - // stack relative to the frame pointer. - if (blob_name == "nmethod") - methodOopPtr = @cast(blob, "nmethod", - "@ABS_SERVER_LIBJVM_SO@")->_method - else - methodOopPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask - - // Start optimistic. A methodOop is only valid if it was - // heap allocated. And if the "type class" oop equals the - // Universe::methodKlassObj. - if (heap_start > methodOopPtr || methodOopPtr >= heap_end) - isMethodOop = 0 - else - { - methodOopKlass = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_metadata->_klass; - isMethodOop = (methodOopKlass == Universe_methodKlassObj); - } - - if (isMethodOop) - { - // The java class is the holder of the constants (strings) - // that describe the method and signature. This constant pool - // contains symbolic information that describe the properties - // of the class. The indexes for methods and signaturates in - // the constant pool are symbolOopDescs that contain utf8 - // strings (plus lenghts). (We could also sanity check that - // the tag value is correct [CONSTANT_String = 8]). - // Note that the class name uses '/' instead of '.' as - // package name separator and that the method signature is - // encoded as a method descriptor string. Both of which we - // don't demangle here. - constantPoolOopDesc = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_constants; - constantPoolOop_base = constantPoolOopDesc + constantPoolOopDesc_size; - - klassPtr = @cast(constantPoolOopDesc, "constantPoolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_pool_holder; - klassSymbol = @cast(klassPtr + oopDesc_size, "Klass", - "@ABS_SERVER_LIBJVM_SO@")->_name; - klassName = &@cast(klassSymbol, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - klassLength = @cast(klassSymbol, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_length; - - methodIndex = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index; - methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)); - methodName = &@cast(methodOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - methodLength = @cast(methodOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_length; - - if (log_sig) + // Do some sanity checking. + used = @cast(block, "HeapBlock", + "@ABS_SERVER_LIBJVM_SO@")->_header->_used; + if (used != 1) { - sigIndex = @cast(methodOopPtr, "methodOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index; - sigOopDesc = user_long(constantPoolOop_base - + (sigIndex * ptr_size)); - sigName = &@cast(sigOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - sigLength = @cast(sigOopDesc, "symbolOopDesc", - "@ABS_SERVER_LIBJVM_SO@")->_length; - sig = user_string_n(sigName, sigLength); + // Something very odd has happened. + frame = sprintf("", pc); + blob_name = "unused"; + trust_fp = 0; + frame_size = 0; } else - sig = ""; + { + // We don't like spaces in frames (makes it hard to return + // a space separated frame list). So make sure they are + // replaced by underscores when used in frames. + blob = block + HeapBlock_Header_size; + blob_name_ptr = @cast(blob, "CodeBlob", + "@ABS_SERVER_LIBJVM_SO@")->_name; + blob_name = ((blob_name_ptr == 0) ? "" + : user_string(blob_name_ptr)); + } - code_name = (log_native - ? sprintf("<%s at 0x%x>", - str_replace(blob_name, " ", "_"), pc) - : ""); + // For compiled code the methodOop is part of the code blob. + // For the interpreter (and other code blobs) it is on the + // stack relative to the frame pointer. + if (blob_name == "nmethod") + methodOopPtr = @cast(blob, "nmethod", + "@ABS_SERVER_LIBJVM_SO@")->_method + else + methodOopPtr = user_long(fp + (-3 * ptr_size)) & ptr_mask - frame = sprintf("%s.%s%s%s", - user_string_n(klassName, klassLength), - user_string_n(methodName, methodLength), - sig, code_name); + // Start optimistic. A methodOop is only valid if it was + // heap allocated. And if the "type class" oop equals the + // Universe::methodKlassObj. + if (heap_start > methodOopPtr || methodOopPtr >= heap_end) + isMethodOop = 0 + else + { + methodOopKlass = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_metadata->_klass; + isMethodOop = (methodOopKlass == Universe_methodKlassObj[pid()]); + } + + if (isMethodOop) + { + // The java class is the holder of the constants (strings) + // that describe the method and signature. This constant pool + // contains symbolic information that describe the properties + // of the class. The indexes for methods and signaturates in + // the constant pool are Symbols that contain utf8 + // strings (plus lenghts). (We could also sanity check that + // the tag value is correct [CONSTANT_String = 8]). + // Note that the class name uses '/' instead of '.' as + // package name separator and that the method signature is + // encoded as a method descriptor string. Both of which we + // don't demangle here. + constantPoolOopDesc = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_constants; + constantPoolOop_base = constantPoolOopDesc + constantPoolOopDesc_size; + + klassPtr = @cast(constantPoolOopDesc, "constantPoolOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_pool_holder; + klassSymbol = @cast(klassPtr + oopDesc_size, "Klass", + "@ABS_SERVER_LIBJVM_SO@")->_name; + klassName = &@cast(klassSymbol, "Symbol", + "@ABS_SERVER_LIBJVM_SO@")->_body[0]; + klassLength = @cast(klassSymbol, "Symbol", + "@ABS_SERVER_LIBJVM_SO@")->_length; + + methodIndex = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index; + methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)) - 1; + methodName = &@cast(methodOopDesc, "Symbol", + "@ABS_SERVER_LIBJVM_SO@")->_body[0]; + methodLength = @cast(methodOopDesc, "Symbol", + "@ABS_SERVER_LIBJVM_SO@")->_length; + + if (log_sig) + { + sigIndex = @cast(methodOopPtr, "methodOopDesc", + "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index; + sigOopDesc = user_long(constantPoolOop_base + + (sigIndex * ptr_size)) - 1; + sigName = &@cast(sigOopDesc, "Symbol", + "@ABS_SERVER_LIBJVM_SO@")->_body[0]; + sigLength = @cast(sigOopDesc, "Symbol", + "@ABS_SERVER_LIBJVM_SO@")->_length; + sig = user_string_n(sigName, sigLength); + } + else + sig = ""; + + code_name = (log_native + ? sprintf("<%s at 0x%x>", + str_replace(blob_name, " ", "_"), pc) + : ""); + + frame = sprintf("%s.%s%s%s", + user_string_n(klassName, klassLength), + user_string_n(methodName, methodLength), + sig, code_name); + } + else + { + // This is probably just an internal function, not a java + // method, just print the blob_name and continue. + // fp is probably still trusted. + if (log_native) + frame = sprintf("<%s at 0x%x>", + str_replace(blob_name, " ", "_"), pc); + } + + // We cannot trust the frame pointer of compiled methods. + // The server (c2) jit compiler uses the fp register. + // We do know the method frame size on the stack. But + // this seems to be useful only as a hint of the minimum + // stack being used. + if (blob_name == "nmethod") + { + trust_fp = 0; + frame_size = @cast(blob, "CodeBlob", + "@ABS_SERVER_LIBJVM_SO@")->_frame_size; + } + } - else + catch { - // This is probably just an internal function, not a java - // method, just print the blob_name and continue. - // fp is probably still trusted. - if (log_native) - frame = sprintf("<%s at 0x%x>", - str_replace(blob_name, " ", "_"), pc); - } - - // We cannot trust the frame pointer of compiled methods. - // The server (c2) jit compiler uses the fp register. - // We do know the method frame size on the stack. But - // this seems to be useful only as a hint of the minimum - // stack being used. - if (blob_name == "nmethod") - { + // Some assumption above totally failed and we got an address + // read error. Give up and mark frame pointer as suspect. + frame = sprintf("", pc); trust_fp = 0; - frame_size = @cast(blob, "CodeBlob", - "@ABS_SERVER_LIBJVM_SO@")->_frame_size; } } else From ahughes at redhat.com Wed Mar 21 04:12:26 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 07:12:26 -0400 (EDT) Subject: old builder - build.sh fix (Was: IcedTea7 build failed for e909b2c85913) In-Reply-To: <1332328152.3000.4.camel@springer.wildebeest.org> Message-ID: <993e62ac-5b36-4d7e-92a9-fc644b1ddf9f@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On Tue, 2012-03-20 at 06:40 -0400, Andrew Hughes wrote: > > ----- Original Message ----- > > > The current IcedTea build fails. > > > > > > More info at http://builder.wildebeest.org/icedtea/icedtea7/ > > > > > > Possibly, but not necessarily, because of one of these changes: > > > [...] > > There seems to be some confusion here, Mark. This is a change that > > was > > pushed to the IcedTea8 tree: > > > > http://icedtea.classpath.org/hg/icedtea/rev/e909b2c85913 > > > > not IcedTea7: > > > > http://icedtea.classpath.org/hg/icedtea7 > > You are correct. Sorry about that. This was because the old builder > assumed everything not icedtea6 must be 7... I updated the script and > updated the directories on builder.classpath.org to handle 6, (the > real) > 7 or trunk. With this all three icedtea trees should be handled. > > Note the new buildbot based slaves currently only build 6 and 7 (not > trunk icedtea aka icedtea8), that needs some coordiantion with the > buildbot slave machine maintainers and updating of the master.cfg > file: > http://icedtea.classpath.org/hg/buildbot/file/tip/icedtea/master.cfg > > Cheers, > > Mark > > > [Text Documents:build.patch] > Thanks for updating; it was rather confusing as it was building 8 and calling it 7. Hopefully we can have 8 builds too soon. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-patch Size: 6338 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120321/9b571e84/attachment.bin From ahughes at redhat.com Wed Mar 21 04:15:57 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 07:15:57 -0400 (EDT) Subject: ARM: Support for OpenJDK 7 [resend] In-Reply-To: <4F69B6C9.6060208@redhat.com> Message-ID: <3001fae8-7313-49df-9346-3554f0b90562@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On 03/21/2012 11:03 AM, Andrew Hughes wrote: > > ----- Original Message ----- > >> On 03/20/2012 10:54 AM, Chris Phillips wrote: > >>> These changes look good and are running well as merged into > >>> icedtea7-forest-release-2.1 > >>> using the patch set you provided. > >>> Have "self" built x64, x64-zero and arm-zero w/asm jit with the > >>> fixes. > >> > >> Pushed, thanks. > > > > Is there a reason the assembly code is called > > src/cpu/zero/vm/cppInterpreter_arm.S > > rather than src/cpu/zero/vm/cppInterpreter_arm.s? > > Yes. .S files are source that must be preprocessed. Ah, ok. > > > If you did the latter, the divergence > > in vm.make would be unnecessary. > > > > Is there any progress on getting the gcc.make changes upstream? > > I haven't yet had time. I need to collect together everything for > upstream and start doing builds for up-to-date HotSpot. However, > AIUI > Zero doesn't build on up-to-date HotSpot, and I think we should get > it > working and then push the fixes. I don't think there's anything to > be > gained by pushing fixes to old HotSpot branches upstream. > Ok, I just thought it might be a simple fix which could easily go upstream and reduce divergence, whereas a larger 'fix Zero' patch would take longer to review. I presume the one you want to get in sync with is http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/ > Andrew. > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From mjw at icedtea.classpath.org Wed Mar 21 04:18:37 2012 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Wed, 21 Mar 2012 11:18:37 +0000 Subject: /hg/buildbot: build.sh set ICEDTEA_ADDITIONAL_VMS and ADDITIONAL... Message-ID: changeset e717809f9893 in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=e717809f9893 author: Mark Wielaard date: Wed Mar 21 12:18:31 2012 +0100 build.sh set ICEDTEA_ADDITIONAL_VMS and ADDITIONAL_OPTIONS for trunk build. diffstat: icedtea/build.sh | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diffs (13 lines): diff -r 93e227921517 -r e717809f9893 icedtea/build.sh --- a/icedtea/build.sh Wed Mar 21 12:03:41 2012 +0100 +++ b/icedtea/build.sh Wed Mar 21 12:18:31 2012 +0100 @@ -117,6 +117,9 @@ elif [ "${VERSIONSTR}" == "7" ]; then ICEDTEA_ADDITIONAL_VMS="shark" ADDITIONAL_OPTIONS="--disable-system-lcms" +else + ICEDTEA_ADDITIONAL_VMS="" + ADDITIONAL_OPTIONS="--disable-system-lcms" fi # Build in separate dir. From aph at redhat.com Wed Mar 21 05:09:05 2012 From: aph at redhat.com (Andrew Haley) Date: Wed, 21 Mar 2012 12:09:05 +0000 Subject: Shark and LLVM 3 Message-ID: <4F69C4E1.8000002@redhat.com> Here http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/release-7-4-1.html I see * There is now preliminary support for registerised compilation on the ARM platform, using LLVM. So evidently someone has got LLVM working well enough to be deployed. Maybe this is just the AOT compiler, not the JIT: I haven't looked. Andrew. From ptisnovs at redhat.com Wed Mar 21 05:12:24 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 21 Mar 2012 13:12:24 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: References: <4F699F08.4060603@redhat.com> Message-ID: <4F69C5A8.1020807@redhat.com> Stefan Ring wrote: >> Patch contains only minimal (but still functional) changes needed >> to be made in Apache XML Security libraries. I've excluded other >> changes which is IMHO important, but not directly related to #881. > > Where does the patch come from? Did you just write it or was it taken > from another repo? It's based on changes made in newer Apache XML Security lib a.k.a. Apache Santuario (http://santuario.apache.org/). But the sources of this lib are regularly (or randomly?) reformatted so it's not easy to get a simple (applicable) changeset from its repo. From andrew at icedtea.classpath.org Wed Mar 21 05:15:24 2012 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 21 Mar 2012 12:15:24 +0000 Subject: /hg/icedtea6-hg: 25 new changesets Message-ID: changeset c354196308a5 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=c354196308a5 author: Mark Wielaard date: Tue Mar 13 16:29:10 2012 +0100 * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. The size of constantPoolOopDesc had changed, but it was hard coded. We use a trick now to calculate it from the DWARF data. Pretend we have an array at address zero and take address of second element and we have the size. changeset b6af0d776621 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=b6af0d776621 author: Mark Wielaard date: Tue Mar 13 16:41:32 2012 +0100 jstack.stp support multiple running hotspots by indexing globals by pid(). changeset 131b26ec835a in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=131b26ec835a author: Mark Wielaard date: Tue Mar 13 17:24:50 2012 +0100 * tapset/jstack.stp.in: Use @var construct if available. Newer versions of systemtap (since 1.8) make it possible to use the @var construct if available to pick target variables from the right CU. Which is needed by newer DWARF/gcc versions which don't add a defining variable declaration to each CU anymore. changeset 1ab9b476f302 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=1ab9b476f302 author: Mark Wielaard date: Tue Mar 13 23:21:36 2012 +0100 * tapset/jstack.stp.in: Wrap heap accessors in try-catch block. When we cannot read some part of the hotspot code heap catch that error and report the frame (address) without trying to decode it. changeset 6094e670ff67 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=6094e670ff67 author: Mark Wielaard date: Wed Mar 14 10:55:24 2012 +0100 * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. changeset 92b8e217ffe9 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=92b8e217ffe9 author: aph date: Tue Feb 28 04:56:04 2012 -0500 save work in a temporary commit changeset 8ff8561d6267 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=8ff8561d6267 author: aph date: Tue Feb 28 09:58:50 2012 -0500 save work in a temporary commit changeset a2b7cc226931 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=a2b7cc226931 author: aph date: Tue Feb 28 12:00:41 2012 -0500 Handlers for _compareAndSwapInt and _compareAndSwapLong 2012-02-28 Andrew Haley * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT encodings. (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. (handle_special_method): Use intrinsic_id instead of method_kind. Add handlers for _compareAndSwapInt and _compareAndSwapLong. (Thumb2_codegen): Call handle_special_method() for invokevirtual. Pass stackdepth to handle_special_method(). changeset 9b5d9161c9dd in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=9b5d9161c9dd author: aph date: Wed Feb 29 17:51:34 2012 +0000 Enable compareAndSwap on jlongs. 2012-02-29 Andrew Haley * patches/arm.patch (void get_processor_features): New function that enables compareAndSwap on jlongs. (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New function. (atomic_linux_zero.inline.hpp: Atomic::store): Use arm_val_compare_and_swap. changeset 5b30d8907b48 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=5b30d8907b48 author: aph date: Fri Mar 02 10:10:47 2012 -0500 Revert ARM-specific code from atomic_linux_zero.inline.hpp changeset 672784296bca in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=672784296bca author: aph date: Fri Mar 02 10:16:07 2012 -0500 Reorganize ARM concurrency inlining patch. 2012-03-02 Andrew Haley * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: New file. * patches/arm.patch (void get_processor_features): New function that enables compareAndSwap on jlongs. (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New function. (atomic_linux_zero.inline.hpp: Atomic::store): Use arm_val_compare_and_swap. * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT encodings. (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. (handle_special_method): Use intrinsic_id instead of method_kind. Add handlers for _compareAndSwapInt and _compareAndSwapLong. (Thumb2_codegen): Call handle_special_method() for invokevirtual. Pass stackdepth to handle_special_method(). changeset d549e720bebb in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=d549e720bebb author: aph date: Fri Mar 02 12:49:43 2012 -0500 Minor reorg of arm.patch. changeset fd60dc8238c7 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=fd60dc8238c7 author: aph date: Tue Mar 13 16:56:04 2012 +0000 merge changeset f2b27b309c43 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=f2b27b309c43 author: aph date: Wed Mar 14 05:47:19 2012 -0400 ARM: Replace some obscure constants with symbols. 2012-03-14 Andrew Haley * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def (ldc, ldc_w): Replace numeric constants for constant pool with symbols. * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S (build_frame): Likewise. (fast_native_entry): Likewise. changeset 248d25e53f7e in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=248d25e53f7e author: aph date: Thu Mar 15 07:48:08 2012 -0400 ARM it(): handle negated conditions. 2012-03-15 Andrew Haley * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (it): Add code to handle negated conditions. (handle_special_method): Use blx_reg rather than blx in case the target is thumb code. changeset 461a2b36448e in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=461a2b36448e author: aph date: Fri Mar 16 08:36:04 2012 -0400 Use unified syntax for thumb code. 2012-03-16 Andrew Haley * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: Use unified syntax for thumb code. changeset d5ab30d2a0fc in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=d5ab30d2a0fc author: aph date: Fri Mar 16 08:50:50 2012 -0400 merge changeset 0894be5f665e in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=0894be5f665e author: aph date: Fri Mar 16 13:05:33 2012 -0400 Fix merge changeset a89d8bca422d in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=a89d8bca422d author: Andrew John Hughes date: Tue Mar 20 01:51:56 2012 +0000 PR886: Provide a more general solution to PR600 to cover architectures other than just ARM. 2012-03-16 Andrew John Hughes PR600, 886: * patches/pr600-arm-jvm.cfg.patch: Removed. * Makefile.am: (extract-openjdk): Copy jvm.cfg over if building cacao. * acinclude.m4: (IT_ENABLE_CACAO): Generat jvm.cacao.cfg. * jvm.cacao.cfg.in: Copied from jvm.cfg.in. changeset 8b157b07b859 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=8b157b07b859 author: Andrew John Hughes date: Tue Mar 20 06:01:53 2012 +0000 Extend previous fix to cover JamVM on all archs. 2012-03-16 Andrew John Hughes PR600, 886: * Makefile.am: (extract-openjdk): Copy jvm.cfg over if building JamVM. * acinclude.m4: (IT_ENABLE_JAMVM): Generate jvm.jamvm.cfg. * jvm.jamvm.cfg.in: Copied from jvm.cfg.in. changeset af04fa17f62f in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=af04fa17f62f author: Andrew John Hughes date: Tue Mar 20 10:43:41 2012 +0000 Update list of JDK home directories checked. 2012-03-19 Andrew John Hughes * acinclude.m4: (IT_CHECK_FOR_JDK): Update JDK home directory check list, adding some missing 1.6 entries and removing generic ones which may now pick up an unwanted 1.7 installation. changeset 2ec767396557 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=2ec767396557 author: Mark Wielaard date: Tue Mar 20 13:48:29 2012 +0100 Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. clean-jtreg wants to remove the empty test build directory. But it can still contain jtreg report summary files. Clean those up first by depending on clean-jtreg-reports. changeset ccdd6a1bd958 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=ccdd6a1bd958 author: Andrew John Hughes date: Tue Mar 20 13:34:06 2012 +0000 Bring compiler detection into line with other jdk tools and check java/javac work before running other macros. 2012-03-20 Andrew John Hughes * acinclude.m4: (IT_FIND_COMPILER): Define only once and rename from IT_FIND_JAVAC. (IT_FIND_ECJ): Use same form as detection for java, javah, jar and rmic. (IT_FIND_JAVAC): Likewise. (IT_CHECK_JAVA_AND_JAVAC_WORK): New macro to check java and javac actually work together to compile code before running other tests such as the dtdtype one. (IT_CHECK_FOR_CLASS): Depend on java/javac working. (IT_CHECK_IF_INSTANTIABLE): Likewise. (IT_GETDTDTYPE_CHECK): Likewise. Add -target 5. (IT_JAVAH): Depend on java/javac working. * configure.ac: Invoke IT_FIND_COMPILER rather than IT_FIND_JAVAC. changeset f4bcb05229c9 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=f4bcb05229c9 author: Andrew John Hughes date: Tue Mar 20 13:35:23 2012 +0000 Merge changeset b3f35e8bcccd in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=b3f35e8bcccd author: Andrew John Hughes date: Wed Mar 21 12:15:10 2012 +0000 Merge diffstat: ChangeLog | 147 ++++ Makefile.am | 28 +- NEWS | 1 + acinclude.m4 | 155 +++- arm_port/hotspot/src/cpu/zero/vm/arm_cas.S | 31 + arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def | 4 +- arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S | 12 +- arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 195 +++++- configure.ac | 2 +- jvm.cacao.cfg.in | 44 + jvm.jamvm.cfg.in | 44 + patches/arm.patch | 52 + patches/ecj/icedtea.patch | 87 +- patches/openjdk/6633275-shaped_translucent_windows.patch | 7 - patches/openjdk/6725214-direct3d-01.patch | 7 - patches/openjdk/6851973-kerberos.patch | 200 ------ patches/openjdk/7091528-javadoc_class_files.patch | 187 ------ patches/openjdk/7102369-7094468-rmiregistry.patch | 466 --------------- patches/openjdk/7103725-ssl_beast_regression.patch | 21 - patches/pr600-arm-jvm.cfg.patch | 43 - patches/security/20120214/7082299.patch | 200 ------ patches/security/20120214/7088367.patch | 43 - patches/security/20120214/7110683.patch | 169 ----- patches/security/20120214/7110687.patch | 232 ------- patches/security/20120214/7110700.patch | 41 - patches/security/20120214/7110704.patch | 60 - patches/security/20120214/7118283.patch | 26 - patches/security/20120214/7126960.patch | 80 -- tapset/jstack.stp.in | 287 +++++---- 29 files changed, 795 insertions(+), 2076 deletions(-) diffs (truncated from 3712 to 500 lines): diff -r b8d810f20366 -r b3f35e8bcccd ChangeLog --- a/ChangeLog Fri Mar 02 16:08:50 2012 +0100 +++ b/ChangeLog Wed Mar 21 12:15:10 2012 +0000 @@ -1,3 +1,131 @@ +2012-03-20 Mark Wielaard + + * Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. + +2012-03-20 Andrew John Hughes + + * acinclude.m4: + (IT_FIND_COMPILER): Define only once and + rename from IT_FIND_JAVAC. + (IT_FIND_ECJ): Use same form as detection + for java, javah, jar and rmic. + (IT_FIND_JAVAC): Likewise. + (IT_CHECK_JAVA_AND_JAVAC_WORK): New macro to check + java and javac actually work together to compile code + before running other tests such as the dtdtype one. + (IT_CHECK_FOR_CLASS): Depend on java/javac working. + (IT_CHECK_IF_INSTANTIABLE): Likewise. + (IT_GETDTDTYPE_CHECK): Likewise. Add -target 5. + (IT_JAVAH): Depend on java/javac working. + * configure.ac: Invoke IT_FIND_COMPILER rather than + IT_FIND_JAVAC. + +2012-03-19 Andrew John Hughes + + * acinclude.m4: + (IT_CHECK_FOR_JDK): Update JDK home directory + check list, adding some missing 1.6 entries + and removing generic ones which may now pick + up an unwanted 1.7 installation. + +2012-03-16 Andrew John Hughes + + PR600, 886: + * Makefile.am: + (extract-openjdk): Copy jvm.cfg over if building JamVM. + * acinclude.m4: + (IT_ENABLE_JAMVM): Generate jvm.jamvm.cfg. + * jvm.jamvm.cfg.in: Copied from jvm.cfg.in. + +2012-03-16 Andrew John Hughes + + PR600, 886: + * patches/pr600-arm-jvm.cfg.patch: Removed. + * Makefile.am: + (extract-openjdk): Copy jvm.cfg over if building cacao. + * acinclude.m4: + (IT_ENABLE_CACAO): Generate jvm.cacao.cfg. + * jvm.cacao.cfg.in: Copied from jvm.cfg.in. + +2012-03-16 Andrew Haley + + * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: Use unified syntax + for thumb code. + +2012-03-15 Andrew Haley + + * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (it): Add code to + handle negated conditions. + (handle_special_method): Use blx_reg rather than blx in case the + target is thumb code. + (IT_MASK_TE, IT_MASK_TT, IT_MASK_TTT): Delete. + (IT_MASK_TEE): Correct. + +2012-03-14 Andrew Haley + + * arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def (ldc, ldc_w): + Replace numeric constants for constant pool with symbols. + * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S (build_frame): + Likewise. + (fast_native_entry): Likewise. + +2012-03-02 Andrew Haley + + * arm_port/hotspot/src/cpu/zero/vm/arm_cas.S: New file. + * patches/arm.patch (void get_processor_features): New function + that enables compareAndSwap on jlongs. + (atomic_linux_zero.inline.hpp: arm_val_compare_and_swap): New + function. + (atomic_linux_zero.inline.hpp: Atomic::store): Use + arm_val_compare_and_swap. + + * openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp (IT_MASK_TT) + (IT_MASK_TE, IT_MASK_TTT, IT_MASK_TEE): Add a few new IT + encodings. + (Thumb2_dUnaryOp): Generalize Thumb2_dNeg. + (Thumb2_dNeg, Thumb2_dAbs): Specializations of Thumb2_dUnaryOp. + (handle_special_method): Use intrinsic_id instead of method_kind. + Add handlers for _compareAndSwapInt and _compareAndSwapLong. + (Thumb2_codegen): Call handle_special_method() for invokevirtual. + Pass stackdepth to handle_special_method(). + +2012-03-14 Mark Wielaard + + * Makefile.am (EXTRA_DIST): Add tapset/jstack.stp.in. + +2012-03-13 Mark Wielaard + + * tapset/jstack.stp.in: Wrap heap accessors in try-catch block to be + able to report unusual frames. + +2012-03-13 Mark Wielaard + + * tapset/jstack.stp.in: Use @var construct if available to pick + target variable from the right CU (needed by newer DWARF/gcc + versions). + +2012-03-13 Mark Wielaard + + * tapset/jstack.stp.in: Index globals on pid() to support multiple + running hotspot jstacks at the same time. + +2012-03-13 Mark Wielaard + + * tapset/jstack.stp.in: Don't hard code constantPoolOopDesc_size. + +2012-03-09 Andrew John Hughes + + * patches/security/20120214/7082299.patch, + * patches/security/20120214/7088367.patch, + * patches/security/20120214/7110683.patch, + * patches/security/20120214/7110687.patch, + * patches/security/20120214/7110700.patch, + * patches/security/20120214/7110704.patch, + * patches/security/20120214/7118283.patch, + * patches/security/20120214/7126960.patch: + Removed; upstream. + * Makefile.am: Drop above patches. + 2012-03-02 Xerxes R??nby Andrew Haley @@ -148,6 +276,20 @@ (Thumb2_Return): Pass stackdepth to Thumb2_Safepoint. (Thumb2_codegen): Pass stackdepth to Thumb2_Return. +2012-01-18 Andrew John Hughes + + * patches/openjdk/6851973-kerberos.patch, + * patches/openjdk/7091528-javadoc_class_files.patch, + * patches/openjdk/7102369-7094468-rmiregistry.patch, + * patches/openjdk/7103725-ssl_beast_regression.patch: + Dropped; upstream. + * Makefile.am: Remove dropped patches. + * patches/ecj/icedtea.patch: Updated due to 6790292. + * patches/openjdk/6633275-shaped_translucent_windows.patch, + * patches/openjdk/6725214-direct3d-01.patch: + Remove copyright notice changes broken as a result of the annoying + 7128474 change. + 2012-01-18 Xerxes R??nby * openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S @@ -1832,6 +1974,11 @@ 2011-11-28 Andrew John Hughes + * Makefile.am: + Bump to b25 (next version in hg). + +2011-11-28 Andrew John Hughes + * NEWS: Remove inaccurate line about ARM assembler. diff -r b8d810f20366 -r b3f35e8bcccd Makefile.am --- a/Makefile.am Fri Mar 02 16:08:50 2012 +0100 +++ b/Makefile.am Wed Mar 21 12:15:10 2012 +0000 @@ -2,7 +2,7 @@ OPENJDK_DATE = 14_nov_2011 OPENJDK_SHA256SUM = f84e7f0938f4939660ff8f9c2aa164d301faa8a519f2324ceb05ad34b2e09227 -OPENJDK_VERSION = b24 +OPENJDK_VERSION = b25 OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/ CACAO_VERSION = cff92704c4e0 @@ -201,15 +201,7 @@ ICEDTEA_FSG_PATCHES = -SECURITY_PATCHES = \ - patches/security/20120214/7082299.patch \ - patches/security/20120214/7088367.patch \ - patches/security/20120214/7110683.patch \ - patches/security/20120214/7110687.patch \ - patches/security/20120214/7110700.patch \ - patches/security/20120214/7110704.patch \ - patches/security/20120214/7118283.patch \ - patches/security/20120214/7126960.patch +SECURITY_PATCHES = SPECIAL_SECURITY_PATCH = patches/security/20120214/7112642.patch @@ -332,7 +324,6 @@ patches/jtreg-LastErrorString.patch \ patches/openjdk/6663040-com.sun.awt.patch \ patches/openjdk/6775317-non-AA-simple-shape-performance.patch \ - patches/pr600-arm-jvm.cfg.patch \ patches/openjdk/6887494-NPE-in-pisces.patch \ patches/openjdk/6967436-6967433-floating-pt-conversion.patch \ patches/openjdk/6976265-stroke-control.patch \ @@ -412,10 +403,6 @@ patches/arm-debug.patch \ patches/arm-hsdis.patch \ patches/openjdk/7103610-_NET_WM_PID_and_WM_CLIENT_MACHINE_are_not_set.patch \ - patches/openjdk/7102369-7094468-rmiregistry.patch \ - patches/openjdk/6851973-kerberos.patch \ - patches/openjdk/7091528-javadoc_class_files.patch \ - patches/openjdk/7103725-ssl_beast_regression.patch \ patches/openjdk/6706974-krb5_test_infrastructure.patch \ patches/openjdk/6764553-IdResolver_is_not_thread_safe.patch \ patches/openjdk/6761072-new_krb5_tests_fail_on_multiple_platforms.patch \ @@ -643,6 +630,7 @@ autogen.sh \ tapset/hotspot.stp.in \ tapset/hotspot_jni.stp.in \ + tapset/jstack.stp.in \ scripts/jni_create_stap.c \ scripts/jni_desc \ rewriter/agpl-3.0.txt \ @@ -981,6 +969,14 @@ fi endif endif +if ENABLE_CACAO + mkdir -p openjdk/jdk/src/solaris/bin/$(JRE_ARCH_DIR) + cp jvm.cacao.cfg openjdk/jdk/src/solaris/bin/$(JRE_ARCH_DIR)/jvm.cfg +endif +if ENABLE_JAMVM + mkdir -p openjdk/jdk/src/solaris/bin/$(JRE_ARCH_DIR) + cp jvm.jamvm.cfg openjdk/jdk/src/solaris/bin/$(JRE_ARCH_DIR)/jvm.cfg +endif mkdir -p stamps touch stamps/extract-openjdk.stamp @@ -2149,7 +2145,7 @@ mkdir -p stamps touch $@ -clean-jtreg: +clean-jtreg: clean-jtreg-reports rm -rf test/jtreg/classes if [ -e test/jtreg ] ; then \ rmdir test/jtreg ; \ diff -r b8d810f20366 -r b3f35e8bcccd NEWS --- a/NEWS Fri Mar 02 16:08:50 2012 +0100 +++ b/NEWS Wed Mar 21 12:15:10 2012 +0000 @@ -14,6 +14,7 @@ * Bug fixes - PR865: Patching fails with patches/ecj/jaxws-getdtdtype.patch + - PR886: 6-1.11.1 fails to build CACAO on ppc * Backports - S6706974: Add krb5 test infrastructure - S6764553: com.sun.org.apache.xml.internal.security.utils.IdResolver is not thread safe diff -r b8d810f20366 -r b3f35e8bcccd acinclude.m4 --- a/acinclude.m4 Fri Mar 02 16:08:50 2012 +0100 +++ b/acinclude.m4 Wed Mar 21 12:15:10 2012 +0000 @@ -129,49 +129,46 @@ AC_SUBST(OS_PATH) ]) -AC_DEFUN([IT_FIND_JAVAC], +AC_DEFUN_ONCE([IT_FIND_COMPILER], [ - JAVAC=${SYSTEM_JDK_DIR}/bin/javac IT_FIND_JAVAC IT_FIND_ECJ - AC_SUBST(JAVAC) -]) - -AC_DEFUN([IT_FIND_ECJ], -[ - AC_ARG_WITH([ecj], - [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)], - [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - IT_CHECK_ECJ(${withval}) - else - if test "x${withval}" != xno; then - IT_CHECK_ECJ - fi - fi - ], - [ - IT_CHECK_ECJ - ]) if test "x${JAVAC}" = "x"; then if test "x{ECJ}" != "x"; then JAVAC="${ECJ} -nowarn" fi fi + AC_SUBST(ECJ) + AC_SUBST(JAVAC) ]) -AC_DEFUN([IT_CHECK_ECJ], +AC_DEFUN_ONCE([IT_FIND_ECJ], [ - if test "x$1" != x; then - if test -f "$1"; then - AC_MSG_CHECKING(for ecj) - ECJ="$1" - AC_MSG_RESULT(${ECJ}) + ECJ_DEFAULT=/usr/bin/ecj + AC_MSG_CHECKING([if an ecj binary was specified]) + AC_ARG_WITH([ecj], + [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)], + [ + if test "x${withval}" = "xyes"; then + ECJ=no else - AC_PATH_PROG(ECJ, "$1") + ECJ="${withval}" fi + ], + [ + ECJ=no + ]) + AC_MSG_RESULT(${ECJ}) + if test "x${ECJ}" = "xno"; then + ECJ=${ECJ_DEFAULT} + fi + AC_MSG_CHECKING([if $ECJ is a valid executable file]) + if test -x "${ECJ}" && test -f "${ECJ}"; then + AC_MSG_RESULT([yes]) else + AC_MSG_RESULT([no]) + ECJ="" AC_PATH_PROG(ECJ, "ecj") if test -z "${ECJ}"; then AC_PATH_PROG(ECJ, "ecj-3.1") @@ -182,43 +179,45 @@ if test -z "${ECJ}"; then AC_PATH_PROG(ECJ, "ecj-3.3") fi + if test -z "${ECJ}"; then + AC_PATH_PROG(ECJ, "ecj-3.4") + fi fi ]) -AC_DEFUN([IT_FIND_JAVAC], +AC_DEFUN_ONCE([IT_FIND_JAVAC], [ + JAVAC_DEFAULT=${SYSTEM_JDK_DIR}/bin/javac + AC_MSG_CHECKING([if a javac binary was specified]) AC_ARG_WITH([javac], [AS_HELP_STRING(--with-javac,bytecode compilation with javac)], [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - IT_CHECK_JAVAC(${withval}) + if test "x${withval}" = "xyes"; then + JAVAC=no else - if test "x${withval}" != xno; then - IT_CHECK_JAVAC - fi + JAVAC="${withval}" fi ], - [ - IT_CHECK_JAVAC + [ + JAVAC=no + ]) + AC_MSG_RESULT(${JAVAC}) + if test "x${JAVAC}" = "xno"; then + JAVAC=${JAVAC_DEFAULT} + fi + AC_MSG_CHECKING([if $JAVAC is a valid executable file]) + if test -x "${JAVAC}" && test -f "${JAVAC}"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + JAVAC="" + AC_PATH_PROG(JAVAC, "javac") + fi + AC_SUBST(JAVAC) ]) ]) -AC_DEFUN([IT_CHECK_JAVAC], -[ - if test "x$1" != x; then - if test -f "$1"; then - AC_MSG_CHECKING(for javac) - JAVAC="$1" - AC_MSG_RESULT(${JAVAC}) - else - AC_PATH_PROG(JAVAC, "$1") - fi - else - AC_PATH_PROG(JAVAC, "javac") - fi -]) - -AC_DEFUN([IT_FIND_JAVA], +AC_DEFUN_ONCE([IT_FIND_JAVA], [ JAVA_DEFAULT=${SYSTEM_JDK_DIR}/bin/java AC_MSG_CHECKING([if a java binary was specified]) @@ -825,6 +824,7 @@ AC_MSG_RESULT(${ENABLE_JAMVM}) AM_CONDITIONAL(ENABLE_JAMVM, test x"${ENABLE_JAMVM}" = "xyes") AC_SUBST(ENABLE_JAMVM) + AC_CONFIG_FILES([jvm.jamvm.cfg]) ]) AC_DEFUN([IT_WITH_JAMVM_SRC_ZIP], @@ -863,6 +863,7 @@ AC_MSG_RESULT(${ENABLE_CACAO}) AM_CONDITIONAL(ENABLE_CACAO, test x"${ENABLE_CACAO}" = "xyes") AC_SUBST(ENABLE_CACAO) + AC_CONFIG_FILES([jvm.cacao.cfg]) ]) AC_DEFUN([IT_WITH_CACAO_HOME], @@ -1140,9 +1141,9 @@ if test "x${enable_bootstrap}" = "xyes"; then BOOTSTRAP_VMS="/usr/lib/jvm/java-gcj /usr/lib/jvm/gcj-jdk /usr/lib/jvm/cacao"; fi - for dir in ${BOOTSTRAP_VMS} /usr/lib/jvm/java-openjdk \ + for dir in ${BOOTSTRAP_VMS} /usr/lib/jvm/java-1.6.0 \ /usr/lib/jvm/icedtea6 /usr/lib/jvm/java-6-openjdk \ - /usr/lib/jvm/openjdk /usr/lib/jvm/java-icedtea ; do + /usr/lib/jvm/java-1.6.0-openjdk /usr/lib/jvm/icedtea-6 ; do if test -d $dir; then SYSTEM_JDK_DIR=$dir break @@ -1239,6 +1240,44 @@ fi ]) +dnl check that javac and java work +AC_DEFUN_ONCE([IT_CHECK_JAVA_AND_JAVAC_WORK],[ + AC_REQUIRE([IT_FIND_JAVA]) + AC_REQUIRE([IT_FIND_COMPILER]) + AC_CACHE_CHECK([if the VM and compiler work together], it_cv_jdk_works, [ + CLASS=Test.java + BYTECODE=$(echo $CLASS|sed 's#\.java##') + mkdir tmp.$$ + cd tmp.$$ + cat << \EOF > $CLASS +[/* [#]line __oline__ "configure" */ + +public class Test +{ + public static void main(String[] args) + { + System.out.println("Hello World!"); + } +}] +EOF + if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then + it_cv_jdk_works=yes; + else + it_cv_jdk_works=no; + AC_MSG_ERROR([VM failed to run compiled class.]) + fi + else + it_cv_jdk_works=no; + AC_MSG_ERROR([Compiler failed to compile Java code.]) + fi + rm -f $CLASS *.class + cd .. + rmdir tmp.$$ + ]) +AC_PROVIDE([$0])dnl +]) + dnl Generic macro to check for a Java class dnl Takes two arguments: the name of the macro dnl and the name of the class. The macro name @@ -1246,6 +1285,7 @@ dnl replaced by '_' and all letters capitalised. dnl e.g. IT_CHECK_FOR_CLASS([JAVA_UTIL_SCANNER],[java.util.Scanner]) AC_DEFUN([IT_CHECK_FOR_CLASS],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if $2 is missing], it_cv_$1, [ CLASS=Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') @@ -1289,6 +1329,7 @@ dnl e.g. IT_CHECK_FOR_INSTANTIABLE_CLASS([JAVA_LANG_INTEGER], dnl [java.lang.Integer],[0],[./bin]) AC_DEFUN([IT_CHECK_IF_INSTANTIABLE],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if $2 is instantiable], it_cv_$1, [ CLASS=Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') @@ -1348,7 +1389,8 @@ AC_PROVIDE([$0])dnl ]) From stefan at complang.tuwien.ac.at Wed Mar 21 05:33:05 2012 From: stefan at complang.tuwien.ac.at (Stefan Ring) Date: Wed, 21 Mar 2012 13:33:05 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <4F69C5A8.1020807@redhat.com> References: <4F699F08.4060603@redhat.com> <4F69C5A8.1020807@redhat.com> Message-ID: > It's based on changes made in newer Apache XML Security lib a.k.a. Apache Santuario > (http://santuario.apache.org/). But the sources of this lib are regularly (or randomly?) > reformatted so it's not easy to get a simple (applicable) changeset from its repo. Thanks. Looks good to me. From mjw at icedtea.classpath.org Wed Mar 21 05:36:47 2012 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Wed, 21 Mar 2012 12:36:47 +0000 Subject: /hg/buildbot: build.sh: Add --disable-system-gio for icedtea7 bu... Message-ID: changeset f8891d3c2d23 in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=f8891d3c2d23 author: Mark Wielaard date: Wed Mar 21 13:36:40 2012 +0100 build.sh: Add --disable-system-gio for icedtea7 builds. diffstat: icedtea/build.sh | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diffs (18 lines): diff -r e717809f9893 -r f8891d3c2d23 icedtea/build.sh --- a/icedtea/build.sh Wed Mar 21 12:18:31 2012 +0100 +++ b/icedtea/build.sh Wed Mar 21 13:36:40 2012 +0100 @@ -111,12 +111,12 @@ set -o pipefail # Some additional VMs only build against one or the other version. -if [ "${VERSIONSTR}" == "6"]; then +if [ "${VERSIONSTR}" == "6" ]; then ICEDTEA_ADDITIONAL_VMS="cacao,jamvm,shark" ADDITIONAL_OPTIONS="" elif [ "${VERSIONSTR}" == "7" ]; then ICEDTEA_ADDITIONAL_VMS="shark" - ADDITIONAL_OPTIONS="--disable-system-lcms" + ADDITIONAL_OPTIONS="--disable-system-lcms --disable-system-gio" else ICEDTEA_ADDITIONAL_VMS="" ADDITIONAL_OPTIONS="--disable-system-lcms" From ahughes at redhat.com Wed Mar 21 06:10:13 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 09:10:13 -0400 (EDT) Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <4F699F08.4060603@redhat.com> Message-ID: ----- Original Message ----- > Hi, > > I'd like to push following patch to IcedTea6 HEAD. > This patch fixes the bug #881: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > > Patch contains only minimal (but still functional) changes needed > to be made in Apache XML Security libraries. I've excluded other > changes which is IMHO important, but not directly related to #881. > > (FYI: there's no API changes) > > ChangeLog entry: > > 2012-03-21 Pavel Tisnovsky > > PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 > * Makefile.am: Updated > * patches/idresolver_fix.patch: added patch for a class > IdResolver. > > Could anybody please review this change? > > Thank you in advance, > Pavel > > > [Text File:hg.diff] > What is this patch changing? It's hard to tell as there are so many whitespace changes. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Wed Mar 21 06:14:16 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 09:14:16 -0400 (EDT) Subject: /hg/buildbot: build.sh: Add --disable-system-gio for icedtea7 bu... In-Reply-To: Message-ID: <936ffb97-fe5d-4267-b94d-19109ad9fad7@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > changeset f8891d3c2d23 in /hg/buildbot > details: > http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=f8891d3c2d23 > author: Mark Wielaard > date: Wed Mar 21 13:36:40 2012 +0100 > > build.sh: Add --disable-system-gio for icedtea7 builds. > > > diffstat: > > icedtea/build.sh | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diffs (18 lines): > > diff -r e717809f9893 -r f8891d3c2d23 icedtea/build.sh > --- a/icedtea/build.sh Wed Mar 21 12:18:31 2012 +0100 > +++ b/icedtea/build.sh Wed Mar 21 13:36:40 2012 +0100 > @@ -111,12 +111,12 @@ > set -o pipefail > > # Some additional VMs only build against one or the other version. > -if [ "${VERSIONSTR}" == "6"]; then > +if [ "${VERSIONSTR}" == "6" ]; then > ICEDTEA_ADDITIONAL_VMS="cacao,jamvm,shark" > ADDITIONAL_OPTIONS="" > elif [ "${VERSIONSTR}" == "7" ]; then > ICEDTEA_ADDITIONAL_VMS="shark" > - ADDITIONAL_OPTIONS="--disable-system-lcms" > + ADDITIONAL_OPTIONS="--disable-system-lcms --disable-system-gio" > else > ICEDTEA_ADDITIONAL_VMS="" > ADDITIONAL_OPTIONS="--disable-system-lcms" > Why is this necessary? Old machine? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:34:49 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:34:49 +0000 Subject: [Bug 901] New: [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=901 Bug #: 901 Summary: [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages Classification: Unclassified Product: IcedTea Version: unspecified Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea7 AssignedTo: ahughes at redhat.com ReportedBy: ahughes at redhat.com CC: unassigned at icedtea.classpath.org The NSS provider gives a performance advantage over the default, even without AES hardware in place: http://blog.fuseyism.com/index.php/2012/03/09/openjdk-icedtea-nss/ http://blog.fuseyism.com/index.php/2012/03/13/openjdk-icedtea-nss-icedtea7-results/ http://blog.fuseyism.com/index.php/2012/03/14/openjdk-icedtea-nss-results-without-hardware-aes/ so we should consider altering the nss.cfg to place the provider as the main provider (priority 1). This bug tracks issues found when doing so. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:35:13 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:35:13 +0000 Subject: [Bug 901] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=901 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |473, 469 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:13 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:13 +0000 Subject: [Bug 783] Jboss server instance is suddenly shutting down.. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=783 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #3 from Andrew John Hughes 2012-03-21 13:37:13 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:15 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:15 +0000 Subject: [Bug 729] GTKLookAndFeel should be the system look&feel on all GNU/Linux desktops In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=729 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #6 from Andrew John Hughes 2012-03-21 13:37:15 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:19 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:19 +0000 Subject: [Bug 391] Wrong jaxws drop md5sum in icedtea revision 05e6f20fb7fd In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=391 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:19 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:17 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:17 +0000 Subject: [Bug 178] Icedtea7 configure error In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=178 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #6 from Andrew John Hughes 2012-03-21 13:37:17 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:18 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:18 +0000 Subject: [Bug 791] Icedtead7 1.14 build fails with libpng 1.5 in splashscreen_png.c In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=791 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:18 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:19 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:19 +0000 Subject: [Bug 695] [TRACKER] IcedTea7 1.14 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=695 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:19 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:20 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:20 +0000 Subject: [Bug 813] Crash in JVM_handle_linux_signal In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=813 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:20 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:22 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:22 +0000 Subject: [Bug 859] javac to strict when checking cast In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=859 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #4 from Andrew John Hughes 2012-03-21 13:37:22 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:23 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:23 +0000 Subject: [Bug 759] build stamps for pulseaudio not working correctly? In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=759 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #3 from Andrew John Hughes 2012-03-21 13:37:23 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:27 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:27 +0000 Subject: [Bug 877] CUPS should not be a mandatory requirement In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=877 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #1 from Andrew John Hughes 2012-03-21 13:37:27 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:28 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:28 +0000 Subject: [Bug 717] All non-bootstrap patches in IcedTea7 should be in the forest or dropped In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=717 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #3 from Andrew John Hughes 2012-03-21 13:37:28 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:27 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:27 +0000 Subject: [Bug 757] IA32 Hotspot FTBFS regression after 7009309 JSR292 fix In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=757 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #3 from Andrew John Hughes 2012-03-21 13:37:27 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:29 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:29 +0000 Subject: [Bug 339] icedtea7 20090527 fails to run the langtools and jdk testsuite In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=339 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #13 from Andrew John Hughes 2012-03-21 13:37:29 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:30 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:30 +0000 Subject: [Bug 817] IcedTea7-2.0 fails to build on PaX enabled kernels. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=817 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #4 from Andrew John Hughes 2012-03-21 13:37:30 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:28 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:28 +0000 Subject: [Bug 716] IcedTea7 should bootstrap with IcedTea6 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=716 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #4 from Andrew John Hughes 2012-03-21 13:37:28 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:32 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:32 +0000 Subject: [Bug 885] IcedTea7 does not build scripting support In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=885 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #4 from Andrew John Hughes 2012-03-21 13:37:32 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:34 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:34 +0000 Subject: [Bug 732] Use xsltproc for bootstrap xslt in place of Xerces/Xalan In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=732 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #6 from Andrew John Hughes 2012-03-21 13:37:34 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:32 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:32 +0000 Subject: [Bug 901] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=901 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #1 from Andrew John Hughes 2012-03-21 13:37:32 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:35 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:35 +0000 Subject: [Bug 713] Port JamVM support to IcedTea7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=713 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:35 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:37 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:37 +0000 Subject: [Bug 875] Build fails with --enable-pulse-java In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=875 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #7 from Andrew John Hughes 2012-03-21 13:37:37 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:37 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:37 +0000 Subject: [Bug 790] Re-include JAXP and JAXWS in the source tree In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=790 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:37 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:38 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:38 +0000 Subject: [Bug 706] b136 fails to build with gas trunk 20110501 on ix86 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=706 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #3 from Andrew John Hughes 2012-03-21 13:37:38 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:40 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:40 +0000 Subject: [Bug 751] IcedTea7 should bootstrap with IcedTea7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=751 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #4 from Andrew John Hughes 2012-03-21 13:37:40 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:20 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:20 +0000 Subject: [Bug 714] Forwardport replace-hotspot target from IcedTea6 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=714 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:20 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:39 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:39 +0000 Subject: [Bug 693] Attempting to save a document in Word format causes a crash. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=693 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #3 from Andrew John Hughes 2012-03-21 13:37:39 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:25 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:25 +0000 Subject: [Bug 715] Port updated macros from IcedTea6 to 7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=715 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:25 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:36 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:36 +0000 Subject: [Bug 338] icedtea7 20090527 fails to build using gcj In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=338 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #10 from Andrew John Hughes 2012-03-21 13:37:36 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:40 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:40 +0000 Subject: [Bug 821] Deadlock in java.awt.EventQueue on OpenJDK7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=821 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #3 from Andrew John Hughes 2012-03-21 13:37:40 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:33 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:33 +0000 Subject: [Bug 712] [TRACKER] IcedTea7 2.0 release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=712 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #5 from Andrew John Hughes 2012-03-21 13:37:33 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:35 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:35 +0000 Subject: [Bug 800] problem with omnet 4.1 on fedora 15 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=800 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #1 from Andrew John Hughes 2012-03-21 13:37:35 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:30 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:30 +0000 Subject: [Bug 343] *_CHANGESET macros used as part of directory names In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=343 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:30 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:26 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:26 +0000 Subject: [Bug 767] Annotation Processing Filer.getResource() always throws FileNotFoundException In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=767 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #2 from Andrew John Hughes 2012-03-21 13:37:26 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:37:31 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:37:31 +0000 Subject: [Bug 824] problems with memory allocation with -Xms option In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=824 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|IcedTea7 |IcedTea --- Comment #3 from Andrew John Hughes 2012-03-21 13:37:31 UTC --- File all general IcedTea bugs under one component. Version is already stated by version field. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:39:56 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:39:56 +0000 Subject: [Bug 338] icedtea7 20090527 fails to build using gcj In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=338 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com Version|unspecified |7-hg -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at redhat.com Wed Mar 21 06:43:06 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 21 Mar 2012 14:43:06 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: References: Message-ID: <4F69DAEA.70001@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Hi, >> >> I'd like to push following patch to IcedTea6 HEAD. >> This patch fixes the bug #881: >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >> >> Patch contains only minimal (but still functional) changes needed >> to be made in Apache XML Security libraries. I've excluded other >> changes which is IMHO important, but not directly related to #881. >> >> (FYI: there's no API changes) >> >> ChangeLog entry: >> >> 2012-03-21 Pavel Tisnovsky >> >> PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 >> * Makefile.am: Updated >> * patches/idresolver_fix.patch: added patch for a class >> IdResolver. >> >> Could anybody please review this change? >> >> Thank you in advance, >> Pavel >> >> >> [Text File:hg.diff] >> > > What is this patch changing? It's hard to tell as there are so many whitespace > changes. The most important thing is that there are added two new namespaces (in a static String array transformed into a List). And the logic for searching of element types are: 1) slightly faster 2) has added new branches for elementIndex==4 and elementIndex==5 From bugzilla-daemon at icedtea.classpath.org Wed Mar 21 06:41:25 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 21 Mar 2012 13:41:25 +0000 Subject: [Bug 885] IcedTea7 does not build scripting support In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=885 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |7-hg -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Wed Mar 21 06:42:30 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 09:42:30 -0400 (EDT) Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <4F69DAEA.70001@redhat.com> Message-ID: <7530515f-16a4-4a6e-b7de-0a00e8f3cde4@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> Hi, > >> > >> I'd like to push following patch to IcedTea6 HEAD. > >> This patch fixes the bug #881: > >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >> > >> Patch contains only minimal (but still functional) changes needed > >> to be made in Apache XML Security libraries. I've excluded other > >> changes which is IMHO important, but not directly related to #881. > >> > >> (FYI: there's no API changes) > >> > >> ChangeLog entry: > >> > >> 2012-03-21 Pavel Tisnovsky > >> > >> PR881: Sign tests (wsse.policy.basic) failures with > >> OpenJDK6 > >> * Makefile.am: Updated > >> * patches/idresolver_fix.patch: added patch for a class > >> IdResolver. > >> > >> Could anybody please review this change? > >> > >> Thank you in advance, > >> Pavel > >> > >> > >> [Text File:hg.diff] > >> > > > > What is this patch changing? It's hard to tell as there are so > > many whitespace > > changes. > > The most important thing is that there are added two new namespaces > (in a static String array transformed into a List). > > And the logic for searching of element types are: 1) slightly faster > 2) has added new branches for elementIndex==4 and > elementIndex==5 > And what do these changes fix? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From stefan at complang.tuwien.ac.at Wed Mar 21 06:49:34 2012 From: stefan at complang.tuwien.ac.at (Stefan Ring) Date: Wed, 21 Mar 2012 14:49:34 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <7530515f-16a4-4a6e-b7de-0a00e8f3cde4@zmail17.collab.prod.int.phx2.redhat.com> References: <4F69DAEA.70001@redhat.com> <7530515f-16a4-4a6e-b7de-0a00e8f3cde4@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: On Wed, Mar 21, 2012 at 2:42 PM, Andrew Hughes wrote: > ----- Original Message ----- >> Andrew Hughes wrote: >> > ----- Original Message ----- >> >> Hi, >> >> >> >> I'd like to push following patch to IcedTea6 HEAD. >> >> This patch fixes the bug #881: >> >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >> >> >> >> Patch contains only minimal (but still functional) changes needed >> >> to be made in Apache XML Security libraries. I've excluded other >> >> changes which is IMHO important, but not directly related to #881. >> >> >> >> (FYI: there's no API changes) >> >> >> >> ChangeLog entry: >> >> >> >> 2012-03-21 ?Pavel Tisnovsky ? >> >> >> >> ? ? ? ? PR881: Sign tests (wsse.policy.basic) failures with >> >> ? ? ? ? OpenJDK6 >> >> ? ? ? ? * Makefile.am: Updated >> >> ? ? ? ? * patches/idresolver_fix.patch: added patch for a class >> >> ? ? ? ? IdResolver. >> >> >> >> Could anybody please review this change? >> >> >> >> Thank you in advance, >> >> Pavel >> >> >> >> >> >> [Text File:hg.diff] >> >> >> > >> > What is this patch changing? ?It's hard to tell as there are so >> > many whitespace >> > changes. >> >> The most important thing is that there are added two new namespaces >> (in a static String array transformed into a List). >> >> And the logic for searching of element types are: 1) slightly faster >> 2) has added new branches for elementIndex==4 and >> elementIndex==5 >> > > And what do these changes fix? Seems to be mostly this: http://svn.apache.org/viewvc?view=revision&revision=393799 http://svn.apache.org/viewvc?view=revision&revision=518162 From ptisnovs at redhat.com Wed Mar 21 06:56:14 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 21 Mar 2012 14:56:14 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: References: <4F69DAEA.70001@redhat.com> <7530515f-16a4-4a6e-b7de-0a00e8f3cde4@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F69DDFE.6020803@redhat.com> Stefan Ring wrote: > On Wed, Mar 21, 2012 at 2:42 PM, Andrew Hughes wrote: >> ----- Original Message ----- >>> Andrew Hughes wrote: >>>> ----- Original Message ----- >>>>> Hi, >>>>> >>>>> I'd like to push following patch to IcedTea6 HEAD. >>>>> This patch fixes the bug #881: >>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>>> >>>>> Patch contains only minimal (but still functional) changes needed >>>>> to be made in Apache XML Security libraries. I've excluded other >>>>> changes which is IMHO important, but not directly related to #881. >>>>> >>>>> (FYI: there's no API changes) >>>>> >>>>> ChangeLog entry: >>>>> >>>>> 2012-03-21 Pavel Tisnovsky >>>>> >>>>> PR881: Sign tests (wsse.policy.basic) failures with >>>>> OpenJDK6 >>>>> * Makefile.am: Updated >>>>> * patches/idresolver_fix.patch: added patch for a class >>>>> IdResolver. >>>>> >>>>> Could anybody please review this change? >>>>> >>>>> Thank you in advance, >>>>> Pavel >>>>> >>>>> >>>>> [Text File:hg.diff] >>>>> >>>> What is this patch changing? It's hard to tell as there are so >>>> many whitespace >>>> changes. >>> The most important thing is that there are added two new namespaces >>> (in a static String array transformed into a List). >>> >>> And the logic for searching of element types are: 1) slightly faster >>> 2) has added new branches for elementIndex==4 and >>> elementIndex==5 >>> >> And what do these changes fix? > > Seems to be mostly this: > > http://svn.apache.org/viewvc?view=revision&revision=393799 > http://svn.apache.org/viewvc?view=revision&revision=518162 Yeah OpenJDK6 used "quite" old lib ;-) From ahughes at redhat.com Wed Mar 21 06:54:20 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 09:54:20 -0400 (EDT) Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: Message-ID: <49fd49d1-32d9-4332-bead-2a19b438dd90@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On Wed, Mar 21, 2012 at 2:42 PM, Andrew Hughes > wrote: > > ----- Original Message ----- > >> Andrew Hughes wrote: > >> > ----- Original Message ----- > >> >> Hi, > >> >> > >> >> I'd like to push following patch to IcedTea6 HEAD. > >> >> This patch fixes the bug #881: > >> >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >> >> > >> >> Patch contains only minimal (but still functional) changes > >> >> needed > >> >> to be made in Apache XML Security libraries. I've excluded > >> >> other > >> >> changes which is IMHO important, but not directly related to > >> >> #881. > >> >> > >> >> (FYI: there's no API changes) > >> >> > >> >> ChangeLog entry: > >> >> > >> >> 2012-03-21 ?Pavel Tisnovsky ? > >> >> > >> >> ? ? ? ? PR881: Sign tests (wsse.policy.basic) failures with > >> >> ? ? ? ? OpenJDK6 > >> >> ? ? ? ? * Makefile.am: Updated > >> >> ? ? ? ? * patches/idresolver_fix.patch: added patch for a class > >> >> ? ? ? ? IdResolver. > >> >> > >> >> Could anybody please review this change? > >> >> > >> >> Thank you in advance, > >> >> Pavel > >> >> > >> >> > >> >> [Text File:hg.diff] > >> >> > >> > > >> > What is this patch changing? ?It's hard to tell as there are so > >> > many whitespace > >> > changes. > >> > >> The most important thing is that there are added two new > >> namespaces > >> (in a static String array transformed into a List). > >> > >> And the logic for searching of element types are: 1) slightly > >> faster > >> 2) has added new branches for elementIndex==4 and > >> elementIndex==5 > >> > > > > And what do these changes fix? > > Seems to be mostly this: > > http://svn.apache.org/viewvc?view=revision&revision=393799 > http://svn.apache.org/viewvc?view=revision&revision=518162 > Thanks Stefan. Pavel, is applying https://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/utils/IdResolver.java?r1=518162&r2=518161&pathrev=518162&view=patch not enough? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at redhat.com Wed Mar 21 06:59:52 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 21 Mar 2012 14:59:52 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <7530515f-16a4-4a6e-b7de-0a00e8f3cde4@zmail17.collab.prod.int.phx2.redhat.com> References: <7530515f-16a4-4a6e-b7de-0a00e8f3cde4@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F69DED8.2060805@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Andrew Hughes wrote: >>> ----- Original Message ----- >>>> Hi, >>>> >>>> I'd like to push following patch to IcedTea6 HEAD. >>>> This patch fixes the bug #881: >>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>> >>>> Patch contains only minimal (but still functional) changes needed >>>> to be made in Apache XML Security libraries. I've excluded other >>>> changes which is IMHO important, but not directly related to #881. >>>> >>>> (FYI: there's no API changes) >>>> >>>> ChangeLog entry: >>>> >>>> 2012-03-21 Pavel Tisnovsky >>>> >>>> PR881: Sign tests (wsse.policy.basic) failures with >>>> OpenJDK6 >>>> * Makefile.am: Updated >>>> * patches/idresolver_fix.patch: added patch for a class >>>> IdResolver. >>>> >>>> Could anybody please review this change? >>>> >>>> Thank you in advance, >>>> Pavel >>>> >>>> >>>> [Text File:hg.diff] >>>> >>> What is this patch changing? It's hard to tell as there are so >>> many whitespace >>> changes. >> The most important thing is that there are added two new namespaces >> (in a static String array transformed into a List). >> >> And the logic for searching of element types are: 1) slightly faster >> 2) has added new branches for elementIndex==4 and >> elementIndex==5 >> > > And what do these changes fix? The bug #881 :-) Old code returned null for some element types which caused an exception. To see the issue I had to setup EAP, ran its test suite and debug..debug..debug :-) From ptisnovs at redhat.com Wed Mar 21 07:18:01 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 21 Mar 2012 15:18:01 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <49fd49d1-32d9-4332-bead-2a19b438dd90@zmail17.collab.prod.int.phx2.redhat.com> References: <49fd49d1-32d9-4332-bead-2a19b438dd90@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F69E319.4040201@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> On Wed, Mar 21, 2012 at 2:42 PM, Andrew Hughes >> wrote: >>> ----- Original Message ----- >>>> Andrew Hughes wrote: >>>>> ----- Original Message ----- >>>>>> Hi, >>>>>> >>>>>> I'd like to push following patch to IcedTea6 HEAD. >>>>>> This patch fixes the bug #881: >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>>>> >>>>>> Patch contains only minimal (but still functional) changes >>>>>> needed >>>>>> to be made in Apache XML Security libraries. I've excluded >>>>>> other >>>>>> changes which is IMHO important, but not directly related to >>>>>> #881. >>>>>> >>>>>> (FYI: there's no API changes) >>>>>> >>>>>> ChangeLog entry: >>>>>> >>>>>> 2012-03-21 Pavel Tisnovsky >>>>>> >>>>>> PR881: Sign tests (wsse.policy.basic) failures with >>>>>> OpenJDK6 >>>>>> * Makefile.am: Updated >>>>>> * patches/idresolver_fix.patch: added patch for a class >>>>>> IdResolver. >>>>>> >>>>>> Could anybody please review this change? >>>>>> >>>>>> Thank you in advance, >>>>>> Pavel >>>>>> >>>>>> >>>>>> [Text File:hg.diff] >>>>>> >>>>> What is this patch changing? It's hard to tell as there are so >>>>> many whitespace >>>>> changes. >>>> The most important thing is that there are added two new >>>> namespaces >>>> (in a static String array transformed into a List). >>>> >>>> And the logic for searching of element types are: 1) slightly >>>> faster >>>> 2) has added new branches for elementIndex==4 and >>>> elementIndex==5 >>>> >>> And what do these changes fix? >> Seems to be mostly this: >> >> http://svn.apache.org/viewvc?view=revision&revision=393799 >> http://svn.apache.org/viewvc?view=revision&revision=518162 >> > > Thanks Stefan. > > Pavel, is applying https://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/utils/IdResolver.java?r1=518162&r2=518161&pathrev=518162&view=patch not enough? Sorry no, because it is a patch applicable for a code newer that the one used in OpenJDK6. For example, the old code uses Element []els=new Element[5]; which is not correct as there are now 6 element types etc. Pavel From jvanek at redhat.com Wed Mar 21 07:20:31 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 21 Mar 2012 15:20:31 +0100 Subject: [RFC][icedtea-web] fixes to reproducer engine Message-ID: <4F69E3AF.6020102@redhat.com> Hi! As I wrote yesterday, I have found some bugs inside jnlp main engine. This patch is fixing them, and I would like to push it to head and 1.2 (with minor changes). Any comments? Thanx! J. -------------- next part -------------- A non-text attachment was scrubbed... Name: fixesToJnlpReproducersEngine.diff Type: text/x-patch Size: 15370 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120321/f4a0dfc1/fixesToJnlpReproducersEngine.diff From omajid at redhat.com Wed Mar 21 07:44:03 2012 From: omajid at redhat.com (Omair Majid) Date: Wed, 21 Mar 2012 10:44:03 -0400 Subject: [icedtea-web] RFC: PR898: signed applications with big jnlp-file doesn't start Message-ID: <4F69E933.70308@redhat.com> Hi, The attached patch fixes PR898: signed applications with big jnlp-file doesn't start. We were using piped input and output streams without threads which would cause them to block and javaws to hang. Switching to ByteArrayOuputStream/StringReader takes care of this. Okay for HEAD and 1.2? Thanks, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: pr898-01.patch Type: text/x-patch Size: 5705 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120321/d133bc56/pr898-01.patch From omajid at redhat.com Wed Mar 21 07:57:03 2012 From: omajid at redhat.com (Omair Majid) Date: Wed, 21 Mar 2012 10:57:03 -0400 Subject: [icedtea-web] RFC: disable tests that are known to fail Message-ID: <4F69EC3F.2050009@redhat.com> Hi, IcedTea-Web contains a number of unit tests. Their usefulness is lessened because some of the tests always fail and so many (most?) developers will not actually run them. Even if developers do run the tests, they may miss a regression or ignore it ("X other tests fail, what's the big deal with one more failure"). I would like to have all the unit tests pass. One way is to fix the underlying problem, of course. The other is to disable the test temporarily. The attached patch disables a few parser tests that we know are broken and we wont be fixing soon. The disabled tests all check if the parser can handle mixed content in xml files (the embedded nanoxml cant) and if the parser can handle malformed xml files (pretty much all xml parsers wont). I would like to keep these tests around (because they do represent actual bugs) but disable them to give developers greater incentive to run all tests and always check that they pass. Any thoughts or comments? Thanks, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: disable-broken-unit-tests-01.patch Type: text/x-patch Size: 3627 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120321/567047b0/disable-broken-unit-tests-01.patch From jvanek at redhat.com Wed Mar 21 08:12:02 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 21 Mar 2012 16:12:02 +0100 Subject: [icedtea-web] RFC: disable tests that are known to fail In-Reply-To: <4F69EC3F.2050009@redhat.com> References: <4F69EC3F.2050009@redhat.com> Message-ID: <4F69EFC2.2070801@redhat.com> On 03/21/2012 03:57 PM, Omair Majid wrote: > Hi, > > IcedTea-Web contains a number of unit tests. Their usefulness is > lessened because some of the tests always fail and so many (most?) > developers will not actually run them. Even if developers do run the > tests, they may miss a regression or ignore it ("X other tests fail, > what's the big deal with one more failure"). I would like to have all > the unit tests pass. One way is to fix the underlying problem, of > course. The other is to disable the test temporarily. > > The attached patch disables a few parser tests that we know are broken > and we wont be fixing soon. The disabled tests all check if the parser > can handle mixed content in xml files (the embedded nanoxml cant) and if > the parser can handle malformed xml files (pretty much all xml parsers > wont). > > I would like to keep these tests around (because they do represent > actual bugs) but disable them to give developers greater incentive to > run all tests and always check that they pass. > Personally I'm against the disabling. My opinion is that once thy will be marked as @Ignored, they will be forgotten. Falling test is still representing the issue, what I consider as correct. In this matter I'm really missing TestNg grouping, and put them to some group "should fail" with description "until fix xyz is done". But I'm willing to add such annotation rather then disabling them. > Any thoughts or comments? > > Thanks, > Omair J. From ahughes at redhat.com Wed Mar 21 08:37:02 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 11:37:02 -0400 (EDT) Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <4F69E319.4040201@redhat.com> Message-ID: <24f1aaf0-7ccf-4d60-98fa-5dcefc7fe50b@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> On Wed, Mar 21, 2012 at 2:42 PM, Andrew Hughes > >> > >> wrote: > >>> ----- Original Message ----- > >>>> Andrew Hughes wrote: > >>>>> ----- Original Message ----- > >>>>>> Hi, > >>>>>> > >>>>>> I'd like to push following patch to IcedTea6 HEAD. > >>>>>> This patch fixes the bug #881: > >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >>>>>> > >>>>>> Patch contains only minimal (but still functional) changes > >>>>>> needed > >>>>>> to be made in Apache XML Security libraries. I've excluded > >>>>>> other > >>>>>> changes which is IMHO important, but not directly related to > >>>>>> #881. > >>>>>> > >>>>>> (FYI: there's no API changes) > >>>>>> > >>>>>> ChangeLog entry: > >>>>>> > >>>>>> 2012-03-21 Pavel Tisnovsky > >>>>>> > >>>>>> PR881: Sign tests (wsse.policy.basic) failures with > >>>>>> OpenJDK6 > >>>>>> * Makefile.am: Updated > >>>>>> * patches/idresolver_fix.patch: added patch for a > >>>>>> class > >>>>>> IdResolver. > >>>>>> > >>>>>> Could anybody please review this change? > >>>>>> > >>>>>> Thank you in advance, > >>>>>> Pavel > >>>>>> > >>>>>> > >>>>>> [Text File:hg.diff] > >>>>>> > >>>>> What is this patch changing? It's hard to tell as there are so > >>>>> many whitespace > >>>>> changes. > >>>> The most important thing is that there are added two new > >>>> namespaces > >>>> (in a static String array transformed into a List). > >>>> > >>>> And the logic for searching of element types are: 1) slightly > >>>> faster > >>>> 2) has added new branches for elementIndex==4 and > >>>> elementIndex==5 > >>>> > >>> And what do these changes fix? > >> Seems to be mostly this: > >> > >> http://svn.apache.org/viewvc?view=revision&revision=393799 > >> http://svn.apache.org/viewvc?view=revision&revision=518162 > >> > > > > Thanks Stefan. > > > > Pavel, is applying > > https://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/utils/IdResolver.java?r1=518162&r2=518161&pathrev=518162&view=patch > > not enough? > > Sorry no, because it is a patch applicable for a code newer that the > one used in OpenJDK6. For example, the old code > uses Element []els=new Element[5]; which is not correct as there are > now 6 element types etc. > > Pavel > > Right. Ok, let's get both of these XML fixes in, but also get them upstreamed to OpenJDK 6 too. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at redhat.com Wed Mar 21 08:46:37 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 21 Mar 2012 16:46:37 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <24f1aaf0-7ccf-4d60-98fa-5dcefc7fe50b@zmail17.collab.prod.int.phx2.redhat.com> References: <24f1aaf0-7ccf-4d60-98fa-5dcefc7fe50b@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F69F7DD.1060707@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Andrew Hughes wrote: >>> ----- Original Message ----- >>>> On Wed, Mar 21, 2012 at 2:42 PM, Andrew Hughes >>>> >>>> wrote: >>>>> ----- Original Message ----- >>>>>> Andrew Hughes wrote: >>>>>>> ----- Original Message ----- >>>>>>>> Hi, >>>>>>>> >>>>>>>> I'd like to push following patch to IcedTea6 HEAD. >>>>>>>> This patch fixes the bug #881: >>>>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>>>>>> >>>>>>>> Patch contains only minimal (but still functional) changes >>>>>>>> needed >>>>>>>> to be made in Apache XML Security libraries. I've excluded >>>>>>>> other >>>>>>>> changes which is IMHO important, but not directly related to >>>>>>>> #881. >>>>>>>> >>>>>>>> (FYI: there's no API changes) >>>>>>>> >>>>>>>> ChangeLog entry: >>>>>>>> >>>>>>>> 2012-03-21 Pavel Tisnovsky >>>>>>>> >>>>>>>> PR881: Sign tests (wsse.policy.basic) failures with >>>>>>>> OpenJDK6 >>>>>>>> * Makefile.am: Updated >>>>>>>> * patches/idresolver_fix.patch: added patch for a >>>>>>>> class >>>>>>>> IdResolver. >>>>>>>> >>>>>>>> Could anybody please review this change? >>>>>>>> >>>>>>>> Thank you in advance, >>>>>>>> Pavel >>>>>>>> >>>>>>>> >>>>>>>> [Text File:hg.diff] >>>>>>>> >>>>>>> What is this patch changing? It's hard to tell as there are so >>>>>>> many whitespace >>>>>>> changes. >>>>>> The most important thing is that there are added two new >>>>>> namespaces >>>>>> (in a static String array transformed into a List). >>>>>> >>>>>> And the logic for searching of element types are: 1) slightly >>>>>> faster >>>>>> 2) has added new branches for elementIndex==4 and >>>>>> elementIndex==5 >>>>>> >>>>> And what do these changes fix? >>>> Seems to be mostly this: >>>> >>>> http://svn.apache.org/viewvc?view=revision&revision=393799 >>>> http://svn.apache.org/viewvc?view=revision&revision=518162 >>>> >>> Thanks Stefan. >>> >>> Pavel, is applying >>> https://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/utils/IdResolver.java?r1=518162&r2=518161&pathrev=518162&view=patch >>> not enough? >> Sorry no, because it is a patch applicable for a code newer that the >> one used in OpenJDK6. For example, the old code >> uses Element []els=new Element[5]; which is not correct as there are >> now 6 element types etc. >> >> Pavel >> >> > > Right. Ok, let's get both of these XML fixes in, but also get them upstreamed to > OpenJDK 6 too. Thanks, may I use my patch (containing both fixes) or should I use the patches taken from SVN revisions (which on the other hand alter the code even more - changing API of the IdResolver class, for example)? OpenJDK6 - agreed. From ahughes at redhat.com Wed Mar 21 08:47:39 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 11:47:39 -0400 (EDT) Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: <4F69F7DD.1060707@redhat.com> Message-ID: ----- Original Message ----- > Andrew Hughes wrote: > > ----- Original Message ----- > >> Andrew Hughes wrote: > >>> ----- Original Message ----- > >>>> On Wed, Mar 21, 2012 at 2:42 PM, Andrew Hughes > >>>> > >>>> wrote: > >>>>> ----- Original Message ----- > >>>>>> Andrew Hughes wrote: > >>>>>>> ----- Original Message ----- > >>>>>>>> Hi, > >>>>>>>> > >>>>>>>> I'd like to push following patch to IcedTea6 HEAD. > >>>>>>>> This patch fixes the bug #881: > >>>>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 > >>>>>>>> > >>>>>>>> Patch contains only minimal (but still functional) changes > >>>>>>>> needed > >>>>>>>> to be made in Apache XML Security libraries. I've excluded > >>>>>>>> other > >>>>>>>> changes which is IMHO important, but not directly related to > >>>>>>>> #881. > >>>>>>>> > >>>>>>>> (FYI: there's no API changes) > >>>>>>>> > >>>>>>>> ChangeLog entry: > >>>>>>>> > >>>>>>>> 2012-03-21 Pavel Tisnovsky > >>>>>>>> > >>>>>>>> PR881: Sign tests (wsse.policy.basic) failures with > >>>>>>>> OpenJDK6 > >>>>>>>> * Makefile.am: Updated > >>>>>>>> * patches/idresolver_fix.patch: added patch for a > >>>>>>>> class > >>>>>>>> IdResolver. > >>>>>>>> > >>>>>>>> Could anybody please review this change? > >>>>>>>> > >>>>>>>> Thank you in advance, > >>>>>>>> Pavel > >>>>>>>> > >>>>>>>> > >>>>>>>> [Text File:hg.diff] > >>>>>>>> > >>>>>>> What is this patch changing? It's hard to tell as there are > >>>>>>> so > >>>>>>> many whitespace > >>>>>>> changes. > >>>>>> The most important thing is that there are added two new > >>>>>> namespaces > >>>>>> (in a static String array transformed into a List). > >>>>>> > >>>>>> And the logic for searching of element types are: 1) slightly > >>>>>> faster > >>>>>> 2) has added new branches for elementIndex==4 and > >>>>>> elementIndex==5 > >>>>>> > >>>>> And what do these changes fix? > >>>> Seems to be mostly this: > >>>> > >>>> http://svn.apache.org/viewvc?view=revision&revision=393799 > >>>> http://svn.apache.org/viewvc?view=revision&revision=518162 > >>>> > >>> Thanks Stefan. > >>> > >>> Pavel, is applying > >>> https://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/utils/IdResolver.java?r1=518162&r2=518161&pathrev=518162&view=patch > >>> not enough? > >> Sorry no, because it is a patch applicable for a code newer that > >> the > >> one used in OpenJDK6. For example, the old code > >> uses Element []els=new Element[5]; which is not correct as there > >> are > >> now 6 element types etc. > >> > >> Pavel > >> > >> > > > > Right. Ok, let's get both of these XML fixes in, but also get them > > upstreamed to > > OpenJDK 6 too. > > Thanks, > > may I use my patch (containing both fixes) or should I use the > patches taken from SVN revisions (which on the other hand > alter the code even more - changing API of the IdResolver class, for > example)? > > OpenJDK6 - agreed. > > Sorry, to clarify; yes please push the two patches you posted initially for this issue and the other XML issue in the other thread: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017783.html and look at getting them into OpenJDK6. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at redhat.com Wed Mar 21 08:52:07 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 21 Mar 2012 16:52:07 +0100 Subject: Reviewer needed: fix for IcedTea bug#881 (IcedTea6 HEAD) In-Reply-To: References: Message-ID: <4F69F927.5070302@redhat.com> Andrew Hughes wrote: > ----- Original Message ----- >> Andrew Hughes wrote: >>> ----- Original Message ----- >>>> Andrew Hughes wrote: >>>>> ----- Original Message ----- >>>>>> On Wed, Mar 21, 2012 at 2:42 PM, Andrew Hughes >>>>>> >>>>>> wrote: >>>>>>> ----- Original Message ----- >>>>>>>> Andrew Hughes wrote: >>>>>>>>> ----- Original Message ----- >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> I'd like to push following patch to IcedTea6 HEAD. >>>>>>>>>> This patch fixes the bug #881: >>>>>>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=881 >>>>>>>>>> >>>>>>>>>> Patch contains only minimal (but still functional) changes >>>>>>>>>> needed >>>>>>>>>> to be made in Apache XML Security libraries. I've excluded >>>>>>>>>> other >>>>>>>>>> changes which is IMHO important, but not directly related to >>>>>>>>>> #881. >>>>>>>>>> >>>>>>>>>> (FYI: there's no API changes) >>>>>>>>>> >>>>>>>>>> ChangeLog entry: >>>>>>>>>> >>>>>>>>>> 2012-03-21 Pavel Tisnovsky >>>>>>>>>> >>>>>>>>>> PR881: Sign tests (wsse.policy.basic) failures with >>>>>>>>>> OpenJDK6 >>>>>>>>>> * Makefile.am: Updated >>>>>>>>>> * patches/idresolver_fix.patch: added patch for a >>>>>>>>>> class >>>>>>>>>> IdResolver. >>>>>>>>>> >>>>>>>>>> Could anybody please review this change? >>>>>>>>>> >>>>>>>>>> Thank you in advance, >>>>>>>>>> Pavel >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> [Text File:hg.diff] >>>>>>>>>> >>>>>>>>> What is this patch changing? It's hard to tell as there are >>>>>>>>> so >>>>>>>>> many whitespace >>>>>>>>> changes. >>>>>>>> The most important thing is that there are added two new >>>>>>>> namespaces >>>>>>>> (in a static String array transformed into a List). >>>>>>>> >>>>>>>> And the logic for searching of element types are: 1) slightly >>>>>>>> faster >>>>>>>> 2) has added new branches for elementIndex==4 and >>>>>>>> elementIndex==5 >>>>>>>> >>>>>>> And what do these changes fix? >>>>>> Seems to be mostly this: >>>>>> >>>>>> http://svn.apache.org/viewvc?view=revision&revision=393799 >>>>>> http://svn.apache.org/viewvc?view=revision&revision=518162 >>>>>> >>>>> Thanks Stefan. >>>>> >>>>> Pavel, is applying >>>>> https://svn.apache.org/viewvc/xml/security/trunk/src/org/apache/xml/security/utils/IdResolver.java?r1=518162&r2=518161&pathrev=518162&view=patch >>>>> not enough? >>>> Sorry no, because it is a patch applicable for a code newer that >>>> the >>>> one used in OpenJDK6. For example, the old code >>>> uses Element []els=new Element[5]; which is not correct as there >>>> are >>>> now 6 element types etc. >>>> >>>> Pavel >>>> >>>> >>> Right. Ok, let's get both of these XML fixes in, but also get them >>> upstreamed to >>> OpenJDK 6 too. >> Thanks, >> >> may I use my patch (containing both fixes) or should I use the >> patches taken from SVN revisions (which on the other hand >> alter the code even more - changing API of the IdResolver class, for >> example)? >> >> OpenJDK6 - agreed. >> >> > > Sorry, to clarify; yes please push the two patches you posted initially > for this issue and the other XML issue in the other thread: > > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-March/017783.html > > and look at getting them into OpenJDK6. Ah great, TY! From omajid at redhat.com Wed Mar 21 08:54:55 2012 From: omajid at redhat.com (Omair Majid) Date: Wed, 21 Mar 2012 11:54:55 -0400 Subject: [icedtea-web] RFC: disable tests that are known to fail In-Reply-To: <4F69EFC2.2070801@redhat.com> References: <4F69EC3F.2050009@redhat.com> <4F69EFC2.2070801@redhat.com> Message-ID: <4F69F9CF.7090707@redhat.com> Hi Jiri, Thanks for your sharing your thoughts. On 03/21/2012 11:12 AM, Jiri Vanek wrote: > Personally I'm against the disabling. My opinion is that once thy will > be marked as @Ignored, they will be forgotten. Our command line output, as well as most IDEs, should show the number of tests that have been ignored. > In this matter I'm > really missing TestNg grouping, and put them to some group "should > fail" with description "until fix xyz is done". But I'm willing to add > such annotation rather then disabling them. > JUnit does support grouping, but the interface to it (if you are not using maven) is rather crappy. > Falling test is still > representing the issue, what I consider as correct. I agree. But if these tests always fail, then developers (I am guilty of this too) will often ignore running the tests or not pay too much attention to its output. For a developer, the impact of going from 0 failures to 1 failure is significant, but the impact of going from 20 failures to 21 is not so much. And as a counter-argument, these tests have been failing for a while now and they haven't been fixed. What's the value of these tests? To be honest, I don't think there is a "right" answer here, but I am trying to figure out what's the lesser evil and go with that. Thanks, Omair From ptisnovs at icedtea.classpath.org Wed Mar 21 09:22:39 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 21 Mar 2012 16:22:39 +0000 Subject: /hg/icedtea6: PR881: Sign tests (wsse.policy.basic) failures wit... Message-ID: changeset a45c40af1f42 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a45c40af1f42 author: ptisnovs date: Wed Mar 21 18:22:22 2012 +0100 PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/idresolver_fix.patch | 193 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 203 insertions(+), 1 deletions(-) diffs (236 lines): diff -r f4bcb05229c9 -r a45c40af1f42 ChangeLog --- a/ChangeLog Tue Mar 20 13:35:23 2012 +0000 +++ b/ChangeLog Wed Mar 21 18:22:22 2012 +0100 @@ -1,3 +1,10 @@ +2012-03-21 Pavel Tisnovsky + + PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 + * Makefile.am: Updated + * patches/idresolver_fix.patch: added patch for a class + IdResolver. + 2012-03-20 Mark Wielaard * Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. diff -r f4bcb05229c9 -r a45c40af1f42 Makefile.am --- a/Makefile.am Tue Mar 20 13:35:23 2012 +0000 +++ b/Makefile.am Wed Mar 21 18:22:22 2012 +0100 @@ -422,7 +422,8 @@ patches/openjdk/remove-mimpure-option-to-gcc.patch \ patches/ScriptEngineManager-doc.patch \ patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch \ - patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch + patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch \ + patches/idresolver_fix.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r f4bcb05229c9 -r a45c40af1f42 NEWS --- a/NEWS Tue Mar 20 13:35:23 2012 +0000 +++ b/NEWS Wed Mar 21 18:22:22 2012 +0100 @@ -15,6 +15,7 @@ * Bug fixes - PR865: Patching fails with patches/ecj/jaxws-getdtdtype.patch - PR886: 6-1.11.1 fails to build CACAO on ppc + - PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 * Backports - S6706974: Add krb5 test infrastructure - S6764553: com.sun.org.apache.xml.internal.security.utils.IdResolver is not thread safe diff -r f4bcb05229c9 -r a45c40af1f42 patches/idresolver_fix.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/idresolver_fix.patch Wed Mar 21 18:22:22 2012 +0100 @@ -0,0 +1,194 @@ +--- openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/IdResolver.java 2012-03-20 20:29:30.000000000 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/IdResolver.java 2012-03-20 22:18:41.094309861 +0100 +@@ -26,6 +26,7 @@ + import org.w3c.dom.Attr; + import org.w3c.dom.Document; + import org.w3c.dom.Element; ++import org.w3c.dom.NamedNodeMap; + import org.w3c.dom.Node; + + import java.util.Arrays; +@@ -175,69 +176,124 @@ + return null; + } + ++ private static java.util.List names; ++ private static int namesLength; ++ static { ++ String namespaces[]={ ++ Constants.SignatureSpecNS, ++ EncryptionConstants.EncryptionSpecNS, ++ "http://schemas.xmlsoap.org/soap/security/2000-12", ++ "http://www.w3.org/2002/03/xkms#", ++ "urn:oasis:names:tc:SAML:1.0:assertion", ++ "urn:oasis:names:tc:SAML:1.0:protocol" ++ }; ++ names = Arrays.asList(namespaces); ++ namesLength = names.size(); ++ } + +- static java.util.List names; +- static { +- String namespaces[]={ Constants.SignatureSpecNS, +- EncryptionConstants.EncryptionSpecNS, +- "http://schemas.xmlsoap.org/soap/security/2000-12", +- "http://www.w3.org/2002/03/xkms#" +- }; +- names=Arrays.asList(namespaces); +- } + ++ private static Element getElementBySearching(Node root,String id) { ++ Element []els=new Element[namesLength + 1]; ++ getEl(root,id,els); ++ for (int i=0;i2) ++ continue; ++ String value=n.getNodeValue(); ++ if (name.charAt(0)=='I') { ++ char ch=name.charAt(1); ++ if (ch=='d' && value.equals(id)) { ++ els[index]=el; ++ if (index==0) { + return 1; +- sibling=sibling.getNextSibling(); ++ } ++ } else if (ch=='D' &&value.endsWith(id)) { ++ if (index!=3) { ++ index=namesLength; ++ } ++ els[index]=el; + } +- } +- return 0; +- } +- ++ } else if ( "id".equals(name) && value.equals(id) ) { ++ if (index!=2) { ++ index=namesLength; ++ } ++ els[index]=el; ++ } ++ } ++ //For an element namespace search for importants ++ if ((elementIndex==3)&&( ++ el.getAttribute("OriginalRequestID").equals(id) || ++ el.getAttribute("RequestID").equals(id) || ++ el.getAttribute("ResponseID").equals(id))) { ++ els[3]=el; ++ } else if ((elementIndex==4)&&( ++ el.getAttribute("AssertionID").equals(id))) { ++ els[4]=el; ++ } else if ((elementIndex==5)&&( ++ el.getAttribute("RequestID").equals(id) || ++ el.getAttribute("ResponseID").equals(id))) { ++ els[5]=el; ++ } ++ return 0; ++ } + } From ahughes at redhat.com Wed Mar 21 09:44:01 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 12:44:01 -0400 (EDT) Subject: Fwd: OpenJDK bug database: Status update In-Reply-To: <20120315194543.C1780AB5@eggemoggin.niobe.net> Message-ID: <9d65455b-d86b-460e-a301-6d535f201f5d@zmail17.collab.prod.int.phx2.redhat.com> For those who may not have seen it: http://mail.openjdk.java.net/pipermail/announce/2012-March/000120.html http://mail.openjdk.java.net/pipermail/discuss/2012-March/002572.html ----- Forwarded Message ----- > Last October I announced Oracle's intent to deploy a pilot JIRA > instance > for use by the OpenJDK Community within a few months and then, if all > goes well, to migrate the JDK bug corpus from Sun's creaky old legacy > internal system to a public JIRA instance by mid-2012 [1]. > > Following that announcement Iris Clark initiated and moderated the > first > of a planned series of discussions about the design and configuration > of > the system [2][3]. In parallel Mohan Pakkurti and his team have been > working to implement the pilot system; this includes configuring > JIRA, > acquiring and provisioning hardware, and getting the myriad internal > approvals required from various parts of Oracle. > > All of this work is, unfortunately, taking much longer than > anticipated. > We remain committed to the ultimate goal of making a public JIRA > instance > available, but at this point we don't think we can deliver it in the > next > few months. In the meantime it's now mid-March, and the legacy > internal > system is going to be shut down in late July. > > Faced with these constraints, we must change our plan. Rather than > make > a public pilot system available first, we're initially going to > migrate > the JDK bug corpus from the legacy internal system to an internal > JIRA > instance. Our goal is to complete that transition by mid-June, and > in > order to do that we've assigned several more Oracle engineers to the > effort. We'll move to an external public JIRA instance some time > later, > once the hardware is in place and the necessary approvals are > obtained. > > In order to speed the migration process the initial JIRA instances, > both > internal and external, will not be as deeply customized as envisioned > in > Iris's draft [3]. Some of the ideas in the draft will no doubt > influence > the design of the initial systems; the remainder will be reconsidered > after the public system is available. > > I understand that this news will be disappointing to many; I'm not > very > happy about it myself. It's unfortunate that there won't be a public > pilot system prior to the migration, that deep customization work > will > have to wait, and that the public system most likely won't be > available > by mid-2012. It will be far worse for all concerned, however, if > there > is not even a working internal bug system for the JDK by the time > that > Sun's legacy system is shut down. This new plan therefore places the > highest priority on migrating off of that system. Oracle remains > firmly > committed to making a public system available as soon as possible > after > that. > > - Mark > > > [1] > http://mail.openjdk.java.net/pipermail/announce/2011-October/000112.html > [2] > http://mail.openjdk.java.net/pipermail/discuss/2011-December/002237.html > [3] http://cr.openjdk.java.net/~iris/jira/JIRAforOpenJDK.html > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at icedtea.classpath.org Wed Mar 21 10:00:35 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 21 Mar 2012 17:00:35 +0000 Subject: /hg/icedtea6: Added patch which fixes the Apache XML security bu... Message-ID: changeset ab91daaad8e2 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ab91daaad8e2 author: ptisnovs date: Wed Mar 21 19:00:28 2012 +0100 Added patch which fixes the Apache XML security bug #38655 diffstat: ChangeLog | 6 ++++++ Makefile.am | 3 ++- patches/apache-xml-internal-fix-bug-38655.patch | 10 ++++++++++ 3 files changed, 18 insertions(+), 1 deletions(-) diffs (41 lines): diff -r a45c40af1f42 -r ab91daaad8e2 ChangeLog --- a/ChangeLog Wed Mar 21 18:22:22 2012 +0100 +++ b/ChangeLog Wed Mar 21 19:00:28 2012 +0100 @@ -1,3 +1,9 @@ +2012-03-21 Pavel Tisnovsky + + * patches/apache-xml-internal-fix-bug-38655.patch: + Added patch which fixes the Apache XML security bug #38655 + * Makefile.am: Updated + 2012-03-21 Pavel Tisnovsky PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 diff -r a45c40af1f42 -r ab91daaad8e2 Makefile.am --- a/Makefile.am Wed Mar 21 18:22:22 2012 +0100 +++ b/Makefile.am Wed Mar 21 19:00:28 2012 +0100 @@ -423,7 +423,8 @@ patches/ScriptEngineManager-doc.patch \ patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch \ patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch \ - patches/idresolver_fix.patch + patches/idresolver_fix.patch \ + patches/apache-xml-internal-fix-bug-38655.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r a45c40af1f42 -r ab91daaad8e2 patches/apache-xml-internal-fix-bug-38655.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/apache-xml-internal-fix-bug-38655.patch Wed Mar 21 19:00:28 2012 +0100 @@ -0,0 +1,11 @@ +diff -u -r /jck/apache-xml/icedtea6/openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java security/c14n/implementations/NameSpaceSymbTable.java +--- openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java 2011-11-14 23:11:46.000000000 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java 2012-03-16 17:52:37.000000000 +0100 +@@ -370,6 +370,7 @@ + if (cur == null || (cur.equals( obj))) { + return index; + } ++ length=length-1; + do { + index=index==length? 0:++index; + cur = set[index]; From jvanek at redhat.com Wed Mar 21 09:28:45 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 21 Mar 2012 17:28:45 +0100 Subject: [icedtea-web] RFC: disable tests that are known to fail In-Reply-To: <4F69F9CF.7090707@redhat.com> References: <4F69EC3F.2050009@redhat.com> <4F69EFC2.2070801@redhat.com> <4F69F9CF.7090707@redhat.com> Message-ID: <4F6A01BD.7080207@redhat.com> On 03/21/2012 04:54 PM, Omair Majid wrote: > Hi Jiri, > > Thanks for your sharing your thoughts. > > On 03/21/2012 11:12 AM, Jiri Vanek wrote: >> Personally I'm against the disabling. My opinion is that once thy will >> be marked as @Ignored, they will be forgotten. > > Our command line output, as well as most IDEs, should show the number of > tests that have been ignored. Yap, but noone will ever care any more why those tests are ignored. > >> In this matter I'm >> really missing TestNg grouping, and put them to some group "should >> fail" with description "until fix xyz is done". But I'm willing to add >> such annotation rather then disabling them. >> > > JUnit does support grouping, but the interface to it (if you are not > using maven) is rather crappy. > >> Falling test is still >> representing the issue, what I consider as correct. > > I agree. But if these tests always fail, then developers (I am guilty of > this too) will often ignore running the tests or not pay too much > attention to its output. For a developer, the impact of going from 0 > failures to 1 failure is significant, but the impact of going from 20 > failures to 21 is not so much. And as a counter-argument, these tests To much true! > have been failing for a while now and they haven't been fixed. What's > the value of these tests? Thy are still representing the issue. > > To be honest, I don't think there is a "right" answer here, but I am > trying to figure out what's the lesser evil and go with that. As an intersection looks to annotate them @KnownToBeFailing, and allow to run make tests with configured something like skipKnownToBeFailing, which will skip all KnownToBeFailing testmethods. Spam & Advertisement: This have close connection to @Bug annotation I have posted yesterday O:) > > Thanks, > Omair J. From dbhole at redhat.com Wed Mar 21 14:06:14 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 21 Mar 2012 17:06:14 -0400 Subject: [icedtea-web] RFC: disable tests that are known to fail In-Reply-To: <4F6A01BD.7080207@redhat.com> References: <4F69EC3F.2050009@redhat.com> <4F69EFC2.2070801@redhat.com> <4F69F9CF.7090707@redhat.com> <4F6A01BD.7080207@redhat.com> Message-ID: <20120321210614.GJ6489@redhat.com> * Jiri Vanek [2012-03-21 14:27]: > On 03/21/2012 04:54 PM, Omair Majid wrote: > >Hi Jiri, > > > >Thanks for your sharing your thoughts. > > > >On 03/21/2012 11:12 AM, Jiri Vanek wrote: > >>Personally I'm against the disabling. My opinion is that once thy will > >>be marked as @Ignored, they will be forgotten. > > > >Our command line output, as well as most IDEs, should show the number of > >tests that have been ignored. > > Yap, but noone will ever care any more why those tests are ignored. > > > >>In this matter I'm > >>really missing TestNg grouping, and put them to some group "should > >>fail" with description "until fix xyz is done". But I'm willing to add > >>such annotation rather then disabling them. > >> > > > >JUnit does support grouping, but the interface to it (if you are not > >using maven) is rather crappy. > > > >>Falling test is still > >>representing the issue, what I consider as correct. > > > >I agree. But if these tests always fail, then developers (I am guilty of > >this too) will often ignore running the tests or not pay too much > >attention to its output. For a developer, the impact of going from 0 > >failures to 1 failure is significant, but the impact of going from 20 > >failures to 21 is not so much. And as a counter-argument, these tests > > To much true! > > >have been failing for a while now and they haven't been fixed. What's > >the value of these tests? > Thy are still representing the issue. > I think that we should then open a bug for them and disable the tests then. > > > >To be honest, I don't think there is a "right" answer here, but I am > >trying to figure out what's the lesser evil and go with that. > > As an intersection looks to annotate them @KnownToBeFailing, and > allow to run make tests with configured something like > skipKnownToBeFailing, which will skip all KnownToBeFailing > testmethods. > > Spam & Advertisement: > This have close connection to @Bug annotation I have posted yesterday O:) I don't think there should ever be a "known to fail" scenario because as Omair said, it will lead to developers being more lax and ignoring the output. Cheers, Deepak From ahughes at redhat.com Wed Mar 21 16:23:52 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 21 Mar 2012 19:23:52 -0400 (EDT) Subject: Fwd: /hg/buildbot: build.sh: Add --disable-system-gio for icedtea7 bu... In-Reply-To: Message-ID: <696d3774-881c-446e-9cf0-877f707accb3@zmail17.collab.prod.int.phx2.redhat.com> ----- Forwarded Message ----- > ----- Original Message ----- > > ----- Original Message ----- > > > Hi Andrew, > > > > > > On Wed, 2012-03-21 at 09:14 -0400, Andrew Hughes wrote: > > > > > elif [ "${VERSIONSTR}" == "7" ]; then > > > > > ICEDTEA_ADDITIONAL_VMS="shark" > > > > > - ADDITIONAL_OPTIONS="--disable-system-lcms" > > > > > + ADDITIONAL_OPTIONS="--disable-system-lcms > > > > > --disable-system-gio" > > > > > else > > > > > ICEDTEA_ADDITIONAL_VMS="" > > > > > ADDITIONAL_OPTIONS="--disable-system-lcms" > > > > > > > > > > > > > Why is this necessary? Old machine? > > > > > > No, Debian stable. Seems it wants GIO 2.2 and stable only has > > > 2.0. > > > It doesn't work btw... Just got the following failure report: > > > > > > > The current IcedTea7 build fails. > > > > > > > > More info at http://builder.wildebeest.org/icedtea/icedtea7/ > > > > [...] > > > > gcc -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused > > > > -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN > > > > -g > > > > -DNDEBUG -DARCH='"amd64"' -Damd64 -DLINUX > > > > -DRELEASE='"1.7.0_02-icedtea"' -D_LARGEFILE64_SOURCE > > > > -D_GNU_SOURCE > > > > -D_REENTRANT -D_LP64=1 -I. > > > > -I/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/CClassHeaders > > > > -I../../../src/solaris/javavm/export > > > > -I../../../src/share/javavm/export > > > > -I../../../src/share/native/common > > > > -I../../../src/solaris/native/common > > > > -I../../../src/share/native/sun/awt/X11 > > > > -I../../../src/solaris/native/sun/awt/X11 -I/usr/include > > > > -DXAWT > > > > -DXAWT_HACK > > > > -I/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/../../sun.awt/awt/CClassHeaders > > > > -I../../../src/solaris/native/sun/awt > > > > -I../../../src/solaris/native/sun/xawt > > > > -I../../../src/solaris/native/sun/jdga > > > > -I../../../src/share/native/sun/awt/debug > > > > -I../../../src/share/native/sun/awt/image/cvutils > > > > -I../../../src/share/native/sun/java2d > > > > -I../../../src/share/native/sun/java2d/loops > > > > -I../../../src/share/native/sun/awt/image/cvutils > > > > -I../../../src/share/native/sun/awt/image > > > > -I../../../src/share/native/sun/font > > > > -I../../../src/solaris/native/sun/java2d > > > > -I../../../src/share/native/sun/java2d/pipe > > > > -I../../../src/share/native/sun/java2d/opengl > > > > -I../../../src/solaris/native/sun/java2d/opengl > > > > -I../../../src/solaris/native/sun/java2d/x11 > > > > -I../../../src/share/native/sun/dc/path > > > > -I../../../src/share/native/sun/dc/doe > > > > -I../../../src/share/native/sun/awt/alphacomposite > > > > -I../../../src/share/native/sun/awt/medialib > > > > -I../../../src/solaris/native/sun/awt/medialib > > > > -I../../../src/solaris/native/sun/font > > > > -I../../../src/share/native/sun/awt > > > > -I../../../src/solaris/native/sun/awt -pthread > > > > -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include > > > > -I/usr/include/atk-1.0 -I/usr/include/cairo > > > > -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ > > > > -I/usr/include/pixman-1 -I/usr/include/freetype2 > > > > -I/usr/include/libpng12 -I/usr/include/glib-2.0 > > > > -I/usr/lib/glib-2.0/include -DUSE_SYSTEM_GTK > > > > -DUSE_SYSTEM_CUPS > > > > -DUSE_SYSTEM_FONTCONFIG > > > > -I../../../src/solaris/native/common/deps/glib2 > > > > -I/usr/X11R6/include/X11/extensions > > > > -I/usr/include/X11/extensions > > > > -I/usr/X11R6//include -c -o > > > > /usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/obj64/awt_Desktop.o > > > > ../../../src/solaris/native/sun/xawt/awt_Desktop.c > > > > gcc -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused > > > > -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN > > > > -g > > > > -DNDEBUG -DARCH='"amd64"' -Damd64 -DLINUX > > > > -DRELEASE='"1.7.0_02-icedtea"' -D_LARGEFILE64_SOURCE > > > > -D_GNU_SOURCE > > > > -D_REENTRANT -D_LP64=1 -I. > > > > -I/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/CClassHeaders > > > > -I../../../src/solaris/javavm/export > > > > -I../../../src/share/javavm/export > > > > -I../../../src/share/native/common > > > > -I../../../src/solaris/native/common > > > > -I../../../src/share/native/sun/awt/X11 > > > > -I../../../src/solaris/native/sun/awt/X11 -I/usr/include > > > > -DXAWT > > > > -DXAWT_HACK > > > > -I/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/../../sun.awt/awt/CClassHeaders > > > > -I../../../src/solaris/native/sun/awt > > > > -I../../../src/solaris/native/sun/xawt > > > > -I../../../src/solaris/native/sun/jdga > > > > -I../../../src/share/native/sun/awt/debug > > > > -I../../../src/share/native/sun/awt/image/cvutils > > > > -I../../../src/share/native/sun/java2d > > > > -I../../../src/share/native/sun/java2d/loops > > > > -I../../../src/share/native/sun/awt/image/cvutils > > > > -I../../../src/share/native/sun/awt/image > > > > -I../../../src/share/native/sun/font > > > > -I../../../src/solaris/native/sun/java2d > > > > -I../../../src/share/native/sun/java2d/pipe > > > > -I../../../src/share/native/sun/java2d/opengl > > > > -I../../../src/solaris/native/sun/java2d/opengl > > > > -I../../../src/solaris/native/sun/java2d/x11 > > > > -I../../../src/share/native/sun/dc/path > > > > -I../../../src/share/native/sun/dc/doe > > > > -I../../../src/share/native/sun/awt/alphacomposite > > > > -I../../../src/share/native/sun/awt/medialib > > > > -I../../../src/solaris/native/sun/awt/medialib > > > > -I../../../src/solaris/native/sun/font > > > > -I../../../src/share/native/sun/awt > > > > -I../../../src/solaris/native/sun/awt -pthread > > > > -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include > > > > -I/usr/include/atk-1.0 -I/usr/include/cairo > > > > -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ > > > > -I/usr/include/pixman-1 -I/usr/include/freetype2 > > > > -I/usr/include/libpng12 -I/usr/include/glib-2.0 > > > > -I/usr/lib/glib-2.0/include -DUSE_SYSTEM_GTK > > > > -DUSE_SYSTEM_CUPS > > > > -DUSE_SYSTEM_FONTCONFIG > > > > -I../../../src/solaris/native/common/deps/glib2 > > > > -I/usr/X11R6/include/X11/extensions > > > > -I/usr/include/X11/extensions > > > > -I/usr/X11R6//include -c -o > > > > /usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/obj64/awt_UNIXToolkit.o > > > > ../../../src/solaris/native/sun/awt/awt_UNIXToolkit.c > > > > In file included from > > > > ../../../src/solaris/native/sun/xawt/awt_Desktop.c:32: > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:31: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'type_init' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:32: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'object_unref' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:33: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'file_new_for_path' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:34: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'file_query_info' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:35: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'file_info_get_content_type' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:36: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'app_info_launch_default_for_uri' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:37: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'settings_new' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:38: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'settings_get_boolean' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:39: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'settings_get_string' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:40: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'settings_get_strv' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:41: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'settings_get_int' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:42: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'settings_get_child' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:43: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before > > > > 'gstrfreev' > > > > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:44: > > > > error: > > > > expected '=', ',', ';', 'asm' or '__attribute__' before 'gfree' > > > > ../../../src/solaris/native/sun/xawt/awt_Desktop.c: In function > > > > 'init': > > > > ../../../src/solaris/native/sun/xawt/awt_Desktop.c:55: error: > > > > 'type_init' undeclared (first use in this function) > > > > ../../../src/solaris/native/sun/xawt/awt_Desktop.c:55: error: > > > > (Each > > > > undeclared identifier is reported only once > > > > ../../../src/solaris/native/sun/xawt/awt_Desktop.c:55: error: > > > > for > > > > each function it appears in.) > > > > ../../../src/solaris/native/sun/xawt/awt_Desktop.c: In function > > > > 'Java_sun_awt_X11_XDesktopPeer_gnome_1url_1show': > > > > ../../../src/solaris/native/sun/xawt/awt_Desktop.c:126: error: > > > > 'app_info_launch_default_for_uri' undeclared (first use in this > > > > function) > > > > make[6]: *** > > > > [/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/obj64/awt_Desktop.o] > > > > Error 1 > > > > make[6]: *** Waiting for unfinished jobs.... > > > > ../../../src/solaris/native/sun/awt/awt_UNIXToolkit.c: In > > > > function > > > > 'Java_sun_awt_UNIXToolkit_gtkCheckVersionImpl': > > > > ../../../src/solaris/native/sun/awt/awt_UNIXToolkit.c:275: > > > > warning: > > > > assignment discards qualifiers from pointer target type > > > > make[6]: Leaving directory > > > > `/usr/local/build/icedtea7-build/openjdk-boot/jdk/make/sun/xawt' > > > > make[5]: *** [library_parallel_compile] Error 2 > > > > make[5]: Leaving directory > > > > `/usr/local/build/icedtea7-build/openjdk-boot/jdk/make/sun/xawt' > > > > make[4]: *** [all] Error 1 > > > > make[4]: Leaving directory > > > > `/usr/local/build/icedtea7-build/openjdk-boot/jdk/make/sun' > > > > make[3]: *** [all] Error 1 > > > > make[3]: Leaving directory > > > > `/usr/local/build/icedtea7-build/openjdk-boot/jdk/make' > > > > make[2]: *** [jdk-build] Error 2 > > > > make[2]: Leaving directory > > > > `/usr/local/build/icedtea7-build/openjdk-boot' > > > > make[1]: *** [build_product_image] Error 2 > > > > make[1]: Leaving directory > > > > `/usr/local/build/icedtea7-build/openjdk-boot' > > > > make: *** [stamps/icedtea-boot.stamp] Error 2 > > > > > > Haven't looked yet what is going on. > > > > > > > I think this is because: > > > > -I../../../src/solaris/native/common/deps/glib2 > > > > appears after: > > > > -I/usr/lib/glib-2.0/include > > > > which is brought in by gtk+. > > > > I guess we need to make the include logic more complicated and use > > differently named headers, depending on whether USE_SYSTEM_GTK is > > on > > or not. > > > > At present, #include is used and is intended to pick up > > the right one, depending on which has been included (either from > > glib or locally). > > But the presence of Gtk+ is confusing this. > > > > Placing GIO before Gtk+ may work. I'll try this. > > > > Scratch that. It'll just create the same problem for Gtk+. > > I'll rename the header. > > > > Cheers, > > > > > > Mark > > > > > > > -- > > Andrew :) > > > > Free Java Software Engineer > > Red Hat, Inc. (http://www.redhat.com) > > > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > > From jvanek at redhat.com Thu Mar 22 01:13:28 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 09:13:28 +0100 Subject: [icedtea-web] RFC: disable tests that are known to fail In-Reply-To: <20120321210614.GJ6489@redhat.com> References: <4F69EC3F.2050009@redhat.com> <4F69EFC2.2070801@redhat.com> <4F69F9CF.7090707@redhat.com> <4F6A01BD.7080207@redhat.com> <20120321210614.GJ6489@redhat.com> Message-ID: <4F6ADF28.7050008@redhat.com> On 03/21/2012 10:06 PM, Deepak Bhole wrote: > * Jiri Vanek [2012-03-21 14:27]: >> On 03/21/2012 04:54 PM, Omair Majid wrote: >>> Hi Jiri, >>> >>> Thanks for your sharing your thoughts. >>> >>> On 03/21/2012 11:12 AM, Jiri Vanek wrote: >>>> Personally I'm against the disabling. My opinion is that once thy will >>>> be marked as @Ignored, they will be forgotten. >>> >>> Our command line output, as well as most IDEs, should show the number of >>> tests that have been ignored. >> >> Yap, but noone will ever care any more why those tests are ignored. >>> >>>> In this matter I'm >>>> really missing TestNg grouping, and put them to some group "should >>>> fail" with description "until fix xyz is done". But I'm willing to add >>>> such annotation rather then disabling them. >>>> >>> >>> JUnit does support grouping, but the interface to it (if you are not >>> using maven) is rather crappy. >>> >>>> Falling test is still >>>> representing the issue, what I consider as correct. >>> >>> I agree. But if these tests always fail, then developers (I am guilty of >>> this too) will often ignore running the tests or not pay too much >>> attention to its output. For a developer, the impact of going from 0 >>> failures to 1 failure is significant, but the impact of going from 20 >>> failures to 21 is not so much. And as a counter-argument, these tests >> >> To much true! >> >>> have been failing for a while now and they haven't been fixed. What's >>> the value of these tests? >> Thy are still representing the issue. >> > > I think that we should then open a bug for them and disable the tests > then. Sure! And for most of them is already opened. The Bug annotation should help to ensure bidirectional tracking. > >>> >>> To be honest, I don't think there is a "right" answer here, but I am >>> trying to figure out what's the lesser evil and go with that. >> >> As an intersection looks to annotate them @KnownToBeFailing, and >> allow to run make tests with configured something like >> skipKnownToBeFailing, which will skip all KnownToBeFailing >> testmethods. >> >> Spam& Advertisement: >> This have close connection to @Bug annotation I have posted yesterday O:) > > I don't think there should ever be a "known to fail" scenario because as > Omair said, it will lead to developers being more lax and ignoring the > output. Yes. That's why I'm suggesting to make them marked, and allow them to to be ignored. But not to ignore them so forcibly and so "without-return". To be clear - I'm for some kind of skipping, but do not like the idea of used @ignored annotation. J. From jvanek at redhat.com Thu Mar 22 02:38:06 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 10:38:06 +0100 Subject: [icedtea-web] RFC: PR898: signed applications with big jnlp-file doesn't start In-Reply-To: <4F69E933.70308@redhat.com> References: <4F69E933.70308@redhat.com> Message-ID: <4F6AF2FE.6040707@redhat.com> On 03/21/2012 03:44 PM, Omair Majid wrote: > Hi, > > The attached patch fixes PR898: signed applications with big jnlp-file > doesn't start. We were using piped input and output streams without > threads which would cause them to block and javaws to hang. Switching to > ByteArrayOuputStream/StringReader takes care of this. > > Okay for HEAD and 1.2? Hi Omair! Ty for patch, I think that test can go in immediately (even separately). For patch itself I have few comments inline > > Thanks, > Omair > > > pr898-01.patch > > > diff --git a/ChangeLog b/ChangeLog > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,13 @@ > +2012-03-21 Omair Majid > + > + * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java > + (testIsMatchDoesNotHangOnLargeData): New method. > + > +2012-03-21 Lars Herschke > + > + * netx/net/sourceforge/jnlp/JNLPMatcher.java (JNLPMatcher): Handle large Little bit more like replacing pipes by ArrayStreams can be better, but I do not insists as You are just pushing other's changeset. > + files correctly. > + > 2012-03-19 Danesh Dadachanji > > Fix failing unit test missing title/vendor tags in the JNLP stream. > diff --git a/netx/net/sourceforge/jnlp/JNLPMatcher.java b/netx/net/sourceforge/jnlp/JNLPMatcher.java > --- a/netx/net/sourceforge/jnlp/JNLPMatcher.java > +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java > @@ -38,11 +38,12 @@ > package net.sourceforge.jnlp; > > import java.util.List; > +import java.io.ByteArrayOutputStream; > import java.io.InputStream; > import java.io.InputStreamReader; > import java.io.OutputStream; > -import java.io.PipedInputStream; > -import java.io.PipedOutputStream; > +import java.io.Reader; > +import java.io.StringReader; > import java.util.Arrays; > import java.util.Collections; > import java.util.LinkedList; > @@ -75,7 +76,7 @@ > * if IOException, XMLParseException is thrown during parsing; > * Or launchJNLP/appTemplate is null > */ > - public JNLPMatcher(InputStreamReader appTemplate, InputStreamReader launchJNLP, > + public JNLPMatcher(Reader appTemplate, Reader launchJNLP, > boolean isTemplate) throws JNLPMatcherException { > > if (appTemplate == null&& launchJNLP == null) > @@ -87,29 +88,25 @@ > throw new JNLPMatcherException("Launching JNLP file is null."); > > //Declare variables for signed JNLP file > - PipedInputStream pinTemplate= null; > - PipedOutputStream poutTemplate= null; > + ByteArrayOutputStream poutTemplate= null; > > //Declare variables for launching JNLP file > - PipedInputStream pinJNLPFile = null; > - PipedOutputStream poutJNLPFile = null; > + ByteArrayOutputStream poutJNLPFile = null; > > try { > XMLElement appTemplateXML = new XMLElement(); > XMLElement launchJNLPXML = new XMLElement(); > > // Remove the comments and CDATA from the JNLP file > - pinTemplate = new PipedInputStream(); > - poutTemplate = new PipedOutputStream(pinTemplate); > + poutTemplate = new ByteArrayOutputStream(); > appTemplateXML.sanitizeInput(appTemplate, poutTemplate); > > - pinJNLPFile = new PipedInputStream(); > - poutJNLPFile = new PipedOutputStream(pinJNLPFile); > + poutJNLPFile = new ByteArrayOutputStream(); > launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); > > // Parse both files > - appTemplateXML.parseFromReader(new InputStreamReader(pinTemplate)); > - launchJNLPXML.parseFromReader(new InputStreamReader(pinJNLPFile)); > + appTemplateXML.parseFromReader(new StringReader(poutTemplate.toString())); those two toString() should be definietly called with encoding. Although it is not deprecated (as methods without encoding are in most of other classes), it can cause mess. http://docs.oracle.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#toString%28java.lang.String%29 There is small pitfall anyway - you should use the encoding defined in jnlp's xml file instead of any "hardcoded". (and I think that with this new approach sting <=> byte[] without pipes you can easily do this). I'm afraid most of jnlp files have been written on windows machines anyway:) If you are ok now with default utf-8 encoding, I'm for, and if you will consider the encoding reading and then re-encode if necessary, then it can be as separate patch. > + launchJNLPXML.parseFromReader(new StringReader(poutJNLPFile.toString())); > > // Initialize parent nodes > this.appTemplateNode = new Node(appTemplateXML); > @@ -122,10 +119,8 @@ > e); > } finally { > // Close all stream > - closeInputStream(pinTemplate); > closeOutputStream(poutTemplate); > > - closeInputStream(pinJNLPFile); > closeOutputStream(poutJNLPFile); > > } One more idea I have to this patch is in Parser (net/sourceforge/jnlp/Parser.java) is also used Piped mechanism. Isn't worthy to fix it too? And there is also some wired encoing recognition... At least look at it (as I was gazing to it quite confused). I was also thinking that get rid of buffering can cause unnecessary requirements but at he end I think there is just minor increase if any. Please correct me If I'm judging it wrongly. > diff --git a/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java > --- a/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java > +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java > @@ -37,12 +37,13 @@ > > package net.sourceforge.jnlp; > > -import static org.junit.Assert.fail; > - > import java.io.IOException; > import java.io.InputStream; > import java.io.InputStreamReader; > -import junit.framework.Assert; > +import java.io.StringReader; > +import java.util.Random; > + > +import org.junit.Assert; > import org.junit.Test; > > public class JNLPMatcherTest { > @@ -461,4 +462,36 @@ > fileReader.close(); > launchReader.close(); > } > + > + @Test (timeout=1000 /*ms*/) > + public void testIsMatchDoesNotHangOnLargeData() throws JNLPMatcherException { > + /* construct an alphabet containing characters 'a' to 'z' */ > + final int ALPHABET_SIZE = 26; > + char[] alphabet = new char[ALPHABET_SIZE]; > + for (int i = 0; i< ALPHABET_SIZE; i++) { > + alphabet[i] = (char)('a' + i); > + } > + /* generate a long but random string using the alphabet */ > + final Random r = new Random(); > + final int STRING_SIZE = 1024 * 1024; // 1 MB > + StringBuilder descriptionBuilder = new StringBuilder(STRING_SIZE); > + for (int i = 0; i< STRING_SIZE; i++) { > + descriptionBuilder.append(alphabet[r.nextInt(ALPHABET_SIZE)]); > + } > + String longDescription = descriptionBuilder.toString(); > + > + String file = > + "\n" + > + "\n" + > + "JNLPMatcher hanges on large file size\n" + > + "IcedTea\n" + > + "" + longDescription +"\n" + > + "\n" + > + "\n"; > + > + StringReader reader1 = new StringReader(file); > + StringReader reader2 = new StringReader(file); > + JNLPMatcher matcher = new JNLPMatcher(reader1, reader2, false); > + Assert.assertTrue(matcher.isMatch()); > + } > } > Best regards and sorry if I read the patch wrongly J. From ptisnovs at icedtea.classpath.org Thu Mar 22 02:39:06 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 22 Mar 2012 09:39:06 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/ClippingPathByRectang... Message-ID: changeset 9d033e2f3f68 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=9d033e2f3f68 author: Pavel Tisnovsky date: Thu Mar 22 10:41:44 2012 +0100 * src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java: Added new tests to this test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java | 362 +++++++++++- 2 files changed, 339 insertions(+), 28 deletions(-) diffs (448 lines): diff -r 340dbde1b7e4 -r 9d033e2f3f68 ChangeLog --- a/ChangeLog Wed Mar 21 10:36:00 2012 +0100 +++ b/ChangeLog Thu Mar 22 10:41:44 2012 +0100 @@ -1,3 +1,8 @@ +2012-03-22 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java: + Added new tests to this test suite. + 2012-03-21 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java: diff -r 340dbde1b7e4 -r 9d033e2f3f68 src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java --- a/src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java Wed Mar 21 10:36:00 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java Thu Mar 22 10:41:44 2012 +0100 @@ -661,6 +661,50 @@ } /** + * Check if cubic path could be clipped by a rectangle area. Path is + * rendered using stroke paint with default stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByRectangleAreaDashedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic path could be clipped by a rectangle area. Path is + * rendered using stroke paint with default stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testQuadraticPathByRectangleAreaDashedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if closed path could be clipped by a rectangle area. Path is * rendered using stroke paint with default stroke width. * @@ -683,6 +727,28 @@ } /** + * Check if closed crossed path could be clipped by a rectangle area. Path is + * rendered using stroke paint with default stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByRectangleAreaDashedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCrossedClosedPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if line path could be clipped by a rectangle area. Path is * rendered using stroke paint with thick stroke width. * @@ -707,6 +773,54 @@ } /** + * Check if quadratic path could be clipped by a rectangle area. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipQuadraticPathByRectangleAreaDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic path could be clipped by a rectangle area. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByRectangleAreaDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if closed path could be clipped by a rectangle area. Path is * rendered using stroke paint with thick stroke width. * @@ -731,6 +845,30 @@ } /** + * Check if crossed closed path could be clipped by a rectangle area. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByRectangleAreaDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCrossedClosedPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if line path could be clipped by a rectangle area. Path is * rendered using stroke paint with thick stroke width. * @@ -747,7 +885,7 @@ // set stroke width CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); // set dashed pattern - CommonRenderingStyles.setDashedStrokePatternForExtraThickPaths(graphics2d); + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path drawLinePathClippedByRectangleArea(image, graphics2d); // test result @@ -755,6 +893,54 @@ } /** + * Check if quadratic path could be clipped by a rectangle area. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipQuadraticPathByRectangleAreaDashedExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic path could be clipped by a rectangle area. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByRectangleAreaDashedExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if closed path could be clipped by a rectangle area. Path is * rendered using stroke paint with thick stroke width. * @@ -771,7 +957,7 @@ // set stroke width CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); // set dashed pattern - CommonRenderingStyles.setDashedStrokePatternForExtraThickPaths(graphics2d); + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path drawClosedPathClippedByRectangleArea(image, graphics2d); // test result @@ -779,8 +965,152 @@ } /** + * Check if crossed closed path could be clipped by a rectangle area. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByRectangleAreaDashedExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCrossedClosedPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if line path could be clipped by a rectangle area. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipLinePathByRectangleAreaDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawLinePathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic path could be clipped by a rectangle area. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipQuadraticPathByRectangleAreaDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic path could be clipped by a rectangle area. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByRectangleAreaDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if closed path could be clipped by a rectangle area. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipClosedPathByRectangleAreaDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawClosedPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if crossed closed path could be clipped by a rectangle area. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByRectangleAreaDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCrossedClosedPathClippedByRectangleArea(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if line path could be clipped by a rectangle area. Path is rendered - * using stroke paint with thick stroke width and using round cap style. + * using dotted stroke paint with normal stroke width and using round cap style. * * @param image * work image @@ -793,7 +1123,7 @@ // render clip rectangle CommonClippingOperations.renderClipRectangle(image, graphics2d); // set stroke width - CommonRenderingStyles.setStrokeThickWidth(graphics2d, BasicStroke.CAP_ROUND); + //CommonRenderingStyles.setStrokeThickWidth(graphics2d, BasicStroke.CAP_ROUND); // set dashed pattern CommonRenderingStyles.setDashedStrokePattern(graphics2d, new float[] {1,20}); // set clip region and draw the path @@ -803,30 +1133,6 @@ } /** - * Check if closed path could be clipped by a rectangle area. Path is rendered - * using stroke paint with thick stroke width and using round cap style. - * - * @param image - * work image - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testClipClosedPathByRectangleAreaDottedStrokePaint(TestImage image, Graphics2D graphics2d) - { - // render clip rectangle - CommonClippingOperations.renderClipRectangle(image, graphics2d); - // set stroke width - CommonRenderingStyles.setStrokeThickWidth(graphics2d, BasicStroke.CAP_ROUND); - // set dashed pattern - CommonRenderingStyles.setDashedStrokePattern(graphics2d, new float[] {1,20}); - // set clip region and draw the path - drawClosedPathClippedByRectangleArea(image, graphics2d); - // test result - return TestResult.PASSED; - } - - /** * Entry point to the test suite. * * @param args From lhersch at dssgmbh.de Thu Mar 22 04:37:57 2012 From: lhersch at dssgmbh.de (Lars Herschke) Date: Thu, 22 Mar 2012 12:37:57 +0100 Subject: [icedtea-web] RFC: PR898: signed applications with big jnlp-file doesn't start In-Reply-To: <4F6AF2FE.6040707@redhat.com> References: <4F69E933.70308@redhat.com> <4F6AF2FE.6040707@redhat.com> Message-ID: <4F6B0F15.1050402@dssgmbh.de> Hi, > those two toString() should be definietly called with encoding. Although it is not deprecated (as methods without encoding are in most of other classes), it can cause mess. > http://docs.oracle.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#toString%28java.lang.String%29 InputStreamReader has also doing a conversion into characters. > One more idea I have to this patch is in Parser (net/sourceforge/jnlp/Parser.java) is also used Piped mechanism. Isn't worthy to fix it too? Parser.java use threads, so there is no patch necessary. Jiri Vanek schrieb: > On 03/21/2012 03:44 PM, Omair Majid wrote: >> Hi, >> >> The attached patch fixes PR898: signed applications with big jnlp-file >> doesn't start. We were using piped input and output streams without >> threads which would cause them to block and javaws to hang. Switching to >> ByteArrayOuputStream/StringReader takes care of this. >> >> Okay for HEAD and 1.2? > Hi Omair! > > Ty for patch, I think that test can go in immediately (even separately). > For patch itself I have few comments inline > >> >> Thanks, >> Omair >> >> >> pr898-01.patch >> >> >> diff --git a/ChangeLog b/ChangeLog >> --- a/ChangeLog >> +++ b/ChangeLog >> @@ -1,3 +1,13 @@ >> +2012-03-21 Omair Majid >> + >> + * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> + (testIsMatchDoesNotHangOnLargeData): New method. >> + >> +2012-03-21 Lars Herschke >> + >> + * netx/net/sourceforge/jnlp/JNLPMatcher.java (JNLPMatcher): >> Handle large > > Little bit more like replacing pipes by ArrayStreams can be better, but > I do not insists as You are just pushing other's changeset. > >> + files correctly. >> + >> 2012-03-19 Danesh Dadachanji >> >> Fix failing unit test missing title/vendor tags in the JNLP stream. >> diff --git a/netx/net/sourceforge/jnlp/JNLPMatcher.java >> b/netx/net/sourceforge/jnlp/JNLPMatcher.java >> --- a/netx/net/sourceforge/jnlp/JNLPMatcher.java >> +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java >> @@ -38,11 +38,12 @@ >> package net.sourceforge.jnlp; >> >> import java.util.List; >> +import java.io.ByteArrayOutputStream; >> import java.io.InputStream; >> import java.io.InputStreamReader; >> import java.io.OutputStream; >> -import java.io.PipedInputStream; >> -import java.io.PipedOutputStream; >> +import java.io.Reader; >> +import java.io.StringReader; >> import java.util.Arrays; >> import java.util.Collections; >> import java.util.LinkedList; >> @@ -75,7 +76,7 @@ >> * if IOException, XMLParseException is thrown >> during parsing; >> * Or launchJNLP/appTemplate is null >> */ >> - public JNLPMatcher(InputStreamReader appTemplate, >> InputStreamReader launchJNLP, >> + public JNLPMatcher(Reader appTemplate, Reader launchJNLP, >> boolean isTemplate) throws JNLPMatcherException { >> >> if (appTemplate == null&& launchJNLP == null) >> @@ -87,29 +88,25 @@ >> throw new JNLPMatcherException("Launching JNLP file is >> null."); >> >> //Declare variables for signed JNLP file >> - PipedInputStream pinTemplate= null; >> - PipedOutputStream poutTemplate= null; >> + ByteArrayOutputStream poutTemplate= null; >> >> //Declare variables for launching JNLP file >> - PipedInputStream pinJNLPFile = null; >> - PipedOutputStream poutJNLPFile = null; >> + ByteArrayOutputStream poutJNLPFile = null; >> >> try { >> XMLElement appTemplateXML = new XMLElement(); >> XMLElement launchJNLPXML = new XMLElement(); >> >> // Remove the comments and CDATA from the JNLP file >> - pinTemplate = new PipedInputStream(); >> - poutTemplate = new PipedOutputStream(pinTemplate); >> + poutTemplate = new ByteArrayOutputStream(); >> appTemplateXML.sanitizeInput(appTemplate, poutTemplate); >> >> - pinJNLPFile = new PipedInputStream(); >> - poutJNLPFile = new PipedOutputStream(pinJNLPFile); >> + poutJNLPFile = new ByteArrayOutputStream(); >> launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); >> >> // Parse both files >> - appTemplateXML.parseFromReader(new >> InputStreamReader(pinTemplate)); >> - launchJNLPXML.parseFromReader(new >> InputStreamReader(pinJNLPFile)); >> + appTemplateXML.parseFromReader(new >> StringReader(poutTemplate.toString())); > > those two toString() should be definietly called with encoding. Although > it is not deprecated (as methods without encoding are in most of other > classes), it can cause mess. > http://docs.oracle.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#toString%28java.lang.String%29 > > > There is small pitfall anyway - you should use the encoding defined in > jnlp's xml file instead of any "hardcoded". (and I think that with this > new approach sting <=> byte[] without pipes you can easily do this). I'm > afraid most of jnlp files have been written on windows machines anyway:) > > If you are ok now with default utf-8 encoding, I'm for, and if you will > consider the encoding reading and then re-encode if necessary, then it > can be as separate patch. > >> + launchJNLPXML.parseFromReader(new >> StringReader(poutJNLPFile.toString())); >> >> // Initialize parent nodes >> this.appTemplateNode = new Node(appTemplateXML); >> @@ -122,10 +119,8 @@ >> e); >> } finally { >> // Close all stream >> - closeInputStream(pinTemplate); >> closeOutputStream(poutTemplate); >> >> - closeInputStream(pinJNLPFile); >> closeOutputStream(poutJNLPFile); >> >> } > > One more idea I have to this patch is in Parser > (net/sourceforge/jnlp/Parser.java) is also used Piped mechanism. Isn't > worthy to fix it too? And there is also some wired encoing > recognition... At least look at it (as I was gazing to it quite confused). > > I was also thinking that get rid of buffering can cause unnecessary > requirements but at he end I think there is just minor increase if any. > Please correct me If I'm judging it wrongly. > > >> diff --git a/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> --- a/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> @@ -37,12 +37,13 @@ >> >> package net.sourceforge.jnlp; >> >> -import static org.junit.Assert.fail; >> - >> import java.io.IOException; >> import java.io.InputStream; >> import java.io.InputStreamReader; >> -import junit.framework.Assert; >> +import java.io.StringReader; >> +import java.util.Random; >> + >> +import org.junit.Assert; >> import org.junit.Test; >> >> public class JNLPMatcherTest { >> @@ -461,4 +462,36 @@ >> fileReader.close(); >> launchReader.close(); >> } >> + >> + @Test (timeout=1000 /*ms*/) >> + public void testIsMatchDoesNotHangOnLargeData() throws >> JNLPMatcherException { >> + /* construct an alphabet containing characters 'a' to 'z' */ >> + final int ALPHABET_SIZE = 26; >> + char[] alphabet = new char[ALPHABET_SIZE]; >> + for (int i = 0; i< ALPHABET_SIZE; i++) { >> + alphabet[i] = (char)('a' + i); >> + } >> + /* generate a long but random string using the alphabet */ >> + final Random r = new Random(); >> + final int STRING_SIZE = 1024 * 1024; // 1 MB >> + StringBuilder descriptionBuilder = new >> StringBuilder(STRING_SIZE); >> + for (int i = 0; i< STRING_SIZE; i++) { >> + >> descriptionBuilder.append(alphabet[r.nextInt(ALPHABET_SIZE)]); >> + } >> + String longDescription = descriptionBuilder.toString(); >> + >> + String file = >> + "\n" + >> + "\n" + >> + "JNLPMatcher hanges on large file >> size\n" + >> + "IcedTea\n" + >> + "" + longDescription +"\n" + >> + "\n" + >> + "\n"; >> + >> + StringReader reader1 = new StringReader(file); >> + StringReader reader2 = new StringReader(file); >> + JNLPMatcher matcher = new JNLPMatcher(reader1, reader2, false); >> + Assert.assertTrue(matcher.isMatch()); >> + } >> } >> > > > Best regards and sorry if I read the patch wrongly > J. > From bugzilla-daemon at icedtea.classpath.org Thu Mar 22 04:46:52 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 22 Mar 2012 11:46:52 +0000 Subject: [Bug 903] New: Hotspot SIGSEGV crash while processing infinity Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=903 Bug #: 903 Summary: Hotspot SIGSEGV crash while processing infinity Classification: Unclassified Product: IcedTea Version: 6-1.11.1 Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se Expected output: ... 1.7309105769399324 1.7585027028517948 1.2800954606489774 ======================= stuck in endless loop while processing infinity Output using hotspot on x86_64 ... 1.7309105769399324 1.7585027028517948 1.2800954606489774 ======================= *crash* This bug triggers using: # JRE version: 6.0_24-b24 # Java VM: OpenJDK 64-Bit Server VM (20.0-b12 mixed mode linux-amd64 compressed oops) # Derivative: IcedTea6 1.11.1 # Distribution: Fedora release 16 (Verne), package fedora-65.1.11.1.fc16-x86_64 This bug are fixed in icedtea7 This bug only trigger using hotspot on x86_64 Testcase: wget http://ftp.cica.es/mirrors/maven2/colt/colt/1.2.0/colt-1.2.0.jar cat > JVMCrash.java < References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=903 --- Comment #1 from Xerxes R?nby 2012-03-22 11:50:06 UTC --- Created attachment 678 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=678 x86_64 crash 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. From jvanek at redhat.com Thu Mar 22 04:56:38 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 12:56:38 +0100 Subject: [icedtea-web] RFC: PR898: signed applications with big jnlp-file doesn't start In-Reply-To: <4F6B0F15.1050402@dssgmbh.de> References: <4F69E933.70308@redhat.com> <4F6AF2FE.6040707@redhat.com> <4F6B0F15.1050402@dssgmbh.de> Message-ID: <4F6B1376.4040100@redhat.com> On 03/22/2012 12:37 PM, Lars Herschke wrote: > Hi, > >> those two toString() should be definietly called with encoding. Although it is not deprecated (as methods without encoding are in most of other classes), it can cause mess. >> http://docs.oracle.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#toString%28java.lang.String%29 > > InputStreamReader has also doing a conversion into characters. Yes - and set up an encoding is strongly recommended. > >> One more idea I have to this patch is in Parser (net/sourceforge/jnlp/Parser.java) is also used Piped mechanism. Isn't worthy to fix it too? > > Parser.java use threads, so there is no patch necessary. Did it? ok then. > > > > Jiri Vanek schrieb: >> On 03/21/2012 03:44 PM, Omair Majid wrote: >>> Hi, >>> >>> The attached patch fixes PR898: signed applications with big jnlp-file >>> doesn't start. We were using piped input and output streams without >>> threads which would cause them to block and javaws to hang. Switching to >>> ByteArrayOuputStream/StringReader takes care of this. >>> >>> Okay for HEAD and 1.2? >> Hi Omair! >> >> Ty for patch, I think that test can go in immediately (even separately). >> For patch itself I have few comments inline >> >>> >>> Thanks, >>> Omair >>> >>> >>> pr898-01.patch >>> >>> >>> diff --git a/ChangeLog b/ChangeLog >>> --- a/ChangeLog >>> +++ b/ChangeLog >>> @@ -1,3 +1,13 @@ >>> +2012-03-21 Omair Majid >>> + >>> + * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >>> + (testIsMatchDoesNotHangOnLargeData): New method. >>> + >>> +2012-03-21 Lars Herschke >>> + >>> + * netx/net/sourceforge/jnlp/JNLPMatcher.java (JNLPMatcher): >>> Handle large >> >> Little bit more like replacing pipes by ArrayStreams can be better, but >> I do not insists as You are just pushing other's changeset. >> >>> + files correctly. >>> + >>> 2012-03-19 Danesh Dadachanji >>> >>> Fix failing unit test missing title/vendor tags in the JNLP stream. >>> diff --git a/netx/net/sourceforge/jnlp/JNLPMatcher.java >>> b/netx/net/sourceforge/jnlp/JNLPMatcher.java >>> --- a/netx/net/sourceforge/jnlp/JNLPMatcher.java >>> +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java >>> @@ -38,11 +38,12 @@ >>> package net.sourceforge.jnlp; >>> >>> import java.util.List; >>> +import java.io.ByteArrayOutputStream; >>> import java.io.InputStream; >>> import java.io.InputStreamReader; >>> import java.io.OutputStream; >>> -import java.io.PipedInputStream; >>> -import java.io.PipedOutputStream; >>> +import java.io.Reader; >>> +import java.io.StringReader; >>> import java.util.Arrays; >>> import java.util.Collections; >>> import java.util.LinkedList; >>> @@ -75,7 +76,7 @@ >>> * if IOException, XMLParseException is thrown >>> during parsing; >>> * Or launchJNLP/appTemplate is null >>> */ >>> - public JNLPMatcher(InputStreamReader appTemplate, >>> InputStreamReader launchJNLP, >>> + public JNLPMatcher(Reader appTemplate, Reader launchJNLP, >>> boolean isTemplate) throws JNLPMatcherException { >>> >>> if (appTemplate == null&& launchJNLP == null) >>> @@ -87,29 +88,25 @@ >>> throw new JNLPMatcherException("Launching JNLP file is >>> null."); >>> >>> //Declare variables for signed JNLP file >>> - PipedInputStream pinTemplate= null; >>> - PipedOutputStream poutTemplate= null; >>> + ByteArrayOutputStream poutTemplate= null; >>> >>> //Declare variables for launching JNLP file >>> - PipedInputStream pinJNLPFile = null; >>> - PipedOutputStream poutJNLPFile = null; >>> + ByteArrayOutputStream poutJNLPFile = null; >>> >>> try { >>> XMLElement appTemplateXML = new XMLElement(); >>> XMLElement launchJNLPXML = new XMLElement(); >>> >>> // Remove the comments and CDATA from the JNLP file >>> - pinTemplate = new PipedInputStream(); >>> - poutTemplate = new PipedOutputStream(pinTemplate); >>> + poutTemplate = new ByteArrayOutputStream(); >>> appTemplateXML.sanitizeInput(appTemplate, poutTemplate); >>> >>> - pinJNLPFile = new PipedInputStream(); >>> - poutJNLPFile = new PipedOutputStream(pinJNLPFile); >>> + poutJNLPFile = new ByteArrayOutputStream(); >>> launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); >>> >>> // Parse both files >>> - appTemplateXML.parseFromReader(new >>> InputStreamReader(pinTemplate)); >>> - launchJNLPXML.parseFromReader(new >>> InputStreamReader(pinJNLPFile)); >>> + appTemplateXML.parseFromReader(new >>> StringReader(poutTemplate.toString())); >> >> those two toString() should be definietly called with encoding. Although >> it is not deprecated (as methods without encoding are in most of other >> classes), it can cause mess. >> http://docs.oracle.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#toString%28java.lang.String%29 >> >> >> There is small pitfall anyway - you should use the encoding defined in >> jnlp's xml file instead of any "hardcoded". (and I think that with this >> new approach sting<=> byte[] without pipes you can easily do this). I'm >> afraid most of jnlp files have been written on windows machines anyway:) >> >> If you are ok now with default utf-8 encoding, I'm for, and if you will >> consider the encoding reading and then re-encode if necessary, then it >> can be as separate patch. >> >>> + launchJNLPXML.parseFromReader(new >>> StringReader(poutJNLPFile.toString())); >>> >>> // Initialize parent nodes >>> this.appTemplateNode = new Node(appTemplateXML); >>> @@ -122,10 +119,8 @@ >>> e); >>> } finally { >>> // Close all stream >>> - closeInputStream(pinTemplate); >>> closeOutputStream(poutTemplate); >>> >>> - closeInputStream(pinJNLPFile); >>> closeOutputStream(poutJNLPFile); >>> >>> } >> >> One more idea I have to this patch is in Parser >> (net/sourceforge/jnlp/Parser.java) is also used Piped mechanism. Isn't >> worthy to fix it too? And there is also some wired encoing >> recognition... At least look at it (as I was gazing to it quite confused). >> >> I was also thinking that get rid of buffering can cause unnecessary >> requirements but at he end I think there is just minor increase if any. >> Please correct me If I'm judging it wrongly. >> >> >>> diff --git a/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >>> b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >>> --- a/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >>> +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >>> @@ -37,12 +37,13 @@ >>> >>> package net.sourceforge.jnlp; >>> >>> -import static org.junit.Assert.fail; >>> - >>> import java.io.IOException; >>> import java.io.InputStream; >>> import java.io.InputStreamReader; >>> -import junit.framework.Assert; >>> +import java.io.StringReader; >>> +import java.util.Random; >>> + >>> +import org.junit.Assert; >>> import org.junit.Test; >>> >>> public class JNLPMatcherTest { >>> @@ -461,4 +462,36 @@ >>> fileReader.close(); >>> launchReader.close(); >>> } >>> + >>> + @Test (timeout=1000 /*ms*/) >>> + public void testIsMatchDoesNotHangOnLargeData() throws >>> JNLPMatcherException { >>> + /* construct an alphabet containing characters 'a' to 'z' */ >>> + final int ALPHABET_SIZE = 26; >>> + char[] alphabet = new char[ALPHABET_SIZE]; >>> + for (int i = 0; i< ALPHABET_SIZE; i++) { >>> + alphabet[i] = (char)('a' + i); >>> + } >>> + /* generate a long but random string using the alphabet */ >>> + final Random r = new Random(); >>> + final int STRING_SIZE = 1024 * 1024; // 1 MB >>> + StringBuilder descriptionBuilder = new >>> StringBuilder(STRING_SIZE); >>> + for (int i = 0; i< STRING_SIZE; i++) { >>> + >>> descriptionBuilder.append(alphabet[r.nextInt(ALPHABET_SIZE)]); >>> + } >>> + String longDescription = descriptionBuilder.toString(); >>> + >>> + String file = >>> + "\n" + >>> + "\n" + >>> + "JNLPMatcher hanges on large file >>> size\n" + >>> + "IcedTea\n" + >>> + "" + longDescription +"\n" + >>> + "\n" + >>> + "\n"; >>> + >>> + StringReader reader1 = new StringReader(file); >>> + StringReader reader2 = new StringReader(file); >>> + JNLPMatcher matcher = new JNLPMatcher(reader1, reader2, false); >>> + Assert.assertTrue(matcher.isMatch()); >>> + } >>> } >>> >> >> >> Best regards and sorry if I read the patch wrongly >> J. >> From bugzilla-daemon at icedtea.classpath.org Thu Mar 22 05:06:14 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 22 Mar 2012 12:06:14 +0000 Subject: [Bug 903] Hotspot SIGSEGV crash while processing infinity In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=903 --- Comment #2 from Xerxes R?nby 2012-03-22 12:06:14 UTC --- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7155778 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Mar 22 05:11:17 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 22 Mar 2012 12:11:17 +0000 Subject: [Bug 903] Hotspot SIGSEGV crash while processing infinity In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=903 --- Comment #3 from Kostas Georgiou 2012-03-22 12:11:17 UTC --- Here is a stack trace Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fb8dd5bf700 (LWP 8219)] 0x00007fb8d506d017 in ?? () (gdb) where #0 0x00007fb8d506d017 in ?? () #1 0x00007fb8dd5be880 in ?? () #2 0x00007fb8dde7ec3d in obj_at_put (value=, index=, this=) at /usr/src/debug/icedtea6-1.11.1/openjdk/hotspot/src/share/vm/oops/objArrayOop.hpp:93 #3 obj_at_put (value=, index=, this=) at /usr/src/debug/icedtea6-1.11.1/openjdk/hotspot/src/share/vm/oops/objArrayKlass.cpp:80 #4 objArrayKlass::multi_allocate (this=, rank=Cannot access memory at address 0xf5a5eef0 ) at /usr/src/debug/icedtea6-1.11.1/openjdk/hotspot/src/share/vm/oops/objArrayKlass.cpp:95 Cannot access memory at address 0xf5a5ef2c -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From jvanek at redhat.com Thu Mar 22 05:16:33 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 13:16:33 +0100 Subject: [rfc][icedtea-web] rewritten xfork test Message-ID: <4F6B1821.2040600@redhat.com> Inspired by Omair's effort to reduce failing tests, I have rewritten deadlock tests, which were failing quite randomly in half of the cases. It was caused by delayed removing of zombies after process have time-outed. By this patch, ignorelist which I have proposed two days ago (and will do again soon as separate patch) to ignore no-testable classes (eg interfaces), and fixes from [RFC][icedtea-web] fixes to reproducer engine, we will be on three failing reproducers ("spaces" ) and with occasional cache test fill. All those five - two sometimes, three regularly - failing reproducers are the same issue we are talking in [icedtea-web] RFC: disable tests that are known to fail thread. - they are representing issue., but...:) 2012-03-22 Jiri Vanek Rewritten DeadLockTestTest to stop failing in more then 1/2 of cases All assassinated processes were hanging as zombies, killed forcibly by kill -9 now. * /tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: (countJavaInstances) now return pids of found javas. (killDiff) new method killing zombie javas forcibly. -------------- next part -------------- A non-text attachment was scrubbed... Name: rewrittenXforkTests.diff Type: text/x-patch Size: 9712 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120322/4ec2cb58/rewrittenXforkTests.diff From jvanek at redhat.com Thu Mar 22 05:16:39 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 13:16:39 +0100 Subject: [rfc][icedtea-web] virtual server thread marked as daemon by default Message-ID: <4F6B1827.9060207@redhat.com> although junit was handling "redundant" threads pretty well, I think it is correct thing to do Any reason why not? 2012-03-22 Jiri Vanek test's virtual server thread marked as daemon by default * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: All (ServerLauncher) instances returned by methods were marked as daemon by default. Possibility to change and api were kept. -------------- next part -------------- A non-text attachment was scrubbed... Name: daemon.diff Type: text/x-patch Size: 2436 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120322/121ca1cf/daemon.diff From jvanek at redhat.com Thu Mar 22 05:42:50 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 13:42:50 +0100 Subject: [icedtea-web] RFC: PR898: signed applications with big jnlp-file doesn't start In-Reply-To: <4F6AF2FE.6040707@redhat.com> References: <4F69E933.70308@redhat.com> <4F6AF2FE.6040707@redhat.com> Message-ID: <4F6B1E4A.9020700@redhat.com> On 03/22/2012 10:38 AM, Jiri Vanek wrote: Just two more minor nitpicks Can you add bug number/link to reproducer comment and to changelog? > On 03/21/2012 03:44 PM, Omair Majid wrote: >> Hi, >> >> The attached patch fixes PR898: signed applications with big jnlp-file >> doesn't start. We were using piped input and output streams without >> threads which would cause them to block and javaws to hang. Switching to >> ByteArrayOuputStream/StringReader takes care of this. >> >> Okay for HEAD and 1.2? > Hi Omair! > > Ty for patch, I think that test can go in immediately (even separately). > For patch itself I have few comments inline > >> >> Thanks, >> Omair >> >> >> pr898-01.patch >> >> >> diff --git a/ChangeLog b/ChangeLog >> --- a/ChangeLog >> +++ b/ChangeLog >> @@ -1,3 +1,13 @@ >> +2012-03-21 Omair Majid >> + >> + * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> + (testIsMatchDoesNotHangOnLargeData): New method. >> + >> +2012-03-21 Lars Herschke >> + >> + * netx/net/sourceforge/jnlp/JNLPMatcher.java (JNLPMatcher): Handle large > > Little bit more like replacing pipes by ArrayStreams can be better, but I do not insists as You are > just pushing other's changeset. > >> + files correctly. >> + >> 2012-03-19 Danesh Dadachanji >> >> Fix failing unit test missing title/vendor tags in the JNLP stream. >> diff --git a/netx/net/sourceforge/jnlp/JNLPMatcher.java b/netx/net/sourceforge/jnlp/JNLPMatcher.java >> --- a/netx/net/sourceforge/jnlp/JNLPMatcher.java >> +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java >> @@ -38,11 +38,12 @@ >> package net.sourceforge.jnlp; >> >> import java.util.List; >> +import java.io.ByteArrayOutputStream; >> import java.io.InputStream; >> import java.io.InputStreamReader; >> import java.io.OutputStream; >> -import java.io.PipedInputStream; >> -import java.io.PipedOutputStream; >> +import java.io.Reader; >> +import java.io.StringReader; >> import java.util.Arrays; >> import java.util.Collections; >> import java.util.LinkedList; >> @@ -75,7 +76,7 @@ >> * if IOException, XMLParseException is thrown during parsing; >> * Or launchJNLP/appTemplate is null >> */ >> - public JNLPMatcher(InputStreamReader appTemplate, InputStreamReader launchJNLP, >> + public JNLPMatcher(Reader appTemplate, Reader launchJNLP, >> boolean isTemplate) throws JNLPMatcherException { >> >> if (appTemplate == null&& launchJNLP == null) >> @@ -87,29 +88,25 @@ >> throw new JNLPMatcherException("Launching JNLP file is null."); >> >> //Declare variables for signed JNLP file >> - PipedInputStream pinTemplate= null; >> - PipedOutputStream poutTemplate= null; >> + ByteArrayOutputStream poutTemplate= null; >> >> //Declare variables for launching JNLP file >> - PipedInputStream pinJNLPFile = null; >> - PipedOutputStream poutJNLPFile = null; >> + ByteArrayOutputStream poutJNLPFile = null; >> >> try { >> XMLElement appTemplateXML = new XMLElement(); >> XMLElement launchJNLPXML = new XMLElement(); >> >> // Remove the comments and CDATA from the JNLP file >> - pinTemplate = new PipedInputStream(); >> - poutTemplate = new PipedOutputStream(pinTemplate); >> + poutTemplate = new ByteArrayOutputStream(); >> appTemplateXML.sanitizeInput(appTemplate, poutTemplate); >> >> - pinJNLPFile = new PipedInputStream(); >> - poutJNLPFile = new PipedOutputStream(pinJNLPFile); >> + poutJNLPFile = new ByteArrayOutputStream(); >> launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); >> >> // Parse both files >> - appTemplateXML.parseFromReader(new InputStreamReader(pinTemplate)); >> - launchJNLPXML.parseFromReader(new InputStreamReader(pinJNLPFile)); >> + appTemplateXML.parseFromReader(new StringReader(poutTemplate.toString())); > > those two toString() should be definietly called with encoding. Although it is not deprecated (as > methods without encoding are in most of other classes), it can cause mess. > http://docs.oracle.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#toString%28java.lang.String%29 > > > There is small pitfall anyway - you should use the encoding defined in jnlp's xml file instead of > any "hardcoded". (and I think that with this new approach sting <=> byte[] without pipes you can > easily do this). I'm afraid most of jnlp files have been written on windows machines anyway:) > > If you are ok now with default utf-8 encoding, I'm for, and if you will consider the encoding > reading and then re-encode if necessary, then it can be as separate patch. > >> + launchJNLPXML.parseFromReader(new StringReader(poutJNLPFile.toString())); >> >> // Initialize parent nodes >> this.appTemplateNode = new Node(appTemplateXML); >> @@ -122,10 +119,8 @@ >> e); >> } finally { >> // Close all stream >> - closeInputStream(pinTemplate); >> closeOutputStream(poutTemplate); >> >> - closeInputStream(pinJNLPFile); >> closeOutputStream(poutJNLPFile); >> >> } > > One more idea I have to this patch is in Parser (net/sourceforge/jnlp/Parser.java) is also used > Piped mechanism. Isn't worthy to fix it too? And there is also some wired encoing recognition... At > least look at it (as I was gazing to it quite confused). > > I was also thinking that get rid of buffering can cause unnecessary requirements but at he end I > think there is just minor increase if any. Please correct me If I'm judging it wrongly. > > >> diff --git a/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> --- a/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java >> @@ -37,12 +37,13 @@ >> >> package net.sourceforge.jnlp; >> >> -import static org.junit.Assert.fail; >> - >> import java.io.IOException; >> import java.io.InputStream; >> import java.io.InputStreamReader; >> -import junit.framework.Assert; >> +import java.io.StringReader; >> +import java.util.Random; >> + >> +import org.junit.Assert; >> import org.junit.Test; >> >> public class JNLPMatcherTest { >> @@ -461,4 +462,36 @@ >> fileReader.close(); >> launchReader.close(); >> } >> + >> + @Test (timeout=1000 /*ms*/) >> + public void testIsMatchDoesNotHangOnLargeData() throws JNLPMatcherException { >> + /* construct an alphabet containing characters 'a' to 'z' */ >> + final int ALPHABET_SIZE = 26; >> + char[] alphabet = new char[ALPHABET_SIZE]; >> + for (int i = 0; i< ALPHABET_SIZE; i++) { >> + alphabet[i] = (char)('a' + i); >> + } >> + /* generate a long but random string using the alphabet */ >> + final Random r = new Random(); >> + final int STRING_SIZE = 1024 * 1024; // 1 MB >> + StringBuilder descriptionBuilder = new StringBuilder(STRING_SIZE); >> + for (int i = 0; i< STRING_SIZE; i++) { >> + descriptionBuilder.append(alphabet[r.nextInt(ALPHABET_SIZE)]); >> + } >> + String longDescription = descriptionBuilder.toString(); >> + >> + String file = >> + "\n" + >> + "\n" + >> + "JNLPMatcher hanges on large file size\n" + >> + "IcedTea\n" + >> + "" + longDescription +"\n" + >> + "\n" + >> + "\n"; >> + >> + StringReader reader1 = new StringReader(file); >> + StringReader reader2 = new StringReader(file); >> + JNLPMatcher matcher = new JNLPMatcher(reader1, reader2, false); >> + Assert.assertTrue(matcher.isMatch()); >> + } >> } >> > > > Best regards and sorry if I read the patch wrongly > J. From omajid at redhat.com Thu Mar 22 05:58:57 2012 From: omajid at redhat.com (Omair Majid) Date: Thu, 22 Mar 2012 08:58:57 -0400 Subject: [icedtea-web] RFC: PR898: signed applications with big jnlp-file doesn't start In-Reply-To: <4F6B1E4A.9020700@redhat.com> References: <4F69E933.70308@redhat.com> <4F6AF2FE.6040707@redhat.com> <4F6B1E4A.9020700@redhat.com> Message-ID: <4F6B2211.9060307@redhat.com> On 03/22/2012 08:42 AM, Jiri Vanek wrote: > On 03/22/2012 10:38 AM, Jiri Vanek wrote: > Just two more minor nitpicks > > Can you add bug number/link to reproducer comment and to changelog? > Done for ChangeLog/NEWS. I would rather not add bug numbers to the codebase/test case though - I feel that the testcase stands on its own and adding bug numbers doesnt really add new value. It is stored in the mercurial history and changelog for those who do want to look it up. >> If you are ok now with default utf-8 encoding, I'm for, and if you >> will consider the encoding >> reading and then re-encode if necessary, then it can be as separate >> patch. >> I would rather not mess with encoding in this patch. It's not a regression, right? If it does cause problems later, I (or someone else) will, of course, fix it. The only change between this patch and the one I posted before is the NEWS/ChangeLog update. Okay for HEAD? 1.2? Thanks, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: pr898-02.patch Type: text/x-patch Size: 6215 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120322/4d551c28/pr898-02.patch From jvanek at redhat.com Thu Mar 22 06:11:55 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 14:11:55 +0100 Subject: [icedtea-web] RFC: PR898: signed applications with big jnlp-file doesn't start In-Reply-To: <4F6B2211.9060307@redhat.com> References: <4F69E933.70308@redhat.com> <4F6AF2FE.6040707@redhat.com> <4F6B1E4A.9020700@redhat.com> <4F6B2211.9060307@redhat.com> Message-ID: <4F6B251B.8020709@redhat.com> On 03/22/2012 01:58 PM, Omair Majid wrote: > On 03/22/2012 08:42 AM, Jiri Vanek wrote: >> On 03/22/2012 10:38 AM, Jiri Vanek wrote: >> Just two more minor nitpicks >> >> Can you add bug number/link to reproducer comment and to changelog? >> > > Done for ChangeLog/NEWS. I would rather not add bug numbers to the > codebase/test case though - I feel that the testcase stands on its own > and adding bug numbers doesnt really add new value. It is stored in the > mercurial history and changelog for those who do want to look it up. Then you will be enemy of #bug annotation? :) > >>> If you are ok now with default utf-8 encoding, I'm for, and if you >>> will consider the encoding >>> reading and then re-encode if necessary, then it can be as separate >>> patch. >>> > > I would rather not mess with encoding in this patch. It's not a > regression, right? If it does cause problems later, I (or someone else) > will, of course, fix it. hmm.. But you are adding byte <-> string transformations unless I'm very wrong. Aren't you? Maybe to set plain ASCII can be solution? > > The only change between this patch and the one I posted before is the > NEWS/ChangeLog update. > > Okay for HEAD? 1.2? > > Thanks, > Omair From omajid at redhat.com Thu Mar 22 07:01:04 2012 From: omajid at redhat.com (Omair Majid) Date: Thu, 22 Mar 2012 10:01:04 -0400 Subject: Icedtea-web splashscreen implementation In-Reply-To: <4F50BE87.5070508@redhat.com> References: <4F50BE87.5070508@redhat.com> Message-ID: <4F6B30A0.1050507@redhat.com> (my mailer has been behaving really weird, apologies if some comments are duplicated) On 03/02/2012 07:35 AM, Jiri Vanek wrote: > Hi All! Hi Jiri, Thanks for doing this. The patch is quite long and complicated, so I am going to do this in parts. One request for the future: could you split out patches and send one-per email? It avoids mixing a bunch of not-exactly-related patches with each other. Or at least avoid sending a combined patch along with all the parts. Also, can you please add _unit_ tests? If nothing else, they will force you to decouple the code and clean up the design. Something I am a little curious about is the interaction between the LaunchHandler and the splash screen. I got the feeling that NetX had intended LaunchHandler to be used to indicate progress with the launching of JNLP programs. And that's what I used to implement the splash screens. Perhaps it might be good if we could somehow combine it/split responsibilities. If the launch handler was per application/applet (currently it is shared by the entire runtime), it could be the one to always trigger the (right) splash screen. That would mean that applets and jnlps could always rely on informing the launch handler (without knowing what it is) and the launch handler could do the right thing (show dialog, hide splash, whatever). > This patch is initial version of three and half connected things. Applet > + javaws splashcreen and testing of applets in firefox (and testing of > splascreen). Perhaps you could post these separately? Or at least split into multiple patches (one patch that adds the hooks and interfaces for the splash screen and another that adds implementation for the splash screen?) Or did you do that already in the version you posted? (it's hard to review stuff if you include 3 patches one of which is the other two combined ;) ) > I'm sorry for two days delay, which was caused by more testing and > creating this "document" and its attending animation. I'm also really > sorry for its length. No worries about the delay. I can see it's quite complicated. And I can understand it would be hard to test. > People cc-ed (as patch is to big to pass to distro without approve) > Omair - just to kept him in loop ;) Thanks :) > Splashscreen(s) are designed to be easily replaceable, /me looks at the rest of the patch below and has some doubts See my comments in-line. > and are providing > set of utilities for lunching and disposing it. When ratio of WxH is to > big or applet is to small then alternate - plain IcedTea web (plugin) > [with little bit animated web (plugin)] is shown. Nice! > Test framework was enriched for slow downloading. If the file have > prefix "XslowX" then its downlaoding (even on localhost) will take > 10seconds. I see Pavel has already pointed this out, but please no magic behaviour like this. It will make life hell for the whoever ends up maintaining these in the future. > *Splashscreens* > _integration_ > The gate for applet's splashscreen is PluginAppletViewer. It is > responsible for show it when applet is to be initialized and for > removing it when applet starts. Little bit more complicated is showing > of error to user when some exception during initialization occurs. Those > exceptions are mostly thrown from netx which do not have dependence on > plugin. I think the "splashscreen" (it's more of a loading screen for the applets, isn't it?) is doing too much. It is drawing the logo, animating it, showing error messages (and probably a lot more). Can you please split this out? I am thinking of something like this (this is only the "view" (swing/awt component) hierarchy: AppletViewerPanel - Main-Container - Splash Screen Container - Error Indicator Container Basically, each class/object should have one task. And you can swap out the splash screen with the error indicator when an error happens. If you can, please split out the gui-related classes from the non-gui related (the logic) classes. > To forward error to applet is used SplashUtils.showError set of > overloaded methods. I just looked at the implementation of this method. Please avoid using reflection. It just pushes compile time errors into runtime errors, and pollutes method signatures (you know, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException). Is there an issue with using a normal interface? > SplashUtils have also factory method which handles > which splash (type and purpose (javaws x applet)) is about to be shown > (if any - see bonuses) Not many places in icedtea-web make an explicit distinction between javaws and applet. Instead of spreading this knowledge around, can you put this in one place? JNLPRuntime seems appropriate to me, but there may be a better place. > There are actually three and half types of splashscreen. Applet one > (which have error variation also), javaws one (forced by specification, > which also forces title,vendor and homepage with description to be > shown), This is not quite true. I know what the "specification" says, but other implementations do not follow this particular requirement. > and java's -spalsh which is showing image until control is > forwarded to netx. Let's not worry about this one ;) > All those four splashscreens are cooperating quite well and support of > custom splashses (by -J-splash or by ) are not lost. I wasn't aware you could actually mess with what happens if -splash is used. > _implementation_ > The splashscreen can be any class which implements interface > SplashScreen. it must be able to paint itself, to add itself as > component to show error, to be in composed of vectors.....and to be nice:) As mentioned above, this is violating the Single Responsibility Principle and doing too much in one interface. Please split the interface. > The factory method have parameter whether to provide splash for javaws > (it is showing also information from information element (vendor, > description,homepage,title..) - specification commanding) Out of curiosity, why did you decide to implement InformationElement? Is InformationDesc not sufficient? > The showing of error screen is very successfull, but one case I was > unable to catch - when connection with server dies in middle of resource > transfer and TODO - I have forgot to test signatures and stuff around:-/ > - but this should be handled n netx-way too. Unit tests to check this, please! > I'm showing also version on splash (and forwarding it to error mesage) > (ok?) - Looks to me like good idea.... Not sure if showing version on the splash itself is a great idea, but I agree it is good to show it in the error. > I have noticed that when more then one applets are presented in page, > then splashes sometimes shows, sometimes no.... I have tried to > synchronize (I can be wrong!) in Launcher and in PluginAppletViewer, and > it looks like it helped but still this occurs (quait randomly :-/) Ugh...Please do look into this. I am not a fan of adding synchronization (generally, it makes things more convoluted) unless absolutely necessary and only where it really is needed. > Sometimes(less then 10% of lunches, randomly spread) freeing of applet > takes quite long time, and it looks like C-error (Can not fetch applets > id from java side), But it is rare and always exit at the end. Is this a regression? Or do you get the same behaviour without the splash? > _bonuses_ > I have added recognition of two environment variables - > ICEDTEA_WEB_PLUGIN_SPLASH and ICEDTEA_WEB_SPLASH. Those variables alow > user to change splahs screen before lunchtime and - what is real reason > for those two variables - to disable splashscreen at all. The only environment variable that IcedTea-Web currently uses is ICEDTEAPLUGIN_DEBUG. It would be great if all the names were (somehow) consistent. > I really can > imagine some developer really tired of looking to same splash during his > appelt/javaws_app testing phase. I don't think this is terribly important. Still, it's nice to have it. > When "custom" (or "none") splash is defined, then javaws "java's" > -splash is ignored too. > So we mess around with java's -splash? Why? > This throws BrokenPipe Exception, but is working fine. Eh? Throws an exception and works fine? What's throwing the exception? Cheers, Omair From dbhole at redhat.com Thu Mar 22 07:04:38 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 22 Mar 2012 10:04:38 -0400 Subject: [RFC][icedtea-web] fixes to reproducer engine In-Reply-To: <4F69E3AF.6020102@redhat.com> References: <4F69E3AF.6020102@redhat.com> Message-ID: <20120322140437.GL6489@redhat.com> * Jiri Vanek [2012-03-21 10:22]: > Hi! > > As I wrote yesterday, I have found some bugs inside jnlp main > engine. This patch is fixing them, and I would like to push it to > head and 1.2 (with minor changes). > > Any comments? > Hi Jiri, Can you please repost with indentations fixed? e.g.: + while (!t.isDestoyed()){ + Thread.sleep(100); + } There is no space before the { when there should be. See guidelines here: http://icedtea.classpath.org/wiki/IcedTea-Web#Code_style Also, changelog has spacing issues -- there should be no spaces before any of the words on a new line, only a single tab e.g Fixing issue when process was not launched at all and when was killed but left behind living/hanging, fixing mime-types should be: Fixing issue when process was not launched at all and when was killed but left behind living/hanging, fixing mime-types i.e. only a tab before "left", not a tab and space. Cheers, Deepak > Thanx! > J. > diff -r 89609d0a4e1c ChangeLog > --- a/ChangeLog Mon Mar 19 14:37:03 2012 -0400 > +++ b/ChangeLog Wed Mar 21 15:15:48 2012 +0100 > @@ -1,3 +1,20 @@ > +2012-03-21 Jiri Vanek > + > + Fixing issue when process was not launched at all and when was killed but > + left behind living/hanging, fixing mime-types > + * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: > + (getContentOfStream) this method overloaded with possibility to specify > + encoding (I needed to set it to ASCII in one test) > + (deadlyException) field introduced in ThreadedProcess to record exception > + caused by impassibility of launching the process. And so process have > + been null without any sign why. > + (TinyHttpdImpl) now correctly returns known mime types > + (ProcessAssasin) can now skip or smoothly (and finally correctly) > + destroy its process, and all his logging messages were done null-proof > + (as deadlyException now allows) > + Asynchronous (ContentReader) have been silenced when complaining about > + closed streams by Assassin. > + > 2012-03-19 Danesh Dadachanji > > Fix failing unit test missing title/vendor tags in the JNLP stream. > diff -r 89609d0a4e1c tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java > --- a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Mon Mar 19 14:37:03 2012 -0400 > +++ b/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Wed Mar 21 15:15:48 2012 +0100 > @@ -254,7 +254,7 @@ > > @Test > public void testsProcessResultFiltering() throws Exception { > - ProcessResult pn = new ProcessResult(null, null, null, true, 0); > + ProcessResult pn = new ProcessResult(null, null, null, true, 0,null); > Assert.assertNull(pn.notFilteredStdout); > Assert.assertNull(pn.stdout); > Assert.assertNull(pn.stderr); > @@ -273,12 +273,12 @@ > "test stage 1\n" > + "test stage 2\n" > + "test stage 3\n"; > - ProcessResult p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0); > + ProcessResult p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0,null); > Assert.assertEquals(p2.notFilteredStdout, fakeOut2); > Assert.assertEquals(p2.stdout, filteredOut2); > Assert.assertEquals(p2.stderr, fakeOut2); > fakeOut2+="\n"; > - p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0); > + p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0,null); > Assert.assertEquals(p2.notFilteredStdout, fakeOut2); > Assert.assertEquals(p2.stdout, filteredOut2); > Assert.assertEquals(p2.stderr, fakeOut2); > @@ -300,13 +300,13 @@ > + "test stage 2\n" > + "test stage 3\n" > + "test ends"; > - ProcessResult p = new ProcessResult(fakeOut, fakeOut, null, true, 0); > + ProcessResult p = new ProcessResult(fakeOut, fakeOut, null, true, 0,null); > Assert.assertEquals(p.notFilteredStdout, fakeOut); > Assert.assertEquals(p.stdout, filteredOut); > Assert.assertEquals(p.stderr, fakeOut); > fakeOut+="\n"; > filteredOut+="\n"; > - p = new ProcessResult(fakeOut, fakeOut, null, true, 0); > + p = new ProcessResult(fakeOut, fakeOut, null, true, 0,null); > Assert.assertEquals(p.notFilteredStdout, fakeOut); > Assert.assertEquals(p.stdout, filteredOut); > Assert.assertEquals(p.stderr, fakeOut); > @@ -473,9 +473,9 @@ > * @return stream as string > * @throws IOException if connection cant be established or resource do not exists > */ > - public static String getContentOfStream(InputStream is) throws IOException { > + public static String getContentOfStream(InputStream is,String encoding) throws IOException { > try { > - BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); > + BufferedReader br = new BufferedReader(new InputStreamReader(is, encoding)); > StringBuilder sb = new StringBuilder(); > while (true) { > String s = br.readLine(); > @@ -492,6 +492,18 @@ > > } > > + /** > + * utility method which can read from any stream as one long String > + * > + * @param input stream > + * @return stream as string > + * @throws IOException if connection cant be established or resource do not exists > + */ > + public static String getContentOfStream(InputStream is) throws IOException { > + return getContentOfStream(is,"UTF-8"); > + > + } > + > /** > * utility method which can read bytes of resource from any url > * > @@ -703,9 +715,13 @@ > ProcessAssasin pa = new ProcessAssasin(t, PROCESS_TIMEOUT); > pa.start(); > t.start(); > - while (t.getP() == null) { > + while (t.getP() == null && t.deadlyException==null) { > Thread.sleep(100); > } > + if (t.deadlyException!=null){ > + pa.setCanRun(false); > + return new ProcessResult("", "", null, true, Integer.MIN_VALUE,t.deadlyException); > + } > ContentReader crs = new ContentReader(t.getP().getInputStream(),stdoutl); > ContentReader cre = new ContentReader(t.getP().getErrorStream(),stderrl); > > @@ -719,10 +735,14 @@ > while (t.isRunning()) { > Thread.sleep(100); > } > + > + while (!t.isDestoyed()){ > + Thread.sleep(100); > + } > pa.setCanRun(false); > // System.out.println(t.getP().exitValue()); when process is killed, this throws exception > > - return new ProcessResult(crs.getContent(), cre.getContent(), t.getP(), pa.wasTerminated(), t.getExitCode()); > + return new ProcessResult(crs.getContent(), cre.getContent(), t.getP(), pa.wasTerminated(), t.getExitCode(),null); > } > > /** > @@ -737,6 +757,22 @@ > Integer exitCode; > Boolean running; > File dir; > + Throwable deadlyException=null; > + /* > + * before removing this "useless" variable > + * check DeadLockTestTest.testDeadLockTestTerminated2 > + */ > + private boolean destoyed=false; > + > + public boolean isDestoyed() { > + return destoyed; > + } > + > + public void setDestoyed(boolean destoyed) { > + this.destoyed = destoyed; > + } > + > + > > public Boolean isRunning() { > return running; > @@ -785,13 +821,21 @@ > }else{ > p = r.exec(args.toArray(new String[0]),new String[0], dir); > } > + try{ > exitCode = p.waitFor(); > Thread.sleep(500);//this is giving to fastly done proecesses's e/o readers time to read all. I would like to know better solution :-/ > - } catch (Exception ex) { > + }finally{ > + destoyed=true; > + } > + } catch (Exception ex) { > if (ex instanceof InterruptedException) { > //add to the set of terminated threadedproceses > + deadlyException=ex; > terminated.add(this); > } else { > + //happens when nonexisting process is launched, is causing p null! > + terminated.add(this); > + deadlyException=ex; > throw new RuntimeException(ex); > } > } finally { > @@ -937,8 +981,16 @@ > byte[] b = new byte[l]; > FileInputStream f = new FileInputStream(pp); > f.read(b); > + String content=""; > + if (p.toLowerCase().endsWith(".jnlp")){ > + content="Content-Type: application/x-java-jnlp-file\n"; > + }else if (p.toLowerCase().endsWith(".html")){ > + content="Content-Type: text/html\n"; > + }else if (p.toLowerCase().endsWith(".jar")){ > + content="Content-Type: application/x-jar\n"; > + } > o.writeBytes("HTTP/1.0 200 OK\nConten" > - + "t-Length:" + l + "\n\n"); > + + "t-Length:" + l +"\n"+content+"\n"); > if (op.startsWith(XSX)){ > byte[][] bb=ServerAccess.splitArray(b,10); > for (int j = 0; j < bb.length; j++) { > @@ -1061,6 +1113,13 @@ > //false == is disabled:( > private boolean canRun = true; > private boolean wasTerminated = false; > + /** > + * if this is true, then process is not destroyed after is timeouted run, but just left to its own destiny. > + * Its stdout/err is no longer recorded, and it is leaking system resources until it dies by itslef > + * The contorl is returned to main thread with all informations recorded untill now. > + * You will be able to listen to std out from listeners still > + */ > + private boolean skipInstedOfDesroy=false; > > /** > * > @@ -1074,9 +1133,25 @@ > > } > > + public ProcessAssasin(ThreadedProcess p, long timeout,boolean skipInstedOfDesroy) { > + this.p = (p); > + this.timeout = timeout; > + this.skipInstedOfDesroy=skipInstedOfDesroy; > + > + > + } > + > public void setCanRun(boolean canRun) { > this.canRun = canRun; > - System.err.println("Stopping assasin for" + p.toString() + " " + p.getP().toString() + " " + p.getCommandLine() + ": "); > + if (p != null) { > + if (p.getP() != null) { > + System.err.println("Stopping assasin for" + p.toString() + " " + p.getP().toString() + " " + p.getCommandLine() + ": "); > + } else { > + System.err.println("Stopping assasin for" + p.toString() + " " + p.getCommandLine() + ": "); > + } > + }else{ > + System.err.println("Stopping assasin for null job: "); > + } > System.err.flush(); > } > > @@ -1088,6 +1163,16 @@ > return wasTerminated; > } > > + public void setSkipInstedOfDesroy(boolean skipInstedOfDesroy) { > + this.skipInstedOfDesroy = skipInstedOfDesroy; > + } > + > + public boolean isSkipInstedOfDesroy() { > + return skipInstedOfDesroy; > + } > + > + > + > @Override > public void run() { > > @@ -1099,17 +1184,45 @@ > //System.out.println(time - startTime); > //System.out.println((time - startTime) > timeout); > if ((time - startTime) > timeout) { > - System.err.println("Timeouted " + p.toString() + " " + p.getP().toString() + " .. killing " + p.getCommandLine() + ": "); > + try{ > + if (p!=null){ > + if (p.getP()!=null){System.err.println("Timeouted " + > + p.toString() + " " + > + p.getP().toString() + > + " .. killing " + > + p.getCommandLine() + ": "); > + }else{System.err.println("Timeouted " + > + p.toString() + " " + > + "null .. killing " + > + p.getCommandLine() + ": "); > + } > System.err.flush(); > wasTerminated = true; > p.interrupt(); > while (!terminated.contains(p)) { > Thread.sleep(100); > } > - //p.p.destroy()?? > - System.err.println("Timeouted " + p.toString() + " " + p.getP().toString() + " .. killed " + p.getCommandLine()); > + if (p.getP()!=null){ > + try{ > + if (!skipInstedOfDesroy) p.getP().destroy(); > + }catch(Throwable ex){ > + if (p.deadlyException==null) p.deadlyException=ex; > + ex.printStackTrace(); > + } > + } > + if (p.getP()!=null){ > + System.err.println("Timeouted " + p.toString() + " " + p.getP().toString() + " .. killed " + p.getCommandLine()); > + }else{ > + System.err.println("Timeouted " + p.toString() + " null .. killed " + p.getCommandLine()); > + } > System.err.flush(); > + }else{ > + System.err.println("Timeouted null job"); > + } > break; > + }finally{ > + p.setDestoyed(true); > + } > > > } > @@ -1118,7 +1231,15 @@ > ex.printStackTrace(); > } > } > - System.err.println("assasin for" + p.toString() + " " + p.getP().toString() + " .. done " + p.getCommandLine() + " termination " + wasTerminated); > + if (p!=null){ > + if (p.getP()!=null){ > + System.err.println("assasin for" + p.toString() + " " + p.getP().toString() + " .. done " + p.getCommandLine() + " termination " + wasTerminated); > + }else{ > + System.err.println("assasin for" + p.toString() + " null .. done " + p.getCommandLine() + " termination " + wasTerminated); > + } > + }else{ > + System.err.println("assasin for non exisitng job termination " + wasTerminated); > + } > System.err.flush(); > } > } > @@ -1134,8 +1255,12 @@ > public final Process process; > public final Integer returnValue; > public final boolean wasTerminated; > + /* > + * possible exception which caused Process not to be launched > + */ > + public final Throwable deadlyException; > > - public ProcessResult(String stdout, String stderr, Process process, boolean wasTerminated, Integer r) { > + public ProcessResult(String stdout, String stderr, Process process, boolean wasTerminated, Integer r,Throwable deadlyException) { > this.notFilteredStdout = stdout; > if (stdout == null) { > this.stdout = null; > @@ -1146,6 +1271,7 @@ > this.process = process; > this.wasTerminated = wasTerminated; > this.returnValue = r; > + this.deadlyException=deadlyException; > } > } > > @@ -1219,8 +1345,10 @@ > > } > //do not want to bother output with terminations > + //mostly compaling when assasin kill the process about StreamClosed > } catch (Exception ex) { > - ex.printStackTrace(); > + // ex.printStackTrace(); > + // System.err.flush(); > } finally { > try { > is.close(); From omajid at redhat.com Thu Mar 22 08:14:51 2012 From: omajid at redhat.com (Omair Majid) Date: Thu, 22 Mar 2012 11:14:51 -0400 Subject: [icedtea-web] RFC: disable tests that are known to fail In-Reply-To: <4F6ADF28.7050008@redhat.com> References: <4F69EC3F.2050009@redhat.com> <4F69EFC2.2070801@redhat.com> <4F69F9CF.7090707@redhat.com> <4F6A01BD.7080207@redhat.com> <20120321210614.GJ6489@redhat.com> <4F6ADF28.7050008@redhat.com> Message-ID: <4F6B41EB.209@redhat.com> On 03/22/2012 04:13 AM, Jiri Vanek wrote: > To be clear - I'm for some kind of skipping, but do not like the idea of > used @ignored annotation. Assume that most developers are not running the junit tests through the command line but using their ide's junit integration. Any ideas on how skipping can be accomplished? (Without configuring their ide). We want a default 'make check' (and whatever method an ide might use to run the junit tests) to show that all tests have passed. To look at it from the other point of view, why dont we have a flag/env var that says ignore the @Ignore annotation during make check (or something like that)? Thanks, Omair From andrew at icedtea.classpath.org Thu Mar 22 08:53:07 2012 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 22 Mar 2012 15:53:07 +0000 Subject: /hg/icedtea7: Update to IcedTea7 forest head / u4. Message-ID: changeset 5e302f2e45eb in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=5e302f2e45eb author: Andrew John Hughes date: Thu Mar 22 15:52:54 2012 +0000 Update to IcedTea7 forest head / u4. 2012-03-22 Andrew John Hughes * patches/systemtap-alloc-size-workaround.patch: Removed; upstream. * Makefile.am: (JDK_UPDATE_VERSION): Bump to 4. (CORBA_CHANGESET): Update to IcedTea7 forest head. (HOTSPOT_CHANGESET): Likewise. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. (ICEDTEA_PATCHES): Drop upstreamed patch. * patches/boot/ant-javac.patch, * patches/boot/corba-defs.patch, * patches/boot/demos.patch: Regenerated. * patches/boot/ecj-diamond.patch, * patches/boot/ecj-multicatch.patch, * patches/boot/ecj-trywithresources.patch: Regenerated; additional cases added. * patches/boot/hotspot-jdk-dependency.patch, * patches/rhino.patch: Regenerated. * patches/systemtap.patch: Rewritten. diffstat: ChangeLog | 35 + Makefile.am | 33 +- patches/boot/ant-javac.patch | 10 +- patches/boot/corba-defs.patch | 14 +- patches/boot/demos.patch | 18 +- patches/boot/ecj-diamond.patch | 1773 ++++++++++++++---------- patches/boot/ecj-multicatch.patch | 45 + patches/boot/ecj-trywithresources.patch | 154 +- patches/boot/hotspot-jdk-dependency.patch | 20 +- patches/rhino.patch | 72 +- patches/systemtap-alloc-size-workaround.patch | 11 - patches/systemtap.patch | 93 +- 12 files changed, 1366 insertions(+), 912 deletions(-) diffs (truncated from 4591 to 500 lines): diff -r 732f30ec8b7b -r 5e302f2e45eb ChangeLog --- a/ChangeLog Fri Mar 16 13:15:15 2012 +0100 +++ b/ChangeLog Thu Mar 22 15:52:54 2012 +0000 @@ -1,3 +1,38 @@ +2012-03-22 Andrew John Hughes + + * patches/systemtap-alloc-size-workaround.patch: + Removed; upstream. + * Makefile.am: + (JDK_UPDATE_VERSION): Bump to 4. + (CORBA_CHANGESET): Update to IcedTea7 forest head. + (HOTSPOT_CHANGESET): Likewise. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + (ICEDTEA_PATCHES): Drop upstreamed patch. + * patches/boot/ant-javac.patch, + * patches/boot/corba-defs.patch, + * patches/boot/demos.patch: + Regenerated. + * patches/boot/ecj-diamond.patch, + * patches/boot/ecj-multicatch.patch, + * patches/boot/ecj-trywithresources.patch: + Regenerated; additional cases added. + * patches/boot/hotspot-jdk-dependency.patch, + * patches/rhino.patch: + Regenerated. + * patches/systemtap.patch: + Rewritten. + 2012-03-16 Mark Wielaard * tapset/jstack.stp.in: Change symbolOopDesc to Symbol to accomodate diff -r 732f30ec8b7b -r 5e302f2e45eb Makefile.am --- a/Makefile.am Fri Mar 16 13:15:15 2012 +0100 +++ b/Makefile.am Thu Mar 22 15:52:54 2012 +0000 @@ -1,24 +1,24 @@ # Dependencies OPENJDK_VERSION = b147 -JDK_UPDATE_VERSION = 02 +JDK_UPDATE_VERSION = 04 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = 78cd4b4fcb75 -HOTSPOT_CHANGESET = 433e4570d57c -JAXP_CHANGESET = 7300d2ab9fb2 -JAXWS_CHANGESET = d26ff33070cb -JDK_CHANGESET = afdcedc27c23 -LANGTOOLS_CHANGESET = 58f6a950cd72 -OPENJDK_CHANGESET = a66b58021165 +CORBA_CHANGESET = c628aeb3d72f +HOTSPOT_CHANGESET = b1dfb460ee5c +JAXP_CHANGESET = 9b7a2f21b8a8 +JAXWS_CHANGESET = 9ae185bd7ff2 +JDK_CHANGESET = 3377516da583 +LANGTOOLS_CHANGESET = 54b1383d794c +OPENJDK_CHANGESET = 3a0fd3cc84a0 -CORBA_SHA256SUM = c25abc052d0e3041c558869ba88f80bf3ff051efbcd20e6c22b862fdd4c066d4 -HOTSPOT_SHA256SUM = 51f4d29c9bfa7bc08a0e70be33b71e2af4f114b78d0a99a4e9c6f6a9977d0568 -JAXP_SHA256SUM = 0774d2acaa47052b8f529edae1ca868721a0164a956455958a6ea51550fa01e0 -JAXWS_SHA256SUM = 5f0a98280219fa8fe2926cfd4471fb0e98391b38a3c4b29743ad361832cea0e2 -JDK_SHA256SUM = 35ad431d5d80e9b77bdbadc5218500e8ea377c3c731ddab0db7179bc5860075f -LANGTOOLS_SHA256SUM = 3e66400ba51c5de4bf79be50dff41f47134ba2fcdbea845fb1ed0f492cfb0efb -OPENJDK_SHA256SUM = 714a000514e273bae755f4cc90df839a298583b38bb93518d6cf805dede99b6d +CORBA_SHA256SUM = b176cf1fd8a461413ab822236753cf455210e97c11a8d4224929582607c212b4 +HOTSPOT_SHA256SUM = 43d83d5209a9f748e6650c792ca8ef8d9a90d6e3c53e461993c6bffb8c37e972 +JAXP_SHA256SUM = 4d38e8a0fc0fcbe3ba8a56f9fc0960ecbf15cd4cef44b76fdc82418c008a33c3 +JAXWS_SHA256SUM = 60c6c62c851eafc15ff33e58aa625e6f58fd31f15328b121602a07891fc1d272 +JDK_SHA256SUM = 5707d697c2dfc44fbf91ec90721055b5a23ea4c77f0cb53abf00a0f53fa0845e +LANGTOOLS_SHA256SUM = 97821e49028d8d726fac9563c361c682146e037074179cbd68ed5cb80e82f9fa +OPENJDK_SHA256SUM = abe0c3b348c35f79117ef726bb2580b279024b1f73b6487fda4a1e717c738f9f CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 @@ -267,8 +267,7 @@ endif if ENABLE_SYSTEMTAP -ICEDTEA_PATCHES += patches/systemtap.patch \ - patches/systemtap-alloc-size-workaround.patch +ICEDTEA_PATCHES += patches/systemtap.patch endif if ENABLE_NSS diff -r 732f30ec8b7b -r 5e302f2e45eb patches/boot/ant-javac.patch --- a/patches/boot/ant-javac.patch Fri Mar 16 13:15:15 2012 +0100 +++ b/patches/boot/ant-javac.patch Thu Mar 22 15:52:54 2012 +0000 @@ -1,7 +1,7 @@ diff -Nru openjdk-boot.orig/jaxp/build.xml openjdk-boot/jaxp/build.xml ---- openjdk-boot.orig/jaxp/build.xml 2009-12-04 15:29:13.000000000 +0000 -+++ openjdk-boot/jaxp/build.xml 2009-12-14 22:57:23.000000000 +0000 -@@ -122,7 +122,8 @@ +--- openjdk-boot.orig/jaxp/build.xml 2012-02-21 23:55:29.000000000 +0000 ++++ openjdk-boot/jaxp/build.xml 2012-03-18 22:26:49.382089457 +0000 +@@ -123,7 +123,8 @@ memoryMaximumSize="${javac.memoryMaximumSize}" source="${javac.source}" debug="${javac.debug}" @@ -10,11 +10,11 @@ + executable="${jdk.home}/bin/javac"> - + diff -Nru openjdk-boot.orig/jaxws/build.xml openjdk-boot/jaxws/build.xml ---- openjdk-boot.orig/jaxws/build.xml 2009-12-04 15:35:01.000000000 +0000 -+++ openjdk-boot/jaxws/build.xml 2009-12-14 22:57:41.000000000 +0000 -@@ -122,7 +122,8 @@ +--- openjdk-boot.orig/jaxws/build.xml 2012-02-15 17:08:44.000000000 +0000 ++++ openjdk-boot/jaxws/build.xml 2012-03-18 22:26:49.382089457 +0000 +@@ -123,7 +123,8 @@ memoryMaximumSize="${javac.memoryMaximumSize}" source="${javac.source}" debug="${javac.debug}" diff -r 732f30ec8b7b -r 5e302f2e45eb patches/boot/corba-defs.patch --- a/patches/boot/corba-defs.patch Fri Mar 16 13:15:15 2012 +0100 +++ b/patches/boot/corba-defs.patch Thu Mar 22 15:52:54 2012 +0000 @@ -1,9 +1,9 @@ -diff -Nru openjdk.orig/corba/make/common/Defs.gmk openjdk/corba/make/common/Defs.gmk ---- openjdk-boot.orig/corba/make/common/Defs.gmk 2010-11-12 01:18:17.000000000 +0000 -+++ openjdk-boot/corba/make/common/Defs.gmk 2010-11-19 22:40:28.154937216 +0000 -@@ -53,6 +53,13 @@ - - _OUTPUTDIR=$(TOPDIR)/build/$(PLATFORM)-$(ARCH) +diff -Nru openjdk-boot.orig/corba/make/common/Defs.gmk openjdk-boot/corba/make/common/Defs.gmk +--- openjdk-boot.orig/corba/make/common/Defs.gmk 2012-02-15 17:08:19.000000000 +0000 ++++ openjdk-boot/corba/make/common/Defs.gmk 2012-03-18 22:37:54.536815001 +0000 +@@ -75,6 +75,13 @@ + endif + endif + +ifdef ALT_LANGTOOLS_DIST @@ -15,7 +15,7 @@ # # Get platform definitions # -@@ -85,8 +92,6 @@ +@@ -107,8 +114,6 @@ # for build tool jar files BUILDTOOLJARDIR = $(OUTPUTDIR)/btjars ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars @@ -24,7 +24,7 @@ # for imported source files IMPORTSRCDIR = $(OUTPUTDIR)/impsrc # for imported documents -@@ -167,7 +172,7 @@ +@@ -189,7 +194,7 @@ # We define an intermediate variable for Java files because # we use its value later to help define $SOURCEPATH diff -r 732f30ec8b7b -r 5e302f2e45eb patches/boot/demos.patch --- a/patches/boot/demos.patch Fri Mar 16 13:15:15 2012 +0100 +++ b/patches/boot/demos.patch Thu Mar 22 15:52:54 2012 +0000 @@ -1,8 +1,8 @@ -diff -Nru openjdk.orig/jdk/make/common/Release.gmk openjdk/jdk/make/common/Release.gmk ---- openjdk-boot.orig/jdk/make/common/Release.gmk 2011-03-16 20:59:31.000000000 +0000 -+++ openjdk-boot/jdk/make/common/Release.gmk 2011-03-16 21:29:40.269191529 +0000 -@@ -1071,16 +1071,6 @@ - $(CP) $(PLATFORM_SRC)/bin/java_md.h $(JDK_IMAGE_DIR)/src/launcher +diff -Nru openjdk-boot.orig/jdk/make/common/Release.gmk openjdk-boot/jdk/make/common/Release.gmk +--- openjdk-boot.orig/jdk/make/common/Release.gmk 2012-03-18 22:39:44.298585468 +0000 ++++ openjdk-boot/jdk/make/common/Release.gmk 2012-03-19 00:50:02.224588936 +0000 +@@ -1104,16 +1104,6 @@ + $(CP) $(FILES_launcher) $(JDK_IMAGE_DIR)/src/launcher $(CD) $(JDK_IMAGE_DIR)/src && $(ZIPEXE) -qr ../src.zip * $(RM) -r $(JDK_IMAGE_DIR)/src - @# @@ -18,12 +18,12 @@ ifneq ($(PLATFORM), windows) $(call copy-man-pages,$(JDK_IMAGE_DIR),$(JDK_MAN_PAGES)) endif # !windows -diff -Nru openjdk.orig/jdk/make/Makefile openjdk/jdk/make/Makefile ---- openjdk-boot.orig/jdk/make/Makefile 2011-03-14 22:10:30.000000000 +0000 -+++ openjdk-boot/jdk/make/Makefile 2011-03-16 21:29:40.269191529 +0000 -@@ -238,7 +238,7 @@ - - SUBDIRS = tools java javax sun com +diff -Nru openjdk-boot.orig/jdk/make/Makefile openjdk-boot/jdk/make/Makefile +--- openjdk-boot.orig/jdk/make/Makefile 2012-03-12 17:25:51.000000000 +0000 ++++ openjdk-boot/jdk/make/Makefile 2012-03-19 00:50:02.224588936 +0000 +@@ -237,7 +237,7 @@ + SUBDIRS += apple + endif SUBDIRS_tools = launchers -SUBDIRS_misc = org sunw jpda mkdemo mksample +SUBDIRS_misc = org sunw jpda mksample diff -r 732f30ec8b7b -r 5e302f2e45eb patches/boot/ecj-diamond.patch --- a/patches/boot/ecj-diamond.patch Fri Mar 16 13:15:15 2012 +0100 +++ b/patches/boot/ecj-diamond.patch Thu Mar 22 15:52:54 2012 +0000 @@ -1,5 +1,6 @@ ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2012-03-22 11:28:14.027881166 +0000 @@ -103,9 +103,9 @@ return this.def.compareTo(that.def); } @@ -70,8 +71,9 @@ // Parse several independent layout bodies: "[foo][bar]...[baz]" for (int i = 0; i < layout.length(); i++) { if (layout.charAt(i++) != '[') ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2012-03-22 11:18:05.190037791 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2012-03-22 11:28:14.047881492 +0000 @@ -257,7 +257,7 @@ assert(basicCodings[_meta_default] == null); assert(basicCodings[_meta_canon_min] != null); @@ -139,8 +141,9 @@ prevForAssertMap.put(b, p); return true; } ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2012-03-22 11:18:05.066035805 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2012-03-22 11:28:14.047881492 +0000 @@ -466,7 +466,7 @@ void readInnerClasses(Class cls) throws IOException { @@ -150,19 +153,9 @@ for (int i = 0; i < nc; i++) { InnerClass ic = new InnerClass(readClassRef(), ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java -@@ -402,7 +402,7 @@ - private static Map codeMap; - - private static synchronized Coding of(int B, int H, int S, int del) { -- if (codeMap == null) codeMap = new HashMap<>(); -+ if (codeMap == null) codeMap = new HashMap(); - Coding x0 = new Coding(B, H, S, del); - Coding x1 = codeMap.get(x0); - if (x1 == null) codeMap.put(x0, x1 = x0); ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2012-03-22 11:28:14.047881492 +0000 @@ -743,9 +743,9 @@ // Steps 1/2/3 are interdependent, and may be iterated. // Steps 4 and 5 may be decided independently afterward. @@ -198,8 +191,21 @@ for (int i = start; i < end; i++) { if (popset.add(values[i])) popvals.add(values[i]); } ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2012-03-22 11:28:14.047881492 +0000 +@@ -402,7 +402,7 @@ + private static Map codeMap; + + private static synchronized Coding of(int B, int H, int S, int del) { +- if (codeMap == null) codeMap = new HashMap<>(); ++ if (codeMap == null) codeMap = new HashMap(); + Coding x0 = new Coding(B, H, S, del); + Coding x1 = codeMap.get(x0); + if (x1 == null) codeMap.put(x0, x1 = x0); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2012-03-22 11:28:14.047881492 +0000 @@ -915,7 +915,7 @@ public static Index[] partition(Index ix, int[] keys) { @@ -227,8 +233,9 @@ work.hasPrevious(); ) { Entry e = work.previous(); work.remove(); // pop stack ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2012-03-22 11:18:05.190037791 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2012-03-22 11:28:14.047881492 +0000 @@ -59,7 +59,7 @@ ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource"); @@ -265,8 +272,9 @@ loadOptmap: for (String optline : options.split("\n")) { String[] words = optline.split("\\p{Space}+"); ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2012-03-22 11:28:14.047881492 +0000 @@ -45,7 +45,7 @@ private final ArrayList flist; @@ -276,8 +284,9 @@ // initialize the list to null for (int i = 0 ; i < capacity ; i++) { flist.add(null); ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java 2012-03-22 11:28:14.051881557 +0000 @@ -126,11 +126,11 @@ public void setBytes(byte[] newBytes) { if (bytes == newBytes) return; @@ -301,8 +310,9 @@ } static final int LOC_SHIFT = 1; ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2012-03-22 11:18:05.070035870 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2012-03-22 11:28:14.051881557 +0000 @@ -112,7 +112,7 @@ public static final Attribute.Layout attrSourceFileSpecial; public static final Map attrDefs; @@ -466,8 +476,9 @@ for (Class cls : classes) { // Add to the end of ths list: if (!fileSet.contains(cls.file)) ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2012-03-22 11:18:05.194037856 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2012-03-22 11:28:14.051881557 +0000 @@ -686,7 +686,7 @@ cp_Signature_classes.expectLength(getIntTotal(numSigClasses)); cp_Signature_classes.readFrom(in); @@ -580,8 +591,9 @@ ClassEntry thisClass = curClass.thisClass; ClassEntry superClass = curClass.superClass; ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2012-03-22 11:18:05.194037856 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2012-03-22 11:28:14.051881557 +0000 @@ -116,7 +116,7 @@ int[][] attrCounts; // count attr. occurences @@ -636,8 +648,9 @@ // First, collect a consistent global set. for (Class cls : pkg.classes) { if (!cls.hasInnerClasses()) continue; ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2012-03-22 11:28:14.051881557 +0000 @@ -181,8 +181,8 @@ final Map attrDefs; final Map attrCommands; @@ -667,8 +680,9 @@ try { for (JarEntry je : Collections.list(jf.entries())) { InFile inFile = new InFile(jf, je); ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2012-03-22 11:28:14.051881557 +0000 @@ -309,7 +309,7 @@ // As each new value is added, we assert that the value // was not already in the set. @@ -678,8 +692,9 @@ int fillp = 1; maxForDebug += fillp; int min = Integer.MIN_VALUE; // farthest from the center ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2012-03-22 11:18:05.194037856 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2012-03-22 11:28:14.051881557 +0000 @@ -47,8 +47,8 @@ */ @@ -700,8 +715,9 @@ res.addAll(values); while (res.remove(null)); return res; ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2012-03-22 11:28:14.051881557 +0000 @@ -58,12 +58,12 @@ private final Map memberEntries; @@ -721,8 +737,9 @@ props = new PropMap(); } ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2012-03-22 11:18:05.194037856 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2012-03-22 11:28:14.051881557 +0000 @@ -232,7 +232,7 @@ props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50"); pkg.ensureAllClassFiles(); @@ -732,8 +749,9 @@ for (Package.File file : pkg.getFiles()) { String name = file.nameString; JarEntry je = new JarEntry(Utils.getJarEntryName(name)); ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2012-03-22 11:18:05.194037856 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2012-03-22 11:28:14.051881557 +0000 @@ -132,7 +132,7 @@ // Keep a TLS point to the global data and environment. // This makes it simpler to supply environmental options @@ -743,8 +761,9 @@ // convenience methods to access the TL globals static TLGlobals getTLGlobals() { ---- openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2012-03-22 11:28:14.055881623 +0000 @@ -1284,7 +1284,7 @@ */ public Collection toCollection() throws SQLException { @@ -763,8 +782,9 @@ // create a copy CachedRowSetImpl crsTemp; ---- openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2012-03-22 11:28:14.055881623 +0000 @@ -222,7 +222,7 @@ // either of the setter methods have been set. if(boolColId){ @@ -774,19 +794,9 @@ for(int i=0;i userCertList = new ArrayList<>(); -+ ArrayList userCertList = new ArrayList(); - i = 0; - while (i < certs.length) { - userCertList.add(certs[i]); ---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2012-03-22 11:28:14.055881623 +0000 @@ -99,10 +99,10 @@ throws UnsupportedCallbackException { @@ -800,8 +810,9 @@ ConfirmationInfo confirmation = new ConfirmationInfo(); ---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2012-03-22 11:28:14.055881623 +0000 @@ -152,7 +152,7 @@ // new configuration @@ -829,8 +840,9 @@ String key; String value; while (peek(";") == false) { ---- openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2012-03-22 11:28:14.055881623 +0000 @@ -184,7 +184,7 @@ private UnixNumericUserPrincipal UIDPrincipal; private UnixNumericGroupPrincipal GIDPrincipal; @@ -840,8 +852,9 @@ // initial state private Subject subject; From ahughes at redhat.com Thu Mar 22 09:02:59 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 22 Mar 2012 12:02:59 -0400 (EDT) Subject: ARM: Support for OpenJDK 7 [resend] In-Reply-To: <4F6887C4.5090108@redhat.com> Message-ID: <55bdbdf2-92c6-435a-b1a8-d8293ca957e0@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On 03/20/2012 10:54 AM, Chris Phillips wrote: > > These changes look good and are running well as merged into > > icedtea7-forest-release-2.1 > > using the patch set you provided. > > Have "self" built x64, x64-zero and arm-zero w/asm jit with the > > fixes. > > Pushed, thanks. > When you're happy with this, I suggest we get a 2.1.1 release out, which will give ARM on 7 a bit more visibility and let distros start packaging it if they wish. We should aim to do this well in advance of the next security release, which is the 12th of June. I'd prefer we didn't end up doing a security release with the ARM changes in too. > Andrew. > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From jvanek at redhat.com Thu Mar 22 09:28:21 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 17:28:21 +0100 Subject: [icedtea-web] RFC: disable tests that are known to fail In-Reply-To: <4F6B41EB.209@redhat.com> References: <4F69EC3F.2050009@redhat.com> <4F69EFC2.2070801@redhat.com> <4F69F9CF.7090707@redhat.com> <4F6A01BD.7080207@redhat.com> <20120321210614.GJ6489@redhat.com> <4F6ADF28.7050008@redhat.com> <4F6B41EB.209@redhat.com> Message-ID: <4F6B5325.3080604@redhat.com> On 03/22/2012 04:14 PM, Omair Majid wrote: > On 03/22/2012 04:13 AM, Jiri Vanek wrote: >> To be clear - I'm for some kind of skipping, but do not like the idea of >> used @ignored annotation. > > Assume that most developers are not running the junit tests through the > command line but using their ide's junit integration. Any ideas on how > skipping can be accomplished? (Without configuring their ide). We want a > default 'make check' (and whatever method an ide might use to run the > junit tests) to show that all tests have passed. Eg I'm not doing so. I'm running in ide just suite or two which I expect to be affected by my work, and then run make all-possible-test and check reports/coverage. But yes, from this point of view own annotation is not an solution. > > To look at it from the other point of view, why dont we have a flag/env > var that says ignore the @Ignore annotation during make check (or > something like that)? ha! Nice reversed idea :) In this case My opinion is to have configure-able variable to ignore @ignore ( :D ) during make. (As I'm thinking about implementation of ignore @Ignore ... it can be tricky!) But when this reversed idea is connected with the "preferring ide" mentioned above, hmhm my-mind-is-deadlocked. I'm still more preferring own annotation: - in ide it will fail, developer will check, why the hell, will see all the reasons (eg that it is representing an issue) and ignoring through rest of his patching. - After his patch is done, he will return to the discovered known-to-be-failing test and will make new patch :) - will run make check/distcheck both with enabled/disabled "ignore KnownToBeFailing" and so will know all the impacts (Ignore) @ignore - in ide will run testsuite, will see that nothing failed, something was ignored, will never check what and will not care why... - will see both in ide and make all-tests that everything is passing, something is ignored (but who cares!) - will never be "forced" to discover amazing --ignooreIgnore configure option :) I'm definietly for marking known-too-be-failing tests, but whether own annotation or Ignore (with ignore @ignore) I'm 50/50 now . J. > > Thanks, > Omair From jvanek at redhat.com Thu Mar 22 09:43:47 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 17:43:47 +0100 Subject: [icedtea-web] RFC: PR898: signed applications with big jnlp-file doesn't start In-Reply-To: <4F6B251B.8020709@redhat.com> References: <4F69E933.70308@redhat.com> <4F6AF2FE.6040707@redhat.com> <4F6B1E4A.9020700@redhat.com> <4F6B2211.9060307@redhat.com> <4F6B251B.8020709@redhat.com> Message-ID: <4F6B56C3.5090601@redhat.com> On 03/22/2012 02:11 PM, Jiri Vanek wrote: > On 03/22/2012 01:58 PM, Omair Majid wrote: >> On 03/22/2012 08:42 AM, Jiri Vanek wrote: >>> On 03/22/2012 10:38 AM, Jiri Vanek wrote: >>> Just two more minor nitpicks >>> >>> Can you add bug number/link to reproducer comment and to changelog? >>> >> >> Done for ChangeLog/NEWS. I would rather not add bug numbers to the >> codebase/test case though - I feel that the testcase stands on its own >> and adding bug numbers doesnt really add new value. It is stored in the >> mercurial history and changelog for those who do want to look it up. > > Then you will be enemy of #bug annotation? :) >> >>>> If you are ok now with default utf-8 encoding, I'm for, and if you >>>> will consider the encoding >>>> reading and then re-encode if necessary, then it can be as separate >>>> patch. >>>> >> >> I would rather not mess with encoding in this patch. It's not a >> regression, right? If it does cause problems later, I (or someone else) >> will, of course, fix it. > > hmm.. But you are adding byte <-> string transformations unless I'm very wrong. Aren't you? > > Maybe to set plain ASCII can be solution? Ah now I see that you are right. It was "wrong" even in previous Implementation. I'm now ok with the patch And I will try to find an reproducer for this approach to fail. Thanx for patience J. >> >> The only change between this patch and the one I posted before is the >> NEWS/ChangeLog update. >> >> Okay for HEAD? 1.2? >> >> Thanks, >> Omair > From aph at redhat.com Thu Mar 22 10:07:48 2012 From: aph at redhat.com (Andrew Haley) Date: Thu, 22 Mar 2012 17:07:48 +0000 Subject: ARM: Support for OpenJDK 7 [resend] In-Reply-To: <55bdbdf2-92c6-435a-b1a8-d8293ca957e0@zmail17.collab.prod.int.phx2.redhat.com> References: <55bdbdf2-92c6-435a-b1a8-d8293ca957e0@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <4F6B5C64.8000909@redhat.com> On 03/22/2012 04:02 PM, Andrew Hughes wrote: > ----- Original Message ----- >> On 03/20/2012 10:54 AM, Chris Phillips wrote: >>> These changes look good and are running well as merged into >>> icedtea7-forest-release-2.1 >>> using the patch set you provided. >>> Have "self" built x64, x64-zero and arm-zero w/asm jit with the >>> fixes. >> >> Pushed, thanks. >> > > When you're happy with this, I suggest we get a 2.1.1 release out, > which will give ARM on 7 a bit more visibility and let distros > start packaging it if they wish. > > We should aim to do this well in advance of the next security > release, which is the 12th of June. I'd prefer we didn't end up > doing a security release with the ARM changes in too. No problem. Should be next week. Andrew. From omajid at icedtea.classpath.org Thu Mar 22 10:12:53 2012 From: omajid at icedtea.classpath.org (omajid at icedtea.classpath.org) Date: Thu, 22 Mar 2012 17:12:53 +0000 Subject: /hg/icedtea-web: PR898: signed applications with big jnlp-file d... Message-ID: changeset 14284e2041de in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=14284e2041de author: Omair Majid date: Thu Mar 22 13:12:44 2012 -0400 PR898: signed applications with big jnlp-file doesn't start JNLPMatcher was using PipedInputStream and PipedOutputStream without threads which was deadlocking on large files. Use ByteArrayOutputStream instead to avoid this. diffstat: ChangeLog | 11 ++++ NEWS | 2 + netx/net/sourceforge/jnlp/JNLPMatcher.java | 25 +++----- tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java | 39 +++++++++++++- 4 files changed, 59 insertions(+), 18 deletions(-) diffs (161 lines): diff -r 89609d0a4e1c -r 14284e2041de ChangeLog --- a/ChangeLog Mon Mar 19 14:37:03 2012 -0400 +++ b/ChangeLog Thu Mar 22 13:12:44 2012 -0400 @@ -1,3 +1,14 @@ +2012-03-21 Omair Majid + + * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java + (testIsMatchDoesNotHangOnLargeData): New method. + +2012-03-21 Lars Herschke + + PR898: signed applications with big jnlp-file doesn't start + * netx/net/sourceforge/jnlp/JNLPMatcher.java (JNLPMatcher): Handle large + files correctly. + 2012-03-19 Danesh Dadachanji Fix failing unit test missing title/vendor tags in the JNLP stream. diff -r 89609d0a4e1c -r 14284e2041de NEWS --- a/NEWS Mon Mar 19 14:37:03 2012 -0400 +++ b/NEWS Thu Mar 22 13:12:44 2012 -0400 @@ -9,6 +9,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.3 (2012-XX-XX): +* NetX + - PR898: signed applications with big jnlp-file doesn't start (webstart affect like "frozen") * Plugin - PR820: IcedTea-Web 1.1.3 crashing Firefox when loading Citrix XenApp - PR895: IcedTea-Web searches for missing classes on each loadClass or findClass diff -r 89609d0a4e1c -r 14284e2041de netx/net/sourceforge/jnlp/JNLPMatcher.java --- a/netx/net/sourceforge/jnlp/JNLPMatcher.java Mon Mar 19 14:37:03 2012 -0400 +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Thu Mar 22 13:12:44 2012 -0400 @@ -38,11 +38,12 @@ package net.sourceforge.jnlp; import java.util.List; +import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; +import java.io.Reader; +import java.io.StringReader; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; @@ -75,7 +76,7 @@ * if IOException, XMLParseException is thrown during parsing; * Or launchJNLP/appTemplate is null */ - public JNLPMatcher(InputStreamReader appTemplate, InputStreamReader launchJNLP, + public JNLPMatcher(Reader appTemplate, Reader launchJNLP, boolean isTemplate) throws JNLPMatcherException { if (appTemplate == null && launchJNLP == null) @@ -87,29 +88,25 @@ throw new JNLPMatcherException("Launching JNLP file is null."); //Declare variables for signed JNLP file - PipedInputStream pinTemplate= null; - PipedOutputStream poutTemplate= null; + ByteArrayOutputStream poutTemplate= null; //Declare variables for launching JNLP file - PipedInputStream pinJNLPFile = null; - PipedOutputStream poutJNLPFile = null; + ByteArrayOutputStream poutJNLPFile = null; try { XMLElement appTemplateXML = new XMLElement(); XMLElement launchJNLPXML = new XMLElement(); // Remove the comments and CDATA from the JNLP file - pinTemplate = new PipedInputStream(); - poutTemplate = new PipedOutputStream(pinTemplate); + poutTemplate = new ByteArrayOutputStream(); appTemplateXML.sanitizeInput(appTemplate, poutTemplate); - pinJNLPFile = new PipedInputStream(); - poutJNLPFile = new PipedOutputStream(pinJNLPFile); + poutJNLPFile = new ByteArrayOutputStream(); launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); // Parse both files - appTemplateXML.parseFromReader(new InputStreamReader(pinTemplate)); - launchJNLPXML.parseFromReader(new InputStreamReader(pinJNLPFile)); + appTemplateXML.parseFromReader(new StringReader(poutTemplate.toString())); + launchJNLPXML.parseFromReader(new StringReader(poutJNLPFile.toString())); // Initialize parent nodes this.appTemplateNode = new Node(appTemplateXML); @@ -122,10 +119,8 @@ e); } finally { // Close all stream - closeInputStream(pinTemplate); closeOutputStream(poutTemplate); - closeInputStream(pinJNLPFile); closeOutputStream(poutJNLPFile); } diff -r 89609d0a4e1c -r 14284e2041de tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java Mon Mar 19 14:37:03 2012 -0400 +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java Thu Mar 22 13:12:44 2012 -0400 @@ -37,12 +37,13 @@ package net.sourceforge.jnlp; -import static org.junit.Assert.fail; - import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import junit.framework.Assert; +import java.io.StringReader; +import java.util.Random; + +import org.junit.Assert; import org.junit.Test; public class JNLPMatcherTest { @@ -461,4 +462,36 @@ fileReader.close(); launchReader.close(); } + + @Test (timeout=1000 /*ms*/) + public void testIsMatchDoesNotHangOnLargeData() throws JNLPMatcherException { + /* construct an alphabet containing characters 'a' to 'z' */ + final int ALPHABET_SIZE = 26; + char[] alphabet = new char[ALPHABET_SIZE]; + for (int i = 0; i < ALPHABET_SIZE; i++) { + alphabet[i] = (char)('a' + i); + } + /* generate a long but random string using the alphabet */ + final Random r = new Random(); + final int STRING_SIZE = 1024 * 1024; // 1 MB + StringBuilder descriptionBuilder = new StringBuilder(STRING_SIZE); + for (int i = 0; i < STRING_SIZE; i++) { + descriptionBuilder.append(alphabet[r.nextInt(ALPHABET_SIZE)]); + } + String longDescription = descriptionBuilder.toString(); + + String file = + "\n" + + " \n" + + " JNLPMatcher hanges on large file size\n" + + " IcedTea\n" + + " " + longDescription + "\n" + + " \n" + + "\n"; + + StringReader reader1 = new StringReader(file); + StringReader reader2 = new StringReader(file); + JNLPMatcher matcher = new JNLPMatcher(reader1, reader2, false); + Assert.assertTrue(matcher.isMatch()); + } } From omajid at redhat.com Thu Mar 22 10:15:05 2012 From: omajid at redhat.com (Omair Majid) Date: Thu, 22 Mar 2012 13:15:05 -0400 Subject: [icedtea-web] RFC: PR898: signed applications with big jnlp-file doesn't start In-Reply-To: <4F6B56C3.5090601@redhat.com> References: <4F69E933.70308@redhat.com> <4F6AF2FE.6040707@redhat.com> <4F6B1E4A.9020700@redhat.com> <4F6B2211.9060307@redhat.com> <4F6B251B.8020709@redhat.com> <4F6B56C3.5090601@redhat.com> Message-ID: <4F6B5E19.4010108@redhat.com> On 03/22/2012 12:43 PM, Jiri Vanek wrote: > On 03/22/2012 02:11 PM, Jiri Vanek wrote: >> On 03/22/2012 01:58 PM, Omair Majid wrote: >>> On 03/22/2012 08:42 AM, Jiri Vanek wrote: >>>> On 03/22/2012 10:38 AM, Jiri Vanek wrote: >>>> Just two more minor nitpicks >>>> >>>> Can you add bug number/link to reproducer comment and to changelog? >>>> >>> >>> Done for ChangeLog/NEWS. I would rather not add bug numbers to the >>> codebase/test case though - I feel that the testcase stands on its own >>> and adding bug numbers doesnt really add new value. It is stored in the >>> mercurial history and changelog for those who do want to look it up. >> >> Then you will be enemy of #bug annotation? :) >>> >>>>> If you are ok now with default utf-8 encoding, I'm for, and if you >>>>> will consider the encoding >>>>> reading and then re-encode if necessary, then it can be as separate >>>>> patch. >>>>> >>> >>> I would rather not mess with encoding in this patch. It's not a >>> regression, right? If it does cause problems later, I (or someone else) >>> will, of course, fix it. >> >> hmm.. But you are adding byte <-> string transformations unless I'm >> very wrong. Aren't you? >> >> Maybe to set plain ASCII can be solution? > > Ah now I see that you are right. It was "wrong" even in previous > Implementation. I'm now ok with the patch And I will try to find an > reproducer for this approach to fail. > I have pushed the changeset: http://icedtea.classpath.org/hg/icedtea-web/rev/14284e2041de Thanks for the review! Cheers, Omair From omajid at redhat.com Thu Mar 22 11:21:00 2012 From: omajid at redhat.com (Omair Majid) Date: Thu, 22 Mar 2012 14:21:00 -0400 Subject: Icedtea-web splashscreen implementation In-Reply-To: <4F50BE87.5070508@redhat.com> References: <4F50BE87.5070508@redhat.com> Message-ID: <4F6B6D8C.101@redhat.com> Hi Jiri, On 03/02/2012 07:35 AM, Jiri Vanek wrote: > splasScreen-integration.diff I have looked over this patch and posted my thoughts below. > 2012-03-02 Jiri Vanek > > Integrated splashscreen, added authors, added bitmap splash, > * AUTHORS: added Jan Kmetko as the person behind initial bitmap > splash design I am not sure what's the requirement for adding an author; can we have an author who did not provide code? > * Makefile.am: (edit_launcher_script) enriched for replacement > JAVAWS_SPLASH_LOCATION inside javaws.in by real > datadir/PACKAGE_NAME/javaws_splash.png value > (install-exec-local) enriched for installing javaws_splash.png from > NETX_SRCDIR to datadir/PACKAGE_NAME IcedTea-Web contains a number of images already; they are under netx/net/sourceforge/jnlp/resources. Any reason you want to have this image outside of netx.jar? If we leave it in netx.jar, we wont have to do these modifications to the makefiles. > *NEWS: mentioned splash screen > * extra/net/sourceforge/javaws/about/resources/notes.html: added > Danesh, Saad, me and Jan as missing developers and artist Please post a separate patch to add Danesh and Saad to the authors list; don't do it here. > * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: implemented > missing default splash screen with vector spalsh and with information's > element content > * netx/net/sourceforge/jnlp/JNLPSplashScreen.java: fixed to be able > to use custom image or (if not defined or broken) our vector one > * netx/net/sourceforge/jnlp/Launcher.java: added hooks which will > force applet to show error screen in case of error > change on lines @@ -696,22 +705,30 @@ probably does not work, and > it is the case when connection with server is interrupted in middle of > downloading jar > (createApplet) and (createAppletObject) were made synchronized to > prevent several applets lunched in one time to touch each other > * netx/net/sourceforge/jnlp/NetxPanel.java: added field, getter and > setter for its XEmbededFrame > * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: main > (createPanel)'s run is adding splash screen after start of > onitialization and removing it before init. > (framePanel) returns PluginAppletViewer and is creating sdplash > (removeSplash) new method to handle spalsh removing > (showErrorSplash) new method to be called by hooks to swap splash to > error state > * netx/net/sourceforge/jnlp/runtime/Boot.java): (name) and (version) > made public More comments below, in-line. > diff -r f058f21b9e99 launcher/javaws.in > --- a/launcher/javaws.in Wed Feb 22 10:18:45 2012 -0500 > +++ b/launcher/javaws.in Thu Mar 01 13:31:17 2012 +0100 > @@ -5,6 +5,7 @@ > LAUNCHER_FLAGS=-Xms8m > CLASSNAME=net.sourceforge.jnlp.runtime.Boot > BINARY_LOCATION=@JAVAWS_BIN_LOCATION@ > +SPLASH_LOCATION=@JAVAWS_SPLASH_LOCATION@ > PROGRAM_NAME=javaws > CP=@JRE@/lib/rt.jar > > @@ -15,6 +16,10 @@ > i=0 > j=0 > > +SPLASH="false" > +if [ "x$ICEDTEA_WEB_SPLASH" = "x" ] ; then > +SPLASH="true" > +fi; > while [ "$#" -gt "0" ]; do > case "$1" in > -J*) > @@ -24,6 +29,9 @@ > *) > ARGS[$j]="$1" > j=$((j+1)) > + if [ "$1" = "-headless" ] ; then > + SPLASH="false" > + fi Are you sure this is actually needed? If we only show the splash screen (in javaws) using the GuiLaunchhandler, and that isn't plugged-in in headless mode, then we don't need there here. > ;; > esac > shift > @@ -32,6 +40,10 @@ > k=0 > COMMAND[k]="${JAVA}" > k=$((k+1)) > +if [ "$SPLASH" = "true" ] ; then > +COMMAND[k]="-splash:${SPLASH_LOCATION}" > +k=$((k+1)) > +fi; Hm... so we just show a plain image and then later replace it with a dynamic one? > COMMAND[k]="${LAUNCHER_BOOTCLASSPATH}" > k=$((k+1)) > COMMAND[k]="${LAUNCHER_FLAGS}" > diff -r f058f21b9e99 netx/javaws_splash.png > Binary file netx/javaws_splash.png has changed > diff -r f058f21b9e99 netx/net/sourceforge/jnlp/GuiLaunchHandler.java > --- a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java Wed Feb 22 10:18:45 2012 -0500 > +++ b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java Thu Mar 01 13:31:17 2012 +0100 > @@ -1,5 +1,5 @@ Currently, the launcher handler is for the enitre runtime. Perhaps we should limit it to per Application/Applet? > /* GuiLaunchHandler.java > - Copyright (C) 2011 Red Hat, Inc. > + Copyright (C) 2012 Red Hat, Inc. > > This file is part of IcedTea. > > @@ -74,10 +74,13 @@ > } > > private void closeSplashScreen() { > - synchronized(mutex) { > + synchronized (mutex) { > if (splashScreen != null) { > if (splashScreen.isSplashScreenValid()) { > splashScreen.setVisible(false); > + if (splashScreen.isComponented()) { > + splashScreen.stopSpining(); > + } > } > splashScreen.dispose(); > } > @@ -96,40 +99,42 @@ > > @Override > public void launchInitialized(final JNLPFile file) { > - > + > int preferredWidth = 500; > int preferredHeight = 400; > > final URL splashImageURL = file.getInformation().getIconLocation( > IconDesc.SPLASH, preferredWidth, preferredHeight); > > + final ResourceTracker resourceTracker = new ResourceTracker(true); > if (splashImageURL != null) { > - final ResourceTracker resourceTracker = new ResourceTracker(true); > resourceTracker.addResource(splashImageURL, file.getFileVersion(), null, policy); > - synchronized(mutex) { > - try { > - SwingUtilities.invokeAndWait(new Runnable() { > - @Override > - public void run() { > - splashScreen = new JNLPSplashScreen(resourceTracker, null, null); > - } > - }); > - } catch (InterruptedException ie) { > - // Wait till splash screen is created > - while (splashScreen == null); > - } catch (InvocationTargetException ite) { > - ite.printStackTrace(); > - } > + } > + synchronized (mutex) { > + try { > + SwingUtilities.invokeAndWait(new Runnable() { > > - splashScreen.setSplashImageURL(splashImageURL); > + @Override > + public void run() { > + splashScreen = new JNLPSplashScreen(resourceTracker, file); > + } > + }); > + } catch (InterruptedException ie) { > + // Wait till splash screen is created > + while (splashScreen == null); I see this problem was in the existing code too, but this loop may not work too well. The variable splashScreen is not volatile, so changes to it may not be propagated :( > + } catch (InvocationTargetException ite) { > + ite.printStackTrace(); > } > + > + splashScreen.setSplashImageURL(splashImageURL); If I am following the code right, this call in turn invokes setLayout() on this swing container. This should be done in the EDT. > } > - > + > SwingUtilities.invokeLater(new Runnable() { > + > @Override > public void run() { > - if (splashImageURL != null) { > - synchronized(mutex) { > + if (splashScreen != null) { > + synchronized (mutex) { > if (splashScreen.isSplashScreenValid()) { > splashScreen.setVisible(true); > } > diff -r f058f21b9e99 netx/net/sourceforge/jnlp/JNLPSplashScreen.java > --- a/netx/net/sourceforge/jnlp/JNLPSplashScreen.java Wed Feb 22 10:18:45 2012 -0500 > +++ b/netx/net/sourceforge/jnlp/JNLPSplashScreen.java Thu Mar 01 13:31:17 2012 +0100 > @@ -14,80 +52,107 @@ > > import net.sourceforge.jnlp.cache.ResourceTracker; > import net.sourceforge.jnlp.runtime.JNLPRuntime; > +import net.sourceforge.jnlp.splashscreen.SplashPanel; > +import net.sourceforge.jnlp.splashscreen.SplashUtils; > +import net.sourceforge.jnlp.splashscreen.parts.InformationElement; > > public class JNLPSplashScreen extends JDialog { > > - String applicationTitle; > - String applicationVendor; > + > > ResourceTracker resourceTracker; > > URL splashImageUrl; > Image splashImage; > + private final JNLPFile file; > + public static final int DEF_W=635; > + public static final int DEF_H=480; DEFAULT_WIDTH/DEFAULT_HEIGHT ? > + private SplashPanel componetSplash; > > - public JNLPSplashScreen(ResourceTracker resourceTracker, > - String applicationTitle, String applicationVendor) { > + public JNLPSplashScreen(ResourceTracker resourceTracker,final JNLPFile file) { > > // If the JNLP file does not contain any icon images, the splash image > // will consist of the application's title and vendor, as taken from the > // JNLP file. > > this.resourceTracker = resourceTracker; > - this.applicationTitle = applicationTitle; > - this.applicationVendor = applicationVendor; > + this.file=file; > + > > } > > public void setSplashImageURL(URL url) { > - splashImageUrl = url; > - splashImage = null; > - try { > - splashImage = ImageIO.read(resourceTracker > - .getCacheFile(splashImageUrl)); > - if (splashImage == null) { > + if (url != null) { > + splashImageUrl = url; > + splashImage = null; > + try { > + splashImage = ImageIO.read(resourceTracker.getCacheFile(splashImageUrl)); As an optimization, perhaps we can check if the image is already cached. If it is cached, then we use it otherwise we cache the image in the background while displaying the normal splash screen? > + if (splashImage == null) { > + if (JNLPRuntime.isDebug()) { > + System.err.println("Error loading splash image: " + url); > + } > + > + } > + } catch (IOException e) { > if (JNLPRuntime.isDebug()) { > System.err.println("Error loading splash image: " + url); > } > - return; > + splashImage = null; > + > + } catch (IllegalArgumentException argumentException) { > + if (JNLPRuntime.isDebug()) { > + System.err.println("Error loading splash image: " + url); > + } > + splashImage = null; > + > } > - } catch (IOException e) { > - if (JNLPRuntime.isDebug()) { > - System.err.println("Error loading splash image: " + url); > - } > - splashImage = null; > - return; > - } catch (IllegalArgumentException argumentException) { > - if (JNLPRuntime.isDebug()) { > - System.err.println("Error loading splash image: " + url); > - } > - splashImage = null; > - return; > } > > + if (splashImage == null) { > + this.setLayout(new BorderLayout()); > + SplashPanel splash = SplashUtils.getSplashScreen(DEF_W, DEF_H, SplashUtils.SplashReason.JAVAWS); Does it really need to know a reason? > + if (splash != null) { > + splash.spin(); Can we rename this to something more generic? A quick but bad example would be start()? > + splash.setInformationContent(InformationElement.createFromJNLP(file)); Can we use the InformationDesc from the jnlp file directly. > + this.add(splash.getPanel()); SplashPanel is a component that can be added to another swing component? This I like! > + this.componetSplash = splash; > + } > + } > correctSize(); > } > > public boolean isSplashScreenValid() { > - return (splashImage != null); > + return (splashImage != null) || (componetSplash != null); > + > } > > private void correctSize() { > + int minimumWidth = DEF_W; > + int minimumHeight = DEF_H; > + if (splashImage != null) { > + Insets insets = getInsets(); > + minimumWidth = splashImage.getWidth(null) + insets.left > + + insets.right; > + minimumHeight = splashImage.getHeight(null) + insets.top > + + insets.bottom; > + } > + setMinimumSize(new Dimension(0, 0)); > + setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); > + setSize(new Dimension(minimumWidth, minimumHeight)); > + setPreferredSize(new Dimension(minimumWidth, minimumHeight)); > > - Insets insets = getInsets(); > - int minimumWidth = splashImage.getWidth(null) + insets.left > - + insets.right; > - int minimumHeight = splashImage.getHeight(null) + insets.top > - + insets.bottom; > - setMinimumSize(new Dimension(minimumWidth, minimumHeight)); > - > - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); > - setLocation((screenSize.width - minimumWidth) / 2, > - (screenSize.height - minimumHeight) / 2); > + // Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); > + // setLocation((screenSize.width - minimumWidth) / 2, > + // (screenSize.height - minimumHeight) / 2); > + //Above works always, but center only to middle of all monitors > + //below works on 1.4 and higher, and center to middle of primary monmtor > + setLocationRelativeTo(null); Does this mean that it will center to the primary monitor instead of the monitor where javaws was started in? > } > > @Override > public void paint(Graphics g) { > if (splashImage == null) { > + super.paint(g); > return; > } > > @@ -96,4 +161,12 @@ > g2.drawImage(splashImage, getInsets().left, getInsets().top, null); > > } > + > + boolean isComponented() { > + return (componetSplash!=null); > + } Whether this container contains components seems to be an implementation detail. Can you rename this method to make the intention more obvious? That is, when would I, an external developer, want to call this. > + > + void stopSpining() { > + if (isComponented()) componetSplash.stopSpinning(); > + } Again, spinning seems to be an implementation detail. What if we change the splash screen so it doesn't contain anything spinning? > } > diff -r f058f21b9e99 netx/net/sourceforge/jnlp/Launcher.java > --- a/netx/net/sourceforge/jnlp/Launcher.java Wed Feb 22 10:18:45 2012 -0500 > +++ b/netx/net/sourceforge/jnlp/Launcher.java Thu Mar 01 13:31:17 2012 +0100 > @@ -649,18 +651,22 @@ > * @param enableCodeBase whether to add the codebase URL to the classloader > */ > protected ApplicationInstance launchApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > - if (!file.isApplet()) > + if (!file.isApplet()) { > throw launchError(new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LNotApplet"), R("LNotAppletInfo"))); > + } > > + AppletInstance applet = null; > try { > - AppletInstance applet = createApplet(file, enableCodeBase, cont); > + applet = createApplet(file, enableCodeBase, cont); > applet.initialize(); > > applet.getAppletEnvironment().startApplet(); // this should be a direct call to applet instance > return applet; > } catch (LaunchException lex) { > + SplashUtils.showErrorCaught(lex, applet); Why not let the launch handler handle this isntead. It will avoid this tight linking of SplashUtils with Launcher here. > @@ -742,7 +760,7 @@ > * @param file the PluginBridge to be used. > * @param enableCodeBase whether to add the code base URL to the classloader. > */ > - protected Applet createAppletObject(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > + protected synchronized Applet createAppletObject(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { Why the synchronized here? > diff -r f058f21b9e99 netx/net/sourceforge/jnlp/NetxPanel.java > --- a/netx/net/sourceforge/jnlp/NetxPanel.java Wed Feb 22 10:18:45 2012 -0500 > +++ b/netx/net/sourceforge/jnlp/NetxPanel.java Thu Mar 01 13:31:17 2012 +0100 > @@ -232,4 +233,13 @@ > SunToolkit.createNewAppContext(); > } > } > + > + public XEmbeddedFrame getAppletViewerFrame() { > + return appletViewerFrame; > + } > + > + public void setAppletViewerFrame(XEmbeddedFrame appletViewerFrame) { > + this.appletViewerFrame = appletViewerFrame; > + } Do we really need this to be an XEmbeddedFrame? Is an abstraction not sufficent? > diff -r f058f21b9e99 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Wed Feb 22 10:18:45 2012 -0500 > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Thu Mar 01 13:31:17 2012 +0100 I am afraid of adding more swing dependencies to this class. I am not too familiar with this class, so I will let someone else (who is more familiar) look over it for issues with . My main concern is that we are tightly coupling applet loading code with splash screen code. We should do this more generically so we can disable/remove/swap out the splash screen with less hassle. I am considering making launchHandler per-instance and slightly more generic to handle this sort of thing. > @@ -517,6 +600,10 @@ > waitForAppletInit(applets.get(identifier).panel); > > // Should we proceed with reframing? > + //appletFrame.removeSplash(); > + //framePanel(identifier, oldFrame.statusMsgStream, handle, applets.get(identifier).panel); > + System.err.println("Init complete"); > + The commented out code scares me. Is it needed or not? Why add it? > if (updateStatus(identifier, PAV_INIT_STATUS.REFRAME_COMPLETE).equals(PAV_INIT_STATUS.INACTIVE)) { > destroyApplet(identifier); > return; > @@ -656,6 +743,8 @@ > */ > public static void waitForAppletInit(NetxPanel panel) { > > + System.err.println("Waiting for applet init"); > + Perhaps you mean plugin.debug() or something? > + > + private class PluginAppletPanel extends JPanel { > + // Nothing to do . Yet.. > + } > What's the purpose of this class? Cheers, Omair From mark at klomp.org Thu Mar 22 12:01:15 2012 From: mark at klomp.org (Mark Wielaard) Date: Thu, 22 Mar 2012 20:01:15 +0100 Subject: /hg/buildbot: build.sh: Add --disable-system-gio for icedtea7 bu... In-Reply-To: <936ffb97-fe5d-4267-b94d-19109ad9fad7@zmail17.collab.prod.int.phx2.redhat.com> References: <936ffb97-fe5d-4267-b94d-19109ad9fad7@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <20120322190115.GA26913@toonder.wildebeest.org> Hi Andrew, On Wed, 2012-03-21 at 09:14 -0400, Andrew Hughes wrote: > > elif [ "${VERSIONSTR}" == "7" ]; then > > ICEDTEA_ADDITIONAL_VMS="shark" > > - ADDITIONAL_OPTIONS="--disable-system-lcms" > > + ADDITIONAL_OPTIONS="--disable-system-lcms --disable-system-gio" > > else > > ICEDTEA_ADDITIONAL_VMS="" > > ADDITIONAL_OPTIONS="--disable-system-lcms" > > > > Why is this necessary? Old machine? No, Debian stable. Seems it wants GIO 2.2 and stable only has 2.0. It doesn't work btw... Just got the following failure report: > The current IcedTea7 build fails. > > More info at http://builder.wildebeest.org/icedtea/icedtea7/ > [...] > gcc -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN -g -DNDEBUG -DARCH='"amd64"' -Damd64 -DLINUX -DRELEASE='"1.7.0_02-icedtea"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -D_LP64=1 -I. -I/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/sun/awt/X11 -I../../../src/solaris/native/sun/awt/X11 -I/usr/include -DXAWT -DXAWT_HACK -I/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/../../sun.awt/awt/CClassHeaders -I../../../src/solaris/native/sun/awt -I../../../src/solaris/native/sun/xawt -I../../../src/solaris/native/sun/jdga -I../../../src/share/native/sun/awt/debug -I../../../src/share/native/sun/awt/image/cvutils -I../../../src/share/native/sun/java2d -I../../../src/share/native/sun/java2d/loops -I../../../src/share/native/sun/awt/image/cvutils -I../../../src/share/native/sun/awt/image -I../../../src/share/native/sun/font -I../../../src/solaris/native/sun/java2d -I../../../src/share/native/sun/java2d/pipe -I../../../src/share/native/sun/java2d/opengl -I../../../src/solaris/native/sun/java2d/opengl -I../../../src/solaris/native/sun/java2d/x11 -I../../../src/share/native/sun/dc/path -I../../../src/share/native/sun/dc/doe -I../../../src/share/native/sun/awt/alphacomposite -I../../../src/share/native/sun/awt/medialib -I../../../src/solaris/native/sun/awt/medialib -I../../../src/solaris/native/sun/font -I../../../src/share/native/sun/awt -I../../../src/solaris/native/sun/awt -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DUSE_SYSTEM_GTK -DUSE_SYSTEM_CUPS -DUSE_SYSTEM_FONTCONFIG -I../../../src/solaris/native/common/deps/glib2 -I/usr/X11R6/include/X11/extensions -I/usr/include/X11/extensions -I/usr/X11R6//include -c -o /usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/obj64/awt_Desktop.o ../../../src/solaris/native/sun/xawt/awt_Desktop.c > gcc -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN -g -DNDEBUG -DARCH='"amd64"' -Damd64 -DLINUX -DRELEASE='"1.7.0_02-icedtea"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -D_LP64=1 -I. -I/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/CClassHeaders -I../../../src/solaris/javavm/export -I../../../src/share/javavm/export -I../../../src/share/native/common -I../../../src/solaris/native/common -I../../../src/share/native/sun/awt/X11 -I../../../src/solaris/native/sun/awt/X11 -I/usr/include -DXAWT -DXAWT_HACK -I/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/../../sun.awt/awt/CClassHeaders -I../../../src/solaris/native/sun/awt -I../../../src/solaris/native/sun/xawt -I../../../src/solaris/native/sun/jdga -I../../../src/share/native/sun/awt/debug -I../../../src/share/native/sun/awt/image/cvutils -I../../../src/share/native/sun/java2d -I../../../src/share/native/sun/java2d/loops -I../../../src/share/native/sun/awt/image/cvutils -I../../../src/share/native/sun/awt/image -I../../../src/share/native/sun/font -I../../../src/solaris/native/sun/java2d -I../../../src/share/native/sun/java2d/pipe -I../../../src/share/native/sun/java2d/opengl -I../../../src/solaris/native/sun/java2d/opengl -I../../../src/solaris/native/sun/java2d/x11 -I../../../src/share/native/sun/dc/path -I../../../src/share/native/sun/dc/doe -I../../../src/share/native/sun/awt/alphacomposite -I../../../src/share/native/sun/awt/medialib -I../../../src/solaris/native/sun/awt/medialib -I../../../src/solaris/native/sun/font -I../../../src/share/native/sun/awt -I../../../src/solaris/native/sun/awt -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DUSE_SYSTEM_GTK -DUSE_SYSTEM_CUPS -DUSE_SYSTEM_FONTCONFIG -I../../../src/solaris/native/common/deps/glib2 -I/usr/X11R6/include/X11/extensions -I/usr/include/X11/extensions -I/usr/X11R6//include -c -o /usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/obj64/awt_UNIXToolkit.o ../../../src/solaris/native/sun/awt/awt_UNIXToolkit.c > In file included from ../../../src/solaris/native/sun/xawt/awt_Desktop.c:32: > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:31: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'type_init' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:32: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'object_unref' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:33: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'file_new_for_path' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:34: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'file_query_info' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'file_info_get_content_type' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:36: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'app_info_launch_default_for_uri' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:37: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'settings_new' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:38: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'settings_get_boolean' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'settings_get_string' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'settings_get_strv' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:41: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'settings_get_int' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:42: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'settings_get_child' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:43: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'gstrfreev' > ../../../src/solaris/native/common/deps/glib2/gio_fp.h:44: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'gfree' > ../../../src/solaris/native/sun/xawt/awt_Desktop.c: In function 'init': > ../../../src/solaris/native/sun/xawt/awt_Desktop.c:55: error: 'type_init' undeclared (first use in this function) > ../../../src/solaris/native/sun/xawt/awt_Desktop.c:55: error: (Each undeclared identifier is reported only once > ../../../src/solaris/native/sun/xawt/awt_Desktop.c:55: error: for each function it appears in.) > ../../../src/solaris/native/sun/xawt/awt_Desktop.c: In function 'Java_sun_awt_X11_XDesktopPeer_gnome_1url_1show': > ../../../src/solaris/native/sun/xawt/awt_Desktop.c:126: error: 'app_info_launch_default_for_uri' undeclared (first use in this function) > make[6]: *** [/usr/local/build/icedtea7-build/openjdk.build-boot/tmp/sun/sun.awt.X11/xawt/obj64/awt_Desktop.o] Error 1 > make[6]: *** Waiting for unfinished jobs.... > ../../../src/solaris/native/sun/awt/awt_UNIXToolkit.c: In function 'Java_sun_awt_UNIXToolkit_gtkCheckVersionImpl': > ../../../src/solaris/native/sun/awt/awt_UNIXToolkit.c:275: warning: assignment discards qualifiers from pointer target type > make[6]: Leaving directory `/usr/local/build/icedtea7-build/openjdk-boot/jdk/make/sun/xawt' > make[5]: *** [library_parallel_compile] Error 2 > make[5]: Leaving directory `/usr/local/build/icedtea7-build/openjdk-boot/jdk/make/sun/xawt' > make[4]: *** [all] Error 1 > make[4]: Leaving directory `/usr/local/build/icedtea7-build/openjdk-boot/jdk/make/sun' > make[3]: *** [all] Error 1 > make[3]: Leaving directory `/usr/local/build/icedtea7-build/openjdk-boot/jdk/make' > make[2]: *** [jdk-build] Error 2 > make[2]: Leaving directory `/usr/local/build/icedtea7-build/openjdk-boot' > make[1]: *** [build_product_image] Error 2 > make[1]: Leaving directory `/usr/local/build/icedtea7-build/openjdk-boot' > make: *** [stamps/icedtea-boot.stamp] Error 2 Haven't looked yet what is going on. Cheers, Mark From jvanek at redhat.com Thu Mar 22 12:23:08 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 22 Mar 2012 20:23:08 +0100 Subject: [RFC][icedtea-web] fixes to reproducer engine In-Reply-To: <20120322140437.GL6489@redhat.com> References: <4F69E3AF.6020102@redhat.com> <20120322140437.GL6489@redhat.com> Message-ID: <4F6B7C1C.3060408@redhat.com> On 03/22/2012 03:04 PM, Deepak Bhole wrote: > * Jiri Vanek [2012-03-21 10:22]: >> Hi! >> >> As I wrote yesterday, I have found some bugs inside jnlp main >> engine. This patch is fixing them, and I would like to push it to >> head and 1.2 (with minor changes). >> >> Any comments? >> > > Hi Jiri, > > Can you please repost with indentations fixed? e.g.: Yap, I hope most of them (omg so much :( ) catch. > > + while (!t.isDestoyed()){ > + Thread.sleep(100); > + } > > > There is no space before the { when there should be. See guidelines here: > http://icedtea.classpath.org/wiki/IcedTea-Web#Code_style > > Also, changelog has spacing issues -- there should be no spaces before any of > the words on a new line, only a single tab e.g > > Fixing issue when process was not launched at all and when was killed but > left behind living/hanging, fixing mime-types > > should be: > > Fixing issue when process was not launched at all and when was killed but > left behind living/hanging, fixing mime-types > > > i.e. only a tab before "left", not a tab and space. > > Cheers, > Deepak > >> Thanx! >> J. > >> diff -r 89609d0a4e1c ChangeLog >> --- a/ChangeLog Mon Mar 19 14:37:03 2012 -0400 >> +++ b/ChangeLog Wed Mar 21 15:15:48 2012 +0100 >> @@ -1,3 +1,20 @@ >> +2012-03-21 Jiri Vanek >> + >> + Fixing issue when process was not launched at all and when was killed but >> + left behind living/hanging, fixing mime-types >> + * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: >> + (getContentOfStream) this method overloaded with possibility to specify >> + encoding (I needed to set it to ASCII in one test) >> + (deadlyException) field introduced in ThreadedProcess to record exception >> + caused by impassibility of launching the process. And so process have >> + been null without any sign why. >> + (TinyHttpdImpl) now correctly returns known mime types >> + (ProcessAssasin) can now skip or smoothly (and finally correctly) >> + destroy its process, and all his logging messages were done null-proof >> + (as deadlyException now allows) >> + Asynchronous (ContentReader) have been silenced when complaining about >> + closed streams by Assassin. >> + >> 2012-03-19 Danesh Dadachanji >> >> Fix failing unit test missing title/vendor tags in the JNLP stream. >> diff -r 89609d0a4e1c tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java >> --- a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Mon Mar 19 14:37:03 2012 -0400 >> +++ b/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Wed Mar 21 15:15:48 2012 +0100 >> @@ -254,7 +254,7 @@ >> >> @Test >> public void testsProcessResultFiltering() throws Exception { >> - ProcessResult pn = new ProcessResult(null, null, null, true, 0); >> + ProcessResult pn = new ProcessResult(null, null, null, true, 0,null); >> Assert.assertNull(pn.notFilteredStdout); >> Assert.assertNull(pn.stdout); >> Assert.assertNull(pn.stderr); >> @@ -273,12 +273,12 @@ >> "test stage 1\n" >> + "test stage 2\n" >> + "test stage 3\n"; >> - ProcessResult p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0); >> + ProcessResult p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0,null); >> Assert.assertEquals(p2.notFilteredStdout, fakeOut2); >> Assert.assertEquals(p2.stdout, filteredOut2); >> Assert.assertEquals(p2.stderr, fakeOut2); >> fakeOut2+="\n"; >> - p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0); >> + p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0,null); >> Assert.assertEquals(p2.notFilteredStdout, fakeOut2); >> Assert.assertEquals(p2.stdout, filteredOut2); >> Assert.assertEquals(p2.stderr, fakeOut2); >> @@ -300,13 +300,13 @@ >> + "test stage 2\n" >> + "test stage 3\n" >> + "test ends"; >> - ProcessResult p = new ProcessResult(fakeOut, fakeOut, null, true, 0); >> + ProcessResult p = new ProcessResult(fakeOut, fakeOut, null, true, 0,null); >> Assert.assertEquals(p.notFilteredStdout, fakeOut); >> Assert.assertEquals(p.stdout, filteredOut); >> Assert.assertEquals(p.stderr, fakeOut); >> fakeOut+="\n"; >> filteredOut+="\n"; >> - p = new ProcessResult(fakeOut, fakeOut, null, true, 0); >> + p = new ProcessResult(fakeOut, fakeOut, null, true, 0,null); >> Assert.assertEquals(p.notFilteredStdout, fakeOut); >> Assert.assertEquals(p.stdout, filteredOut); >> Assert.assertEquals(p.stderr, fakeOut); >> @@ -473,9 +473,9 @@ >> * @return stream as string >> * @throws IOException if connection cant be established or resource do not exists >> */ >> - public static String getContentOfStream(InputStream is) throws IOException { >> + public static String getContentOfStream(InputStream is,String encoding) throws IOException { >> try { >> - BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); >> + BufferedReader br = new BufferedReader(new InputStreamReader(is, encoding)); >> StringBuilder sb = new StringBuilder(); >> while (true) { >> String s = br.readLine(); >> @@ -492,6 +492,18 @@ >> >> } >> >> + /** >> + * utility method which can read from any stream as one long String >> + * >> + * @param input stream >> + * @return stream as string >> + * @throws IOException if connection cant be established or resource do not exists >> + */ >> + public static String getContentOfStream(InputStream is) throws IOException { >> + return getContentOfStream(is,"UTF-8"); >> + >> + } >> + >> /** >> * utility method which can read bytes of resource from any url >> * >> @@ -703,9 +715,13 @@ >> ProcessAssasin pa = new ProcessAssasin(t, PROCESS_TIMEOUT); >> pa.start(); >> t.start(); >> - while (t.getP() == null) { >> + while (t.getP() == null&& t.deadlyException==null) { >> Thread.sleep(100); >> } >> + if (t.deadlyException!=null){ >> + pa.setCanRun(false); >> + return new ProcessResult("", "", null, true, Integer.MIN_VALUE,t.deadlyException); >> + } >> ContentReader crs = new ContentReader(t.getP().getInputStream(),stdoutl); >> ContentReader cre = new ContentReader(t.getP().getErrorStream(),stderrl); >> >> @@ -719,10 +735,14 @@ >> while (t.isRunning()) { >> Thread.sleep(100); >> } >> + >> + while (!t.isDestoyed()){ >> + Thread.sleep(100); >> + } >> pa.setCanRun(false); >> // System.out.println(t.getP().exitValue()); when process is killed, this throws exception >> >> - return new ProcessResult(crs.getContent(), cre.getContent(), t.getP(), pa.wasTerminated(), t.getExitCode()); >> + return new ProcessResult(crs.getContent(), cre.getContent(), t.getP(), pa.wasTerminated(), t.getExitCode(),null); >> } >> >> /** >> @@ -737,6 +757,22 @@ >> Integer exitCode; >> Boolean running; >> File dir; >> + Throwable deadlyException=null; >> + /* >> + * before removing this "useless" variable >> + * check DeadLockTestTest.testDeadLockTestTerminated2 >> + */ >> + private boolean destoyed=false; >> + >> + public boolean isDestoyed() { >> + return destoyed; >> + } >> + >> + public void setDestoyed(boolean destoyed) { >> + this.destoyed = destoyed; >> + } >> + >> + >> >> public Boolean isRunning() { >> return running; >> @@ -785,13 +821,21 @@ >> }else{ >> p = r.exec(args.toArray(new String[0]),new String[0], dir); >> } >> + try{ >> exitCode = p.waitFor(); >> Thread.sleep(500);//this is giving to fastly done proecesses's e/o readers time to read all. I would like to know better solution :-/ >> - } catch (Exception ex) { >> + }finally{ >> + destoyed=true; >> + } >> + } catch (Exception ex) { >> if (ex instanceof InterruptedException) { >> //add to the set of terminated threadedproceses >> + deadlyException=ex; >> terminated.add(this); >> } else { >> + //happens when nonexisting process is launched, is causing p null! >> + terminated.add(this); >> + deadlyException=ex; >> throw new RuntimeException(ex); >> } >> } finally { >> @@ -937,8 +981,16 @@ >> byte[] b = new byte[l]; >> FileInputStream f = new FileInputStream(pp); >> f.read(b); >> + String content=""; >> + if (p.toLowerCase().endsWith(".jnlp")){ >> + content="Content-Type: application/x-java-jnlp-file\n"; >> + }else if (p.toLowerCase().endsWith(".html")){ >> + content="Content-Type: text/html\n"; >> + }else if (p.toLowerCase().endsWith(".jar")){ >> + content="Content-Type: application/x-jar\n"; >> + } >> o.writeBytes("HTTP/1.0 200 OK\nConten" >> - + "t-Length:" + l + "\n\n"); >> + + "t-Length:" + l +"\n"+content+"\n"); >> if (op.startsWith(XSX)){ >> byte[][] bb=ServerAccess.splitArray(b,10); >> for (int j = 0; j< bb.length; j++) { >> @@ -1061,6 +1113,13 @@ >> //false == is disabled:( >> private boolean canRun = true; >> private boolean wasTerminated = false; >> + /** >> + * if this is true, then process is not destroyed after is timeouted run, but just left to its own destiny. >> + * Its stdout/err is no longer recorded, and it is leaking system resources until it dies by itslef >> + * The contorl is returned to main thread with all informations recorded untill now. >> + * You will be able to listen to std out from listeners still >> + */ >> + private boolean skipInstedOfDesroy=false; >> >> /** >> * >> @@ -1074,9 +1133,25 @@ >> >> } >> >> + public ProcessAssasin(ThreadedProcess p, long timeout,boolean skipInstedOfDesroy) { >> + this.p = (p); >> + this.timeout = timeout; >> + this.skipInstedOfDesroy=skipInstedOfDesroy; >> + >> + >> + } >> + >> public void setCanRun(boolean canRun) { >> this.canRun = canRun; >> - System.err.println("Stopping assasin for" + p.toString() + " " + p.getP().toString() + " " + p.getCommandLine() + ": "); >> + if (p != null) { >> + if (p.getP() != null) { >> + System.err.println("Stopping assasin for" + p.toString() + " " + p.getP().toString() + " " + p.getCommandLine() + ": "); >> + } else { >> + System.err.println("Stopping assasin for" + p.toString() + " " + p.getCommandLine() + ": "); >> + } >> + }else{ >> + System.err.println("Stopping assasin for null job: "); >> + } >> System.err.flush(); >> } >> >> @@ -1088,6 +1163,16 @@ >> return wasTerminated; >> } >> >> + public void setSkipInstedOfDesroy(boolean skipInstedOfDesroy) { >> + this.skipInstedOfDesroy = skipInstedOfDesroy; >> + } >> + >> + public boolean isSkipInstedOfDesroy() { >> + return skipInstedOfDesroy; >> + } >> + >> + >> + >> @Override >> public void run() { >> >> @@ -1099,17 +1184,45 @@ >> //System.out.println(time - startTime); >> //System.out.println((time - startTime)> timeout); >> if ((time - startTime)> timeout) { >> - System.err.println("Timeouted " + p.toString() + " " + p.getP().toString() + " .. killing " + p.getCommandLine() + ": "); >> + try{ >> + if (p!=null){ >> + if (p.getP()!=null){System.err.println("Timeouted " + >> + p.toString() + " " + >> + p.getP().toString() + >> + " .. killing " + >> + p.getCommandLine() + ": "); >> + }else{System.err.println("Timeouted " + >> + p.toString() + " " + >> + "null .. killing " + >> + p.getCommandLine() + ": "); >> + } >> System.err.flush(); >> wasTerminated = true; >> p.interrupt(); >> while (!terminated.contains(p)) { >> Thread.sleep(100); >> } >> - //p.p.destroy()?? >> - System.err.println("Timeouted " + p.toString() + " " + p.getP().toString() + " .. killed " + p.getCommandLine()); >> + if (p.getP()!=null){ >> + try{ >> + if (!skipInstedOfDesroy) p.getP().destroy(); >> + }catch(Throwable ex){ >> + if (p.deadlyException==null) p.deadlyException=ex; >> + ex.printStackTrace(); >> + } >> + } >> + if (p.getP()!=null){ >> + System.err.println("Timeouted " + p.toString() + " " + p.getP().toString() + " .. killed " + p.getCommandLine()); >> + }else{ >> + System.err.println("Timeouted " + p.toString() + " null .. killed " + p.getCommandLine()); >> + } >> System.err.flush(); >> + }else{ >> + System.err.println("Timeouted null job"); >> + } >> break; >> + }finally{ >> + p.setDestoyed(true); >> + } >> >> >> } >> @@ -1118,7 +1231,15 @@ >> ex.printStackTrace(); >> } >> } >> - System.err.println("assasin for" + p.toString() + " " + p.getP().toString() + " .. done " + p.getCommandLine() + " termination " + wasTerminated); >> + if (p!=null){ >> + if (p.getP()!=null){ >> + System.err.println("assasin for" + p.toString() + " " + p.getP().toString() + " .. done " + p.getCommandLine() + " termination " + wasTerminated); >> + }else{ >> + System.err.println("assasin for" + p.toString() + " null .. done " + p.getCommandLine() + " termination " + wasTerminated); >> + } >> + }else{ >> + System.err.println("assasin for non exisitng job termination " + wasTerminated); >> + } >> System.err.flush(); >> } >> } >> @@ -1134,8 +1255,12 @@ >> public final Process process; >> public final Integer returnValue; >> public final boolean wasTerminated; >> + /* >> + * possible exception which caused Process not to be launched >> + */ >> + public final Throwable deadlyException; >> >> - public ProcessResult(String stdout, String stderr, Process process, boolean wasTerminated, Integer r) { >> + public ProcessResult(String stdout, String stderr, Process process, boolean wasTerminated, Integer r,Throwable deadlyException) { >> this.notFilteredStdout = stdout; >> if (stdout == null) { >> this.stdout = null; >> @@ -1146,6 +1271,7 @@ >> this.process = process; >> this.wasTerminated = wasTerminated; >> this.returnValue = r; >> + this.deadlyException=deadlyException; >> } >> } >> >> @@ -1219,8 +1345,10 @@ >> >> } >> //do not want to bother output with terminations >> + //mostly compaling when assasin kill the process about StreamClosed >> } catch (Exception ex) { >> - ex.printStackTrace(); >> + // ex.printStackTrace(); >> + // System.err.flush(); >> } finally { >> try { >> is.close(); > -------------- next part -------------- A non-text attachment was scrubbed... Name: fixesToJnlpReproducersEngine2.diff Type: text/x-patch Size: 15416 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120322/92105fe9/fixesToJnlpReproducersEngine2.diff From ptisnovs at icedtea.classpath.org Fri Mar 23 03:04:18 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 23 Mar 2012 10:04:18 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/ClippingPathByRectang... Message-ID: changeset 39e27deb5d4e in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=39e27deb5d4e author: Pavel Tisnovsky date: Fri Mar 23 11:06:45 2012 +0100 * src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java: Fixed name of one test. * src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java: Added new tests to this test suite. diffstat: ChangeLog | 7 + src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java | 2 +- src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java | 366 ++++++++++- 3 files changed, 344 insertions(+), 31 deletions(-) diffs (480 lines): diff -r 9d033e2f3f68 -r 39e27deb5d4e ChangeLog --- a/ChangeLog Thu Mar 22 10:41:44 2012 +0100 +++ b/ChangeLog Fri Mar 23 11:06:45 2012 +0100 @@ -1,3 +1,10 @@ +2012-03-23 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java: + Fixed name of one test. + * src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java: + Added new tests to this test suite. + 2012-03-22 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java: diff -r 9d033e2f3f68 -r 39e27deb5d4e src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java --- a/src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java Thu Mar 22 10:41:44 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java Fri Mar 23 11:06:45 2012 +0100 @@ -692,7 +692,7 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testQuadraticPathByRectangleAreaDashedStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipQuadraticPathByRectangleAreaDashedStrokePaint(TestImage image, Graphics2D graphics2d) { // render clip rectangle CommonClippingOperations.renderClipRectangle(image, graphics2d); diff -r 9d033e2f3f68 -r 39e27deb5d4e src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java --- a/src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java Thu Mar 22 10:41:44 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingPathByRectangleShape.java Fri Mar 23 11:06:45 2012 +0100 @@ -417,7 +417,7 @@ // set stroke width CommonRenderingStyles.setStrokeThickWidth(graphics2d); // set clip region and draw the path - drawCrossedClosedPathClippedByRectangleShape(image, graphics2d); + drawLinePathClippedByRectangleShape(image, graphics2d); // test result return TestResult.PASSED; } @@ -537,7 +537,7 @@ // set stroke width CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); // set clip region and draw the path - drawCrossedClosedPathClippedByRectangleShape(image, graphics2d); + drawLinePathClippedByRectangleShape(image, graphics2d); // test result return TestResult.PASSED; } @@ -661,6 +661,50 @@ } /** + * Check if cubic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with default stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByRectangleShapeDashedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with default stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipQuadraticPathByRectangleShapeDashedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if closed path could be clipped by a rectangle shape. Path is * rendered using stroke paint with default stroke width. * @@ -683,6 +727,28 @@ } /** + * Check if closed crossed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with default stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByRectangleShapeDashedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCrossedClosedPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if line path could be clipped by a rectangle shape. Path is * rendered using stroke paint with thick stroke width. * @@ -707,6 +773,54 @@ } /** + * Check if quadratic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipQuadraticPathByRectangleShapeDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByRectangleShapeDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if closed path could be clipped by a rectangle shape. Path is * rendered using stroke paint with thick stroke width. * @@ -731,6 +845,30 @@ } /** + * Check if crossed closed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByRectangleShapeDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCrossedClosedPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if line path could be clipped by a rectangle shape. Path is * rendered using stroke paint with thick stroke width. * @@ -747,7 +885,7 @@ // set stroke width CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); // set dashed pattern - CommonRenderingStyles.setDashedStrokePatternForExtraThickPaths(graphics2d); + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path drawLinePathClippedByRectangleShape(image, graphics2d); // test result @@ -755,6 +893,54 @@ } /** + * Check if quadratic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipQuadraticPathByRectangleShapeDashedExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByRectangleShapeDashedExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if closed path could be clipped by a rectangle shape. Path is * rendered using stroke paint with thick stroke width. * @@ -771,7 +957,7 @@ // set stroke width CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); // set dashed pattern - CommonRenderingStyles.setDashedStrokePatternForExtraThickPaths(graphics2d); + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path drawClosedPathClippedByRectangleShape(image, graphics2d); // test result @@ -779,8 +965,152 @@ } /** + * Check if crossed closed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByRectangleShapeDashedExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCrossedClosedPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if line path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipLinePathByRectangleShapeDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawLinePathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipQuadraticPathByRectangleShapeDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByRectangleShapeDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if closed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipClosedPathByRectangleShapeDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawClosedPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if crossed closed path could be clipped by a rectangle shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByRectangleShapeDashedZeroThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render clip rectangle + CommonClippingOperations.renderClipRectangle(image, graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // set clip region and draw the path + drawCrossedClosedPathClippedByRectangleShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if line path could be clipped by a rectangle shape. Path is rendered - * using stroke paint with thick stroke width and using round cap style. + * using dotted stroke paint with normal stroke width and using round cap style. * * @param image * work image @@ -793,7 +1123,7 @@ // render clip rectangle CommonClippingOperations.renderClipRectangle(image, graphics2d); // set stroke width - CommonRenderingStyles.setStrokeThickWidth(graphics2d, BasicStroke.CAP_ROUND); + //CommonRenderingStyles.setStrokeThickWidth(graphics2d, BasicStroke.CAP_ROUND); // set dashed pattern CommonRenderingStyles.setDashedStrokePattern(graphics2d, new float[] {1,20}); // set clip region and draw the path @@ -803,30 +1133,6 @@ } /** - * Check if closed path could be clipped by a rectangle shape. Path is rendered - * using stroke paint with thick stroke width and using round cap style. - * - * @param image - * work image - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testClipClosedPathByRectangleShapeDottedStrokePaint(TestImage image, Graphics2D graphics2d) - { - // render clip rectangle - CommonClippingOperations.renderClipRectangle(image, graphics2d); - // set stroke width - CommonRenderingStyles.setStrokeThickWidth(graphics2d, BasicStroke.CAP_ROUND); - // set dashed pattern - CommonRenderingStyles.setDashedStrokePattern(graphics2d, new float[] {1,20}); - // set clip region and draw the path - drawClosedPathClippedByRectangleShape(image, graphics2d); - // test result - return TestResult.PASSED; - } - - /** * Entry point to the test suite. * * @param args From andrew at icedtea.classpath.org Fri Mar 23 03:34:52 2012 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 23 Mar 2012 10:34:52 +0000 Subject: /hg/icedtea7: Regenerate conditional patches. Message-ID: changeset 3aba3623d5af in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=3aba3623d5af author: Andrew John Hughes date: Fri Mar 23 10:34:40 2012 +0000 Regenerate conditional patches. 2012-03-23 Andrew John Hughes * patches/boot/pr39408.patch, * patches/cacao/launcher.patch: Regenerated. diffstat: ChangeLog | 6 ++++++ patches/boot/pr39408.patch | 12 ++++++------ patches/cacao/launcher.patch | 20 +++++++++++--------- 3 files changed, 23 insertions(+), 15 deletions(-) diffs (90 lines): diff -r 5e302f2e45eb -r 3aba3623d5af ChangeLog --- a/ChangeLog Thu Mar 22 15:52:54 2012 +0000 +++ b/ChangeLog Fri Mar 23 10:34:40 2012 +0000 @@ -1,3 +1,9 @@ +2012-03-23 Andrew John Hughes + + * patches/boot/pr39408.patch, + * patches/cacao/launcher.patch: + Regenerated. + 2012-03-22 Andrew John Hughes * patches/systemtap-alloc-size-workaround.patch: diff -r 5e302f2e45eb -r 3aba3623d5af patches/boot/pr39408.patch --- a/patches/boot/pr39408.patch Thu Mar 22 15:52:54 2012 +0000 +++ b/patches/boot/pr39408.patch Fri Mar 23 10:34:40 2012 +0000 @@ -1,9 +1,9 @@ diff -Nru openjdk.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c openjdk/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c ---- openjdk-boot.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2009-03-18 16:25:52.000000000 +0000 -+++ openjdk-boot/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2009-03-18 16:27:03.000000000 +0000 -@@ -36,6 +36,14 @@ - #include "nio.h" - #include "nio_util.h" +--- openjdk-boot.orig/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2012-03-23 10:31:52.798787906 +0000 +@@ -55,6 +55,14 @@ + static int preCloseFD = -1; /* File descriptor to which we dup other fd's + before closing them for real */ +#undef sun_nio_ch_FileDispatcher_NO_LOCK +#define sun_nio_ch_FileDispatcher_NO_LOCK -1L @@ -14,5 +14,5 @@ +#undef sun_nio_ch_FileDispatcher_INTERRUPTED +#define sun_nio_ch_FileDispatcher_INTERRUPTED 2L - static int preCloseFD = -1; /* File descriptor to which we dup other fd's - before closing them for real */ + JNIEXPORT void JNICALL + Java_sun_nio_ch_FileDispatcherImpl_init(JNIEnv *env, jclass cl) diff -r 5e302f2e45eb -r 3aba3623d5af patches/cacao/launcher.patch --- a/patches/cacao/launcher.patch Thu Mar 22 15:52:54 2012 +0000 +++ b/patches/cacao/launcher.patch Fri Mar 23 10:34:40 2012 +0000 @@ -1,7 +1,8 @@ ---- openjdk/jdk/make/docs/Makefile.orig 2010-08-27 20:01:53.000000000 +0200 -+++ openjdk/jdk/make/docs/Makefile 2010-09-07 12:56:00.309691118 +0200 -@@ -70,7 +70,7 @@ - ifeq ($(ARCH_DATA_MODEL),64) +diff -Nru openjdk.orig/jdk/make/docs/Makefile openjdk/jdk/make/docs/Makefile +--- openjdk.orig/jdk/make/docs/Makefile 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk/jdk/make/docs/Makefile 2012-03-23 00:46:49.461847958 +0000 +@@ -73,7 +73,7 @@ + else ifeq ($(ARCH),universal) MAX_VM_MEMORY = 1024 else - MAX_VM_MEMORY = 512 @@ -9,18 +10,19 @@ endif # List of all possible directories for javadoc to look for sources ---- openjdk/jdk/src/share/bin/java.c.orig 2010-09-07 05:24:49.307192201 +0200 -+++ openjdk/jdk/src/share/bin/java.c 2010-09-07 12:56:00.309691118 +0200 -@@ -174,6 +174,8 @@ - InvocationFunctions ifn; - } JavaMainArgs; +diff -Nru openjdk.orig/jdk/src/share/bin/java.c openjdk/jdk/src/share/bin/java.c +--- openjdk.orig/jdk/src/share/bin/java.c 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk/jdk/src/share/bin/java.c 2012-03-23 00:46:49.461847958 +0000 +@@ -164,6 +164,8 @@ + static jlong maxHeapSize = 0; /* max heap size */ + static jlong initialHeapSize = 0; /* inital heap size */ +#define JNI_VERSION_CACAO 0xcaca0000 + /* * Entry point. */ -@@ -1923,6 +1925,8 @@ +@@ -1848,6 +1850,8 @@ { /* Create a new thread to create JVM and invoke main method */ JavaMainArgs args; @@ -29,7 +31,7 @@ int rslt; args.argc = argc; -@@ -1931,7 +1935,17 @@ +@@ -1856,7 +1860,17 @@ args.what = what; args.ifn = *ifn; From ptisnovs at icedtea.classpath.org Fri Mar 23 03:53:28 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 23 Mar 2012 10:53:28 +0000 Subject: /hg/MauveTestCoverage: * src/ClassInfo.java: Message-ID: changeset eec2474fdaaa in /hg/MauveTestCoverage details: http://icedtea.classpath.org/hg/MauveTestCoverage?cmd=changeset;node=eec2474fdaaa author: Pavel Tisnovsky date: Fri Mar 23 11:55:40 2012 +0100 * src/ClassInfo.java: Added new helper class. * src/FileUtils.java: Added new method for reading contents of text file. Refactored. * src/ReportGenerator.java: New functionality: methods coverage are printed in package list (previously only class coverage were printed). Refactored. * templates/all_packages_template.html: * templates/index.html: Changed width of left column. * templates/style.css: Tables have black borders (they are more visible). * Makefile: Updated according to previous changes. diffstat: ChangeLog | 20 +++ Makefile | 3 +- src/ClassInfo.java | 176 +++++++++++++++++++++++++++++++++++ src/FileUtils.java | 25 ++++- src/ReportGenerator.java | 169 ++++++++++++++------------------ templates/all_packages_template.html | 3 +- templates/index.html | 2 +- templates/style.css | 8 +- 8 files changed, 302 insertions(+), 104 deletions(-) diffs (truncated from 670 to 500 lines): diff -r 8c9c61f17fd1 -r eec2474fdaaa ChangeLog --- a/ChangeLog Fri Mar 16 11:24:48 2012 +0100 +++ b/ChangeLog Fri Mar 23 11:55:40 2012 +0100 @@ -1,3 +1,23 @@ +2012-03-23 Pavel Tisnovsky + + * src/ClassInfo.java: + Added new helper class. + * src/FileUtils.java: + Added new method for reading contents of text file. + Refactored. + * src/ReportGenerator.java: + New functionality: methods coverage are printed + in package list (previously only class coverage + were printed). + Refactored. + * templates/all_packages_template.html: + * templates/index.html: + Changed width of left column. + * templates/style.css: + Tables have black borders (they are more visible). + * Makefile: + Updated according to previous changes. + 2012-03-16 Pavel Tisnovsky * src/ReportGenerator.java: diff -r 8c9c61f17fd1 -r eec2474fdaaa Makefile --- a/Makefile Fri Mar 16 11:24:48 2012 +0100 +++ b/Makefile Fri Mar 23 11:55:40 2012 +0100 @@ -74,7 +74,8 @@ $(CLASSDIR)/PrintPublicMethods.class \ $(CLASSDIR)/PrintTestCoverage.class \ $(CLASSDIR)/ReportGenerator.class \ - $(CLASSDIR)/FileUtils.class + $(CLASSDIR)/FileUtils.class \ + $(CLASSDIR)/ClassInfo.class api_class_list: $(REPORTDIR) $(REPORTDIR)/$(ALL_CLASS_LIST) diff -r 8c9c61f17fd1 -r eec2474fdaaa src/ClassInfo.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ClassInfo.java Fri Mar 23 11:55:40 2012 +0100 @@ -0,0 +1,176 @@ +/* + Test coverage tool. + + Copyright (C) 2012 Red Hat + +This tool 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, or (at your option) +any later version. + +This tool 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 tool; 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. +*/ + +import java.io.File; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + + + +/** + * Instances of this class contain information about one tested class. + * There are three sets of strings stored for each class: set of methods + * contained in standard API, set of methods called from tests and the + * union of previous two sets. These information are used by test reporter. + * + * @author Pavel Tisnovsky + */ +public class ClassInfo +{ + /** + * Set of methods contained in standard API. + */ + private Set apiMethods; + + /** + * Set of methods called from tests. + */ + private Set testedMethods; + + /** + * Union of apiMethods and testedMethods. + */ + private Set allMethods; + + /** + * Constructor. It tries to read all required information + * for tested class. + * + * @param reportDirectory + * directory where all reports are stored + * @param className + * name of tested class + */ + public ClassInfo(String reportDirectory, String className) + { + // read methods described in standard API + this.apiMethods = readApiMethods(reportDirectory, className); + // read methods called from tests + this.testedMethods = readTestedMethods(reportDirectory, className); + // compute union of previous two sets + computeAllMethodsSet(); + } + + /** + * Compute union of allMethods and testedMethods sets. + */ + private void computeAllMethodsSet() + { + this.allMethods = new TreeSet(); + this.allMethods.addAll(this.apiMethods); + this.allMethods.addAll(this.testedMethods); + } + + /** + * Getter for a set apiMethods. + * + * @return the apiMethods attribute + */ + public Set getApiMethods() + { + return this.apiMethods; + } + + /** + * Getter for a set testedMethods. + * + * @return the testedMethods attribute + */ + public Set getTestedMethods() + { + return this.testedMethods; + } + + /** + * Getter for a set allMethods. + * + * @return the allMethods attribute + */ + public Set getAllMethods() + { + return this.allMethods; + } + + /** + * Read all methods for a given class which are covered by a standard API. + * + * @param reportDirectory + * directory where all reports are stored + * @param testedClass + * name of tested class + * @return set of all methods read from a file containing standard API + */ + private static Set readApiMethods(String reportDirectory, String testedClass) + { + File fileName = new File(reportDirectory, testedClass + "_api.txt"); + return readMethods(fileName); + } + + /** + * Read all methods for a given class which are called from tests. + * + * @param reportDirectory + * directory where all reports are stored + * @param testedClass + * name of tested class + * @return set of all methods read from a file containing called methods + */ + private static Set readTestedMethods(String reportDirectory, String testedClass) + { + File fileName = new File(reportDirectory, testedClass + "_test.txt"); + return readMethods(fileName); + } + + /** + * Read set of method names from a text file. No exception is thrown during + * reading. + * + * @param fileName + * file containing methods list + * @return set of method names + */ + private static Set readMethods(File fileName) + { + Set allMethods = new TreeSet(); + List methodList = FileUtils.readTextFile(fileName.getAbsolutePath(), false); + allMethods.addAll(methodList); + return allMethods; + } + +} diff -r 8c9c61f17fd1 -r eec2474fdaaa src/FileUtils.java --- a/src/FileUtils.java Fri Mar 16 11:24:48 2012 +0100 +++ b/src/FileUtils.java Fri Mar 23 11:55:40 2012 +0100 @@ -46,6 +46,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -76,6 +77,21 @@ */ static List readTextFile(String fileName) { + return readTextFile(fileName, true); + } + + /** + * Read content of given text file and return it as list of strings. No + * exception is thrown during reading. + * + * @param fileName + * name of file to be read + * @param printFileNotFoundException + * whether to print an exception when file is not found + * @return list of string containing content of text file + */ + static List readTextFile(String fileName, boolean printFileNotFoundException) + { BufferedReader reader = null; List out = new LinkedList(); try @@ -87,7 +103,12 @@ catch (FileNotFoundException e) { // might happen - empty list is returned in this case - e.printStackTrace(); + if (printFileNotFoundException) + { + // in some cases we don't want to see this exception + // (because some classes, for example, could not be tested at all) + e.printStackTrace(); + } } catch (IOException e) { @@ -215,7 +236,7 @@ * @throws IOException * thrown if an I/O error occurs */ - private static void readAllLinesFromTextFile(BufferedReader bufferedReader, List lines) throws IOException + private static void readAllLinesFromTextFile(BufferedReader bufferedReader, Collection lines) throws IOException { String line; // read lines from a text file diff -r 8c9c61f17fd1 -r eec2474fdaaa src/ReportGenerator.java --- a/src/ReportGenerator.java Fri Mar 16 11:24:48 2012 +0100 +++ b/src/ReportGenerator.java Fri Mar 23 11:55:40 2012 +0100 @@ -36,14 +36,10 @@ exception statement from your version. */ -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.TreeSet; @@ -58,11 +54,6 @@ public class ReportGenerator { /** - * Default charset used during all input/output operations. - */ - private static final String DEFAULT_CHARSET = "UTF-8"; - - /** * Location of internal or external URI to standard API JavaDoc */ private static final String DOC_BASE = "http://docs.oracle.com/javase/6/docs/api"; @@ -97,9 +88,10 @@ * set of tested classes * @param packageNames * set of package names + * @param classInfoMap */ private static void printPackageListToFile(String reportDirectory, Set allClasses, - Set testedClasses, Set packageNames) + Set testedClasses, Set packageNames, Map classInfoMap) { List template = FileUtils.readTextFile("templates/all_packages_template.html"); List out = new LinkedList(); @@ -109,7 +101,7 @@ // replace text in template where needed if ("${PACKAGE_LIST}".equals(templateLine)) { - addPackageList(allClasses, testedClasses, packageNames, out); + addPackageList(allClasses, testedClasses, packageNames, out, classInfoMap); } // normal line else @@ -132,9 +124,10 @@ * package for which the report is generated * @param testedClasses * set of tested classes + * @param classInfoMap */ private static void printReportForPackageToFile(String reportDirectory, String packageName, - Set testedClasses) + Set testedClasses, Map classInfoMap) { // read HTML template List template = FileUtils.readTextFile("templates/package_template.html"); @@ -146,7 +139,7 @@ // replace text in template where needed if ("${CLASS_LIST}".equals(templateLine)) { - addClassList(reportDirectory, packageName, testedClasses, out); + addClassList(reportDirectory, packageName, testedClasses, out, classInfoMap); } else if ("${PACKAGE_NAME}".equals(templateLine)) { @@ -173,9 +166,10 @@ * all checked package names * @param testedClasses * set of tested classes + * @param classInfoMap */ private static void printReportForAllClassesInOneFile(String reportDirectory, Set usedPackageNames, - Set testedClasses) + Set testedClasses, Map classInfoMap) { List template = FileUtils.readTextFile("templates/all_classes_template.html"); List out = new LinkedList(); @@ -185,7 +179,7 @@ // replace text in template where needed if ("${PACKAGE_AND_CLASS_LIST}".equals(templateLine)) { - addPackageAndClassList(reportDirectory, usedPackageNames, testedClasses, out); + addPackageAndClassList(reportDirectory, usedPackageNames, testedClasses, out, classInfoMap); } // normal line else @@ -214,25 +208,52 @@ */ @SuppressWarnings("boxing") private static void addPackageList(Set allClasses, Set testedClasses, Set packageNames, - List out) + List out, Map classInfoMap) { // iterate through all package names for (String packageName : packageNames) { // compute number of all classes in a package final int allClassesCnt = numberOfClassesInPackage(packageName, allClasses); - // compute number of classes coveraged by tests + // compute number of classes covered by tests final int testedClassesCnt = numberOfClassesInPackage(packageName, testedClasses); // -> in percent - final float percentage = 100.0f*testedClassesCnt / allClassesCnt; + final float classPercentage = allClassesCnt == 0 ? 0.0f : 100.0f * testedClassesCnt / allClassesCnt; + // table row background color is based on percentual test coverage ration + String backgroundColor1 = generateTableRowBackground(classPercentage); + int allMethodsCnt=0; + int coveragedMethodsCnt=0; + for (String className : allClasses) + { + // count only classes in given package + if (className.startsWith(packageName)) + { + ClassInfo classInfo = classInfoMap.get(className); + allMethodsCnt += classInfo.getAllMethods().size(); + coveragedMethodsCnt += classInfo.getTestedMethods().size(); + } + } + float methodsPercentage = allMethodsCnt == 0 ? 0.0f : 100.0f * coveragedMethodsCnt / allMethodsCnt; // table row background color is based on percentual test coverage ration - String backgroundColor = generateTableRowBackground(percentage); + String backgroundColor2 = generateTableRowBackground(methodsPercentage); + + // format output string String doc = DOC_BASE + "/" + packageName.replace('.', '/') + "/package-summary.html"; - // format output string - String str = String.format("%s%d%d%5.1f %%ext", - backgroundColor, packageName, packageName, - allClassesCnt, testedClassesCnt, percentage, doc); + + String str = String.format( + "%s" + + "%d" + + "%d" + + "%5.1f %%" + + "%d" + + "%d" + + "%5.1f %%" + + "ext", + packageName, packageName, + backgroundColor1, allClassesCnt, backgroundColor1, testedClassesCnt, backgroundColor1, classPercentage, + backgroundColor2, allMethodsCnt, backgroundColor2, coveragedMethodsCnt, backgroundColor2, methodsPercentage, + doc); out.add(str); } } @@ -270,7 +291,7 @@ for (String className : classes) { // count only classes in given package - if (className.startsWith(packageName)) + if (className.substring(0, className.lastIndexOf('.')).equals(packageName)) { cnt++; } @@ -288,8 +309,9 @@ * set of tested classes * @param out * list of string which represents generated report + * @param classInfoMap */ - private static void addClassList(String reportDirectory, String packageName, Set testedClasses, List out) + private static void addClassList(String reportDirectory, String packageName, Set testedClasses, List out, Map classInfoMap) { // iterate through all class names for (String className : testedClasses) @@ -298,7 +320,7 @@ if (className.startsWith(packageName)) { //out.add("" + className + "
"); - out.add(addOneRowToResultsTable(reportDirectory, className)); + out.add(addOneRowToResultsTable(reportDirectory, className, classInfoMap)); } } } @@ -315,8 +337,9 @@ * set of tested classes * @param out * list of string which represents generated report + * @param classInfoMap */ - private static void addPackageAndClassList(String reportDirectory, Set usedPackageNames, Set testedClasses, List out) + private static void addPackageAndClassList(String reportDirectory, Set usedPackageNames, Set testedClasses, List out, Map classInfoMap) { // iterate through all class names for (String packageName : usedPackageNames) @@ -329,7 +352,7 @@ { if (className.startsWith(packageName)) { - out.add(addOneRowToResultsTable(reportDirectory, className)); + out.add(addOneRowToResultsTable(reportDirectory, className, classInfoMap)); } } out.add(""); @@ -344,10 +367,10 @@ * @param className * name of tested class */ - private static String addOneRowToResultsTable(String reportDirectory, String className) + private static String addOneRowToResultsTable(String reportDirectory, String className, Map classInfoMap) { - Set apiMethods = readApiMethods(reportDirectory, className); - Set testedMethods = readTestedMethods(reportDirectory, className); + Set apiMethods = classInfoMap.get(className).getApiMethods(); + Set testedMethods = classInfoMap.get(className).getTestedMethods(); // compute number of all methods in a class final int allMethodsCnt = apiMethods.size(); // compute number of methods covered by tests @@ -515,81 +538,31 @@ * packages for which the report is generated * @param testedClasses * set of tested classes + * @param classInfoMap From oehrstroem at gmail.com Fri Mar 23 04:50:52 2012 From: oehrstroem at gmail.com (=?ISO-8859-1?Q?Fredrik_=D6hrstr=F6m?=) Date: Fri, 23 Mar 2012 12:50:52 +0100 Subject: Building Zero and/or Shark In-Reply-To: <4F56294D.1020908@redhat.com> References: <4F5627D2.6030209@oracle.com> <4F56294D.1020908@redhat.com> Message-ID: Since you are working on the zero build, I would like to make a small comment. Currently zero is implemented as an architecture in the hotspot makefiles/sources. I.e. zero is on par with i386,x64,sparc.... This is unfortunate since the zero build shares the server jvm variant directory structure and it will definitely confuse the cross compiling setup attempts in configure. And of course, even if zero does not care about which architecture it runs on, it eventually has to run (be compiled) for some architecture. I would like the following to be possible: ./configure --with-jvm-variants=sever,zero && make which would create a java launcher that respondes to: java -server -version as well as java -zero -version But this is practically impossible as long as zero is an architecture. I know that it is probably a lot of work to rewrite the hotspot makefiles to do zero as just one of several jvm_variants, (client,server,kernel etc) But I definitely think it would be worthwhile! //Fredrik 2012/3/6 Andrew Haley : > On 03/06/2012 03:05 PM, Magnus Ihse Bursie wrote: > >> The build-infra team (we who are working on creating a new, faster build system >> -- see e.g. >> http://mail.openjdk.java.net/pipermail/build-dev/2011-May/004765.html) has >> recently tried building Zero and Shark on a recent JDK8, both directly on >> OpenJDK and using IcedTea. >> >> This has not been successful, resulting in a variety of errors. >> >> Does anybody know if Zero and/or Shark is "supposed to" be currently buildable >> in JDK8? Has anyone else build it successfully? > > No. ?We're working on it. ?The biggest problem is invokedynamic support, > which we're having trouble getting to work on Zero. ?As I understand it, > ricochet frames are going to go away with a future release, which will > make life much easier for us. > >> We'd like to make sure building Zero and Shark is kept viable when we modify the >> build system; however if the sources does not compile then it's hard to check >> that we don't break the build system, and unfortunately we don't have the >> resources to fix compilation problems in Zero and Shark. > > Understood. ?Once we have all the fixes in, we'll get back to you. > > Andrew. > From aph at redhat.com Fri Mar 23 05:14:45 2012 From: aph at redhat.com (Andrew Haley) Date: Fri, 23 Mar 2012 12:14:45 +0000 Subject: Building Zero and/or Shark In-Reply-To: References: <4F5627D2.6030209@oracle.com> <4F56294D.1020908@redhat.com> Message-ID: <4F6C6935.5080804@redhat.com> On 03/23/2012 11:50 AM, Fredrik ?hrstr?m wrote: > Since you are working on the zero build, I would like to make a small comment. > Currently zero is implemented as an architecture in the hotspot > makefiles/sources. > I.e. zero is on par with i386,x64,sparc.... > > This is unfortunate since the zero build shares the server jvm variant > directory structure > and it will definitely confuse the cross compiling setup attempts in configure. > And of course, even if zero does not care about which architecture it runs on, > it eventually has to run (be compiled) for some architecture. > > I would like the following to be possible: > ./configure --with-jvm-variants=sever,zero && make > which would create a java launcher that respondes to: > java -server -version > as well as > java -zero -version > > But this is practically impossible as long as zero is an architecture. > > I know that it is probably a lot of work to rewrite the hotspot makefiles > to do zero as just one of several jvm_variants, (client,server,kernel etc) > But I definitely think it would be worthwhile! Indeed, it probably would be. Andrew. From bugzilla-daemon at icedtea.classpath.org Fri Mar 23 15:43:30 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 23 Mar 2012 22:43:30 +0000 Subject: [Bug 898] signed applications with big jnlp-file doesn't start (webstart affect like "frozen") In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=898 --- Comment #1 from Omair Majid 2012-03-23 22:43:30 UTC --- Fixed in HEAD: http://icedtea.classpath.org/hg/icedtea-web/rev/14284e2041de -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From thomas at m3y3r.de Fri Mar 23 15:55:58 2012 From: thomas at m3y3r.de (Thomas Meyer) Date: Fri, 23 Mar 2012 23:55:58 +0100 Subject: [RFC] Spelling fixed Message-ID: <1332543358.1397.6.camel@localhost.localdomain> # HG changeset patch # User thomas at m3y3r.de # Date 1332453344 -3600 # Node ID c630651c44ab4a2973dacbd99007ce527cca6ed4 # Parent 7222dd21241e62af4997d5f25539cce0a0ee31aa Spelling fixes. diff -r 7222dd21241e -r c630651c44ab tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java --- a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Thu Mar 22 22:48:18 2012 +0100 +++ b/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java Thu Mar 22 22:55:44 2012 +0100 @@ -67,16 +67,16 @@ /** * - * This class provides access to virtual server and stuff arround. - * It can find unoccupied port, start server, provides its singleton instantion, lunch paralel instantions, + * This class provides access to virtual server and stuff around. + * It can find unoccupied port, start server, provides its singleton instantiation, lunch parallel instantiations, * read location of installed (tested javaws) see javaws.build.bin java poperty, - * location of server www root on filesystem (see test.server.dir java property), + * location of server www root on file system (see test.server.dir java property), * stubs for lunching javaws and for locating resources and read resources. * * It can also execute processes with timeout (@see PROCESS_TIMEOUT) (used during lunching javaws) - * Some protected apis are exported because public clases in this package are put to be tested by makefile. + * Some protected apis are exported because public classes in this package are put to be tested by makefile. * - * There are inclued tescases which show some basic usages. + * There are included test cases which show some basic usages. * * */ @@ -84,11 +84,11 @@ public static final long NANO_TIME_DELIMITER=1000000l; /** - * java property which value containig path to default (makefile by) directory with deployed resources + * java property which value containing path to default (makefile by) directory with deployed resources */ public static final String TEST_SERVER_DIR = "test.server.dir"; /** - * java property which value containig path to installed (makefile by) javaws binary + * java property which value containing path to installed (makefile by) javaws binary */ public static final String JAVAWS_BUILD_BIN = "javaws.build.bin"; public static final String DEFAULT_LOCALHOST_NAME = "localhost"; @@ -106,7 +106,7 @@ */ public static int READ_TIMEOUT = 1000; /** - * timeout in ms to let process to finish, before assasin wil kill it. + * timeout in ms to let process to finish, before assassin will kill it. * This can be changed in runtime, but will affect all following tasks */ public static long PROCESS_TIMEOUT = 20 * 1000;//ms @@ -127,8 +127,8 @@ /** * utility method to find random free port * - * @return - foud random free port - * @throws IOException - if socket can't be openned or no free port exists + * @return - found random free port + * @throws IOException - if socket can't be opened or no free port exists */ public static int findFreePort() throws IOException { @@ -151,7 +151,7 @@ /** * - * @return cahed instance. If none, then creates new + * @return cached instance. If none, then creates new */ public static ServerLauncher getInstance() { if (server == null) { @@ -163,7 +163,7 @@ /** * * @return new not cached iserver instance on random port, - * usefull for testing application loading from different url then base + * useful for testing application loading from different url then base */ public static ServerLauncher getIndependentInstance() { String dir = (System.getProperty(TEST_SERVER_DIR)); @@ -173,7 +173,7 @@ /** * * @return new not cached iserver instance on random port upon custom www root directory, - * usefull for testing application loading from different url then base + * useful for testing application loading from different url then base */ public static ServerLauncher getIndependentInstance(String dir) { @@ -318,7 +318,7 @@ /** * - * @return port on which is runing cached server. If non singleton instance is runnig, new is created. + * @return port on which is running cached server. If non singleton instance is running, new is created. */ public int getPort() { if (server == null) { @@ -331,7 +331,7 @@ /** * - * @return directory upon which is runing cached server. If non singleton instance is runnig, new is created. + * @return directory upon which is running cached server. If non singleton instance is running, new is created. */ public File getDir() { if (server == null) { @@ -343,7 +343,7 @@ /** * - * @return url pointing to cached server resource. If non singleton instance is runnig, new is created. + * @return url pointing to cached server resource. If non singleton instance is running, new is created. */ public URL getUrl(String resource) throws MalformedURLException { if (server == null) { @@ -355,7 +355,7 @@ /** * - * @return url pointing to cached server . If non singleton instance is runnig, new is created. + * @return url pointing to cached server . If non singleton instance is running, new is created. */ public URL getUrl() throws MalformedURLException { return getUrl(""); @@ -364,7 +364,7 @@ /** * - * @return weather cached server is alive. If non singleton instance is runnig, new is created. + * @return weather cached server is alive. If non singleton instance is running, new is created. */ public boolean isRunning() { if (server == null) { @@ -380,7 +380,7 @@ * * @param resource to be located on cached server * @return individual bytes of resource - * @throws IOException if connection cant be established or resource do not exists + * @throws IOException if connection can't be established or resource do not exists */ public ByteArrayOutputStream getResourceAsBytes(String resource) throws IOException { return getResourceAsBytes(getUrl(resource)); @@ -391,7 +391,7 @@ * * @param resource to be located on cached server * @return string constructed from resource - * @throws IOException if connection cant be established or resource do not exists + * @throws IOException if connection can't be established or resource do not exists */ public String getResourceAsString(String resource) throws IOException { return getResourceAsString(getUrl(resource)); @@ -402,7 +402,7 @@ * * @param input stream to be read * @return individual bytes of resource - * @throws IOException if connection cant be established or resource do not exists + * @throws IOException if connection can't be established or resource do not exists */ public static ByteArrayOutputStream getBytesFromStream(InputStream is) throws IOException { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); @@ -420,7 +420,7 @@ * * @param input stream * @return stream as string - * @throws IOException if connection cant be established or resource do not exists + * @throws IOException if connection can't be established or resource do not exists */ public static String getContentOfStream(InputStream is) throws IOException { try { @@ -446,7 +446,7 @@ * * @param resource to be located on any url * @return individual bytes of resource - * @throws IOException if connection cant be established or resource do not exists + * @throws IOException if connection can't be established or resource do not exists */ public static ByteArrayOutputStream getResourceAsBytes(URL u) throws IOException { HttpURLConnection connection = (HttpURLConnection) u.openConnection(); @@ -462,9 +462,9 @@ /** * utility method which can read string of resource from any url * - * @param resource to be located onany url + * @param resource to be located on any url * @return resource as string - * @throws IOException if connection cant be established or resource do not exists + * @throws IOException if connection can't be established or resource do not exists */ public static String getResourceAsString(URL u) throws IOException { HttpURLConnection connection = (HttpURLConnection) u.openConnection(); @@ -493,7 +493,7 @@ /** * wrapping method to executeProcess (eg: javaws -headless http://localhost:port/resource) * will execute default javaws (@see JAVAWS_BUILD_BIN) upon default url upon cached server (@see SERVER_NAME @see getPort(), @see getInstance()) - * with parameter -headles (no gui, no asking) + * with parameter -headless (no gui, no asking) * @param resource name of resource * @return result what left after running this process * @throws Exception @@ -505,9 +505,9 @@ /** * wrapping method to executeProcess (eg: javaws arg arg -headless http://localhost:port/resource) * will execute default javaws (@see JAVAWS_BUILD_BIN) upon default url upon cached server (@see SERVER_NAME @see getPort(), @see getInstance()) - * with parameter -headles (no gui, no asking) + * with parameter -headless (no gui, no asking) * @param resource name of resource - * @param otherargs other arguments to be added to hedales one + * @param otherargs other arguments to be added to headless one * @return result what left after running this process * @throws Exception */ @@ -581,19 +581,19 @@ return executeProcess(args, null); } /** - * utility method to lunch process, get its stdou/stderr, its return value and to kill it if runing to long (@see PROCESS_TIMEOUT) + * utility method to lunch process, get its stdout/stderr, its return value and to kill it if running to long (@see PROCESS_TIMEOUT) * * * Small bacground: - * This method creates thread inside which exec will be executed. Then creates assasin thread with given timeout to kill the previously created thread if necessary. - * Starts assasin thread, starts process thread. Wait untill process is running, then starts content readers. + * This method creates thread inside which exec will be executed. Then creates assassin thread with given timeout to kill the previously created thread if necessary. + * Starts assassin thread, starts process thread. Wait until process is running, then starts content readers. * Closes input of process. - * Wait until process is running (no metter if it teminate itself (correctly or badly), or is terminated by its assasin. - * Construct result from readed stdout, stderr, process return value, assasin sucessfulity + * Wait until process is running (no matter if it terminate itself (correctly or badly), or is terminated by its assassin. + * Construct result from readed stdout, stderr, process return value, assassin successfully * * @param args binary with args to be executed * @param dir optional, directory where this process will run - * @return what left from process - proces sitself, its stdout, stderr and return value and weather it was terminated by assasin. + * @return what left from process - process itself, its stdout, stderr and return value and weather it was terminated by assassin. * @throws Exception */ public static ProcessResult executeProcess(final List args,File dir) throws Exception { @@ -626,8 +626,8 @@ /** * - * wrapper arround Runtime.getRuntime().exec(...) which ensures taht process is run inside its own, by us controlled, thread. - * Proces sbuilder caused som einexpected and wired behaviour:/ + * wrapper around Runtime.getRuntime().exec(...) which ensures that process is run inside its own, by us controlled, thread. + * Process builder caused some unexpected and wired behavior :/ */ private static class ThreadedProcess extends Thread { @@ -685,10 +685,10 @@ p = r.exec(args.toArray(new String[0]),new String[0], dir); } exitCode = p.waitFor(); - Thread.sleep(500);//this is giving to fastly done proecesses's e/o readers time to read all. I would like to know better solution :-/ + Thread.sleep(500); //this is giving to fast done processes's e/o readers time to read all. I would like to know better solution :-/ } catch (Exception ex) { if (ex instanceof InterruptedException) { - //add to the set of terminated threadedproceses + //add to the set of terminated threaded processes terminated.add(this); } else { throw new RuntimeException(ex); @@ -700,8 +700,8 @@ } /** - * wrapper arround tiny http server to separate lunch configgurations and servers. - * to allow terminations and stuff arround. + * wrapper around tiny http server to separate lunch configurations and servers. + * to allow terminations and stuff around. */ public static class ServerLauncher implements Runnable { @@ -848,7 +848,7 @@ } /** - * class which timeout any ThreadedProcess. This killing of 'theread with process' replaced not working process.destroy(). + * class which timeout any ThreadedProcess. This killing of 'thread with process' replaced not working process.destroy(). */ private static class ProcessAssasin extends Thread { @@ -861,7 +861,7 @@ /** * * @param p - * @param timeout - time to die in milis + * @param timeout - time to die in milliseconds */ public ProcessAssasin(ThreadedProcess p, long timeout) { this.p = (p); @@ -945,7 +945,7 @@ } /** - * Class to read content of stdou/err of process, and to cooperate with its running/terminated/finished statuses. + * Class to read content of stdout/stderr of process, and to cooperate with its running/terminated/finished statuses. */ private static class ContentReader implements Runnable { From thomas at m3y3r.de Fri Mar 23 15:58:11 2012 From: thomas at m3y3r.de (Thomas Meyer) Date: Fri, 23 Mar 2012 23:58:11 +0100 Subject: [RFC] DefaultLaunchHandlerTest - fix imports Message-ID: <1332543491.1397.7.camel@localhost.localdomain> # HG changeset patch # User thomas at m3y3r.de # Date 1332452336 -3600 # Node ID 4ec09b4791b98c14306e0276bf3f6bfe3b04cf3a # Parent 540254dcb2b360f2cf8d343e2326b327e7a4177b Fix imports. diff -r 540254dcb2b3 -r 4ec09b4791b9 tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java Sun Mar 18 12:25:49 2012 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java Thu Mar 22 22:38:56 2012 +0100 @@ -43,6 +43,10 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import net.sourceforge.jnlp.DefaultLaunchHandler; +import net.sourceforge.jnlp.LaunchException; +import net.sourceforge.jnlp.ParseException; + import org.junit.Test; public class DefaultLaunchHandlerTest { From mjw at redhat.com Fri Mar 23 15:49:54 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 23 Mar 2012 23:49:54 +0100 Subject: [PATCH 2 of 2] Add jstack tests to test/tapset/jstaptest.pl In-Reply-To: References: Message-ID: <393ad37b0c83a8208e75.1332542994@springer.wildebeest.org> ChangeLog | 4 +++ test/tapset/jstaptest.pl | 57 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 60 insertions(+), 1 deletions(-) # HG changeset patch # User Mark Wielaard # Date 1332538775 -3600 # Node ID 393ad37b0c83a8208e7578f11bbf9a021cce693c # Parent 55b21736fe194ce377bfe99b9a06f7f6e9107521 Add jstack tests to test/tapset/jstaptest.pl. diff -r 55b21736fe19 -r 393ad37b0c83 ChangeLog --- a/ChangeLog Fri Mar 23 14:11:00 2012 +0100 +++ b/ChangeLog Fri Mar 23 22:39:35 2012 +0100 @@ -1,3 +1,7 @@ +2012-03-23 Mark Wielaard + + * test/tapset/jstaptest.pl: Add jstack tests. + 2012-03-23 Jon VanAlten * Makefile.am: diff -r 55b21736fe19 -r 393ad37b0c83 test/tapset/jstaptest.pl --- a/test/tapset/jstaptest.pl Fri Mar 23 14:11:00 2012 +0100 +++ b/test/tapset/jstaptest.pl Fri Mar 23 22:39:35 2012 +0100 @@ -532,6 +532,8 @@ my $working_count = 0; my $undetected_count = 0; my $broken_count = 0; +my $working_jstack = 0; +my $broken_jstack = 0; # Stuffed based on argument(s), used as argument to stap executable. my @tapset_dirs = (); @@ -554,6 +556,7 @@ my @detected_probes = detect_probes(@probestrings); if (can_run_probes()) { test_probes(@detected_probes); + test_jstack(); } summarize(); log_postamble(); @@ -786,6 +789,53 @@ print("\n"); } +sub test_jstack { + log_and_print("Testing if jstack works as expected..."); + my ($stap_pre, $stap_script, $stap_post, $stap_command, $stap_result); + + # Run staptest.SystemtapTester compiled_method_unload which does a lot + # and can generate a somewhat "deep" stack. + $stap_pre = "stap " . join(' ', @tapset_dirs) . " -e '"; + $stap_post = "' -c '$java_exec staptest.SystemtapTester compiled_method_unload'"; + + # Simple test jstack() should at least show our main method. + # The test program runs the unloaded probe tester twice, pick the second + # run to test output. + $stap_script = "global hits = 0; probe hotspot.class_loaded { if (class == \"staptest/ClassUnloadedProbeTester\") { hits++; if (hits == 2) print_jstack(); } }"; + $stap_command = "$stap_pre $stap_script $stap_post"; + just_log($stap_command); + print("."); + $stap_result = `$stap_command`; + just_log($stap_result); + # Is our main method there? + if ($? == 0 && $stap_result =~ /staptest\/SystemtapTester.main/) { + $working_jstack++; + } else { + $broken_jstack++; + print("\n"); + log_and_print("simple jstack failed."); + } + + # Same, but with full stack (also internal hotspot frames) and signatures. + $stap_script = "global hits = 0; probe hotspot.class_loaded { if (class == \"staptest/ClassUnloadedProbeTester\") { hits++; if (hits == 2) print_jstack_full(); } }"; + $stap_command = "$stap_pre $stap_script $stap_post"; + just_log($stap_command); + print("."); + $stap_result = `$stap_command`; + just_log($stap_result); + # We expect to find at least our URLClassLoader (plus correct signature) + # in the backtrace. + if ($? == 0 and $stap_result =~ /staptest\/StapURLClassLoader.loadClass\(Ljava\/lang\/String;\)Ljava\/lang\/Class;/) { + $working_jstack++; + } else { + $broken_jstack++; + print("\n"); + log_and_print("full jstack failed."); + } + + print("\n"); +} + # Output a tally of test results. sub summarize { if ($working_count) { @@ -797,7 +847,12 @@ if ($undetected_count) { log_and_print("Undetected probes: $undetected_count"); } - + if ($working_jstack) { + log_and_print("Working jstack tests: $working_jstack"); + } + if ($broken_jstack) { + log_and_print("Broken jstack tests: $broken_jstack"); + } } # Any text that should follow a test run in the log file goes here. From mjw at redhat.com Fri Mar 23 15:49:52 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 23 Mar 2012 23:49:52 +0100 Subject: [PATCH 0 of 2] Add systemtap tapset tests Message-ID: Hi, These patches add the test framework that Jon wrote for testing the systemtap tapset probes. It adds a large number of tests (498 probes are tested). The first patch is largely Jon's work, I just tweaked it a bit to make it a little more robust. The second patch just extends the jstaptest.pl to add a couple of explicit jstack tests (simple and full). Jon, if you could take a look that would be appreciated. The changes I made to your original were: - Switched detect_probes from a negative test (see if the stap -l fails) to a positive test (see if that stap -l output matches the expected probe name). And use -L to force expansion of all arguments. - Added an explicit stap script run test to make sure the user has enough permissions (and if not skip the actual probe tests). - Made the test program do a little more so method_compiled tests have enough time to detect all probe events (specifically run some triggers twice with a small Thread.sleep in between to give hotspot enough time to finish the jit compilation of a method). The patches apply directly to icedtea6, and with a few small tweaks to Makefile.am also to icedtea7 (just simple textual changes). The tests all succeed on both 6 and 7. But for icedtea7 I have not yet merged in Andrew's latest forest update. Will tests with that merged next, and when that also passes check it into icedtea7 too. Cheers, Mark ChangeLog | 30 + Makefile.am | 29 +- tapset/hotspot_jni.stp.in | 20 +- test/tapset/ClassUnloadedProbeTester.java | 38 + test/tapset/JNIStapTest.c | 2107 +++++++++++++++++++++++++++++ test/tapset/JNITestClass.c | 7 + test/tapset/JNITestClass.h | 21 + test/tapset/JNITestClass.java | 121 + test/tapset/RunWrapper.java | 21 + test/tapset/StapJNIClassLoader.java | 64 + test/tapset/StapURLClassLoader.java | 24 + test/tapset/SystemtapTester.java | 202 ++ test/tapset/TestingRunner.java | 82 + test/tapset/jstaptest.pl | 954 +++++++++++++ ChangeLog | 4 + test/tapset/jstaptest.pl | 57 +- 16 files changed, 3772 insertions(+), 9 deletions(-) From mjw at redhat.com Fri Mar 23 15:49:53 2012 From: mjw at redhat.com (Mark Wielaard) Date: Fri, 23 Mar 2012 23:49:53 +0100 Subject: [PATCH 1 of 2] Add tapset tests In-Reply-To: References: Message-ID: <55b21736fe194ce377bf.1332542993@springer.wildebeest.org> ChangeLog | 30 + Makefile.am | 29 +- tapset/hotspot_jni.stp.in | 20 +- test/tapset/ClassUnloadedProbeTester.java | 38 + test/tapset/JNIStapTest.c | 2107 +++++++++++++++++++++++++++++ test/tapset/JNITestClass.c | 7 + test/tapset/JNITestClass.h | 21 + test/tapset/JNITestClass.java | 121 + test/tapset/RunWrapper.java | 21 + test/tapset/StapJNIClassLoader.java | 64 + test/tapset/StapURLClassLoader.java | 24 + test/tapset/SystemtapTester.java | 202 ++ test/tapset/TestingRunner.java | 82 + test/tapset/jstaptest.pl | 954 +++++++++++++ 14 files changed, 3712 insertions(+), 8 deletions(-) # HG changeset patch # User Jon VanAlten # Date 1332508260 -3600 # Node ID 55b21736fe194ce377bfe99b9a06f7f6e9107521 # Parent 2ec7673965579347cd63bddaba5b207f08be2e07 Add tapset tests. * Makefile.am: Add target to run tapset tests. * tapset/hotspot_jni.stp.in: Add notes regarding required JVM option to GetField family of probe aliases. * test/tapset/ClassUnloadedProbeTester.java: Part of test coverage for hotspot.stp and hotspot_jni.stp tapsets. * test/tapset/JNIStapTest.c: Likewise. * test/tapset/JNITestClass.c: Likewise. * test/tapset/JNITestClass.h: Likewise. * test/tapset/JNITestClass.java: Likewise. * test/tapset/RunWrapper.java: Likewise. * test/tapset/StapJNIClassLoader.java: Likewise. * test/tapset/StapURLClassLoader.java: Likewise. * test/tapset/SystemtapTester.java: Likewise. * test/tapset/TestingRunner.java: Likewise. * test/tapset/jstaptest.pl: Wrapper script, compiles and runs tests for tapsets. diff -r 2ec767396557 -r 55b21736fe19 ChangeLog --- a/ChangeLog Tue Mar 20 13:48:29 2012 +0100 +++ b/ChangeLog Fri Mar 23 14:11:00 2012 +0100 @@ -1,3 +1,33 @@ +2012-03-23 Jon VanAlten + + * Makefile.am: + Add target to run tapset tests. + * tapset/hotspot_jni.stp.in: + Add notes regarding required JVM option to GetField + family of probe aliases. + * test/tapset/ClassUnloadedProbeTester.java: + Part of test coverage for hotspot.stp and hotspot_jni.stp tapsets. + * test/tapset/JNIStapTest.c: + Likewise. + * test/tapset/JNITestClass.c: + Likewise. + * test/tapset/JNITestClass.h: + Likewise. + * test/tapset/JNITestClass.java: + Likewise. + * test/tapset/RunWrapper.java: + Likewise. + * test/tapset/StapJNIClassLoader.java: + Likewise. + * test/tapset/StapURLClassLoader.java: + Likewise. + * test/tapset/SystemtapTester.java: + Likewise. + * test/tapset/TestingRunner.java: + Likewise. + * test/tapset/jstaptest.pl: + Wrapper script, compiles and runs tests for tapsets. + 2012-03-20 Mark Wielaard * Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. diff -r 2ec767396557 -r 55b21736fe19 Makefile.am --- a/Makefile.am Tue Mar 20 13:48:29 2012 +0100 +++ b/Makefile.am Fri Mar 23 14:11:00 2012 +0100 @@ -654,9 +654,16 @@ all-local: icedtea-against-icedtea -check-local: jtregcheck +check-local: jtregcheck check-tapset -clean-local: clean-jtreg clean-jtreg-reports $(PULSE_JAVA_CLEAN_TARGET) \ +clean-tests: clean-jtreg clean-tapset-report + if [ $(abs_top_srcdir) != $(abs_top_builddir) ] ; then \ + if [ -e test ] ; then \ + rmdir test ; \ + fi \ + fi + +clean-local: clean-tests $(PULSE_JAVA_CLEAN_TARGET) \ clean-icedtea clean-icedtea-debug clean-icedtea-ecj clean-extract clean-ports \ clean-overlay clean-native-ecj clean-icedtea-against-icedtea clean-icedtea-debug-against-icedtea \ clean-icedtea-against-ecj clean-extract-ecj clean-generated clean-replace-hotspot \ @@ -700,7 +707,7 @@ clean-add-pulseaudio clean-add-pulseaudio-debug clean-add-nss clean-add-nss-debug \ clean-add-tzdata-support clean-add-tzdata-support-debug clean-add-systemtap-ecj \ clean-add-pulseaudio-ecj clean-add-nss-ecj clean-add-tzdata-support-ecj clean-fonts \ - clean-download-hotspot jtregcheck + clean-download-hotspot clean-tests clean-tapset-report jtregcheck env: @echo 'unset JAVA_HOME' @@ -2163,9 +2170,6 @@ rmdir test/jtreg ; \ fi rm -f test/jtreg.jar - if [ -e test ] ; then \ - rmdir test ; \ - fi rm -f stamps/jtreg.stamp check-hotspot: stamps/jtreg.stamp @@ -2246,6 +2250,19 @@ $(jtreg_processes); \ fi +check-tapset: +if ENABLE_SYSTEMTAP + $(abs_top_srcdir)/test/tapset/jstaptest.pl \ + -B $(BUILD_OUTPUT_DIR) -A $(BUILD_ARCH_DIR) \ + -S $(abs_top_srcdir)/test/tapset \ + -o test/check-stap.log +endif + +clean-tapset-report: +if ENABLE_SYSTEMTAP + rm -f test/check-stap.log +endif + # Support classes for non-OpenJDK bootstraps # rt.jar additional class files. diff -r 2ec767396557 -r 55b21736fe19 tapset/hotspot_jni.stp.in --- a/tapset/hotspot_jni.stp.in Tue Mar 20 13:48:29 2012 +0100 +++ b/tapset/hotspot_jni.stp.in Fri Mar 23 14:11:00 2012 +0100 @@ -3532,6 +3532,7 @@ /* hotspot.jni.GetBooleanField * Get non-static jboolean field value. + * NEEDS: -XX:-UseFastJNIAccessors * * env - JNIEnv pointer. * obj - jobject. @@ -3550,6 +3551,7 @@ /* hotspot.jni.GetBooleanField.return * Get non-static jboolean field value. Return. + * NEEDS: -XX:-UseFastJNIAccessors * * ret - jboolean value. */ @@ -3629,6 +3631,7 @@ /* hotspot.jni.GetByteField * Get non-static jbyte field value. + * NEEDS: -XX:-UseFastJNIAccessors * * env - JNIEnv pointer. * obj - jobject. @@ -3647,6 +3650,7 @@ /* hotspot.jni.GetByteField.return * Get non-static jbyte field value. Return. + * NEEDS: -XX:-UseFastJNIAccessors * * ret - jbyte value. */ @@ -3726,6 +3730,7 @@ /* hotspot.jni.GetCharField * Get non-static jchar field value. + * NEEDS: -XX:-UseFastJNIAccessors * * env - JNIEnv pointer. * obj - jobject. @@ -3744,6 +3749,7 @@ /* hotspot.jni.GetCharField.return * Get non-static jchar field value. Return. + * NEEDS: -XX:-UseFastJNIAccessors * * ret - jchar value. */ @@ -3761,7 +3767,7 @@ * * vmbuf - Pointer to JavaVM pointer. * buflen - Max number of vms returned. - * nvms - Number of JavaVMs returned. + * nvms - Pointer to where the number of created JavaVMs will be returned. */ probe hotspot.jni.GetCreatedJavaVMs = process("@ABS_CLIENT_LIBJVM_SO@").mark("GetCreatedJavaVMs__entry"), @@ -3771,7 +3777,7 @@ vmbuf = $arg1 buflen = $arg2 nvms = $arg3 - probestr = sprintf("%s(vmbuf=0x%x,buflen=%d,nvms=%d)", name, vmbuf, buflen, nvms) + probestr = sprintf("%s(vmbuf=0x%x,buflen=%d,nvms=0x%x)", name, vmbuf, buflen, nvms) } /* hotspot.jni.GetCreatedJavaVMs.return @@ -3943,6 +3949,7 @@ /* hotspot.jni.GetDoubleField * Get non-static jdouble field value. + * NEEDS: -XX:-UseFastJNIAccessors * * env - JNIEnv pointer. * obj - jobject. @@ -3961,6 +3968,7 @@ /* hotspot.jni.GetDoubleField.return * Get non-static jdouble field value. Return. + * NEEDS: -XX:-UseFastJNIAccessors */ probe hotspot.jni.GetDoubleField.return = process("@ABS_CLIENT_LIBJVM_SO@").mark("GetDoubleField__return"), @@ -4103,6 +4111,7 @@ /* hotspot.jni.GetFloatField * Get non-static jfloat field value. + * NEEDS: -XX:-UseFastJNIAccessors * * env - JNIEnv pointer. * obj - jobject. @@ -4121,6 +4130,7 @@ /* hotspot.jni.GetFloatField.return * Get non-static jfloat field value. Return. + * NEEDS: -XX:-UseFastJNIAccessors */ probe hotspot.jni.GetFloatField.return = process("@ABS_CLIENT_LIBJVM_SO@").mark("GetFloatField__return"), @@ -4197,6 +4207,7 @@ /* hotspot.jni.GetIntField * Get non-static jint field value. + * NEEDS: -XX:-UseFastJNIAccessors * * env - JNIEnv pointer. * obj - jobject. @@ -4215,6 +4226,7 @@ /* hotspot.jni.GetIntField.return * Get non-static jint field value. Return. + * NEEDS: -XX:-UseFastJNIAccessors * * ret - jint value. */ @@ -4324,6 +4336,7 @@ /* hotspot.jni.GetLongField * Get non-static jlong field value. + * NEEDS: -XX:-UseFastJNIAccessors * * env - JNIEnv pointer. * obj - jobject. @@ -4342,6 +4355,7 @@ /* hotspot.jni.GetLongField.return * Get non-static jlong field value. Return. + * NEEDS: -XX:-UseFastJNIAccessors * * ret - jlong value. */ @@ -4611,6 +4625,7 @@ /* hotspot.jni.GetShortField * Get non-static jshort field value. + * NEEDS: -XX:-UseFastJNIAccessors * * env - JNIEnv pointer. * obj - jobject. @@ -4629,6 +4644,7 @@ /* hotspot.jni.GetShortField.return * Get non-static jshort field value. Return. + * NEEDS: -XX:-UseFastJNIAccessors * * ret - jshort value. */ diff -r 2ec767396557 -r 55b21736fe19 test/tapset/ClassUnloadedProbeTester.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/ClassUnloadedProbeTester.java Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,38 @@ +package staptest; + +class ClassUnloadedProbeTester { + private int myField; + long total; + static ClassUnloadedProbeTester tester; + + public static void main(String[] args) { + long total = 0; + for (int i = 1; i < 105; i++) { + tester = new ClassUnloadedProbeTester(); + tester.runner(tester, i); + if (total != tester.total) + total += tester.getField(); + } + } + + void runner(ClassUnloadedProbeTester run, int j) { + for (int i = 1; i < 105; i++) { + run.setField(i); + total += tester.getField(); + } + total += j; + } + + public ClassUnloadedProbeTester() { + myField = 500; + } + + public int getField() { + return myField; + } + + public void setField(int newValue) { + myField = newValue; + } +} + diff -r 2ec767396557 -r 55b21736fe19 test/tapset/JNIStapTest.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/JNIStapTest.c Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,2107 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "jni.h" +#include "JNITestClass.h" + +/* Longer than any known good argument. */ +#define MAX_ARG_LEN 128 +/* Arbitrary length. Some arrays are assigned with literals, so do not change + * this without examining the source carefully. + */ +#define TEST_ARRAY_LEN 5 + +/* Arguments for run_attach_current_thread. */ +#define DAEMON 1 +#define NOT_DAEMON 2 + +/* Avoiding repeated inline string constants. */ +char* const ALLOC_OBJECT = "AllocObject"; +char* const ATTACH_CURRENT_THREAD_AS_DAEMON = "AttachCurrentThreadAsDaemon"; +char* const ATTACH_CURRENT_THREAD = "AttachCurrentThread"; +char* const CALL = "Call"; +char* const CREATE_JAVA_VM = "CreateJavaVM"; +char* const DEFINE_CLASS = "DefineClass"; +char* const DELETE_GLOBAL_REF = "DeleteGlobalRef"; +char* const DELETE_LOCAL_REF = "DeleteLocalRef"; +char* const DELETE_WEAK_GLOBAL_REF = "DeleteWeakGlobalRef"; +char* const DESTROY_JAVA_VM = "DestroyJavaVM"; +char* const DETACH_CURRENT_THREAD = "DetachCurrentThread"; +char* const ENSURE_LOCAL_CAPACITY = "EnsureLocalCapacity"; +char* const EXCEPTION_CHECK = "ExceptionCheck"; +char* const EXCEPTION_CLEAR = "ExceptionClear"; +char* const EXCEPTION_DESCRIBE = "ExceptionDescribe"; +char* const EXCEPTION_OCCURRED = "ExceptionOccurred"; +char* const FATAL_ERROR = "FatalError"; +char* const FIND_CLASS = "FindClass"; +char* const FROM_REFLECTED_FIELD = "FromReflectedField"; +char* const FROM_REFLECTED_METHOD = "FromReflectedMethod"; +char* const GET_ARRAY_LENGTH = "GetArrayLength"; +char* const GET_CREATED_JAVA_VMS = "GetCreatedJavaVMs"; +char* const GET_DEFAULT_JAVA_VM_INIT_ARGS = "GetDefaultJavaVMInitArgs"; +char* const GET_DIRECT_BUFFER_ADDRESS = "GetDirectBufferAddress"; +char* const GET_DIRECT_BUFFER_CAPACITY = "GetDirectBufferCapacity"; +char* const GET = "Get"; +char* const GET_ENV = "GetEnv"; +char* const GET_FIELD_ID = "GetFieldID"; +char* const GET_JAVA_VM = "GetJavaVM"; +char* const GET_METHOD_ID = "GetMethodID"; +char* const GET_OBJECT_CLASS = "GetObjectClass"; +char* const GET_OBJECT_REF_TYPE = "GetObjectRefType"; +char* const GET_PRIMITIVE_ARRAY_CRITICAL = "GetPrimitiveArrayCritical"; +char* const GET_STATIC_FIELD_ID = "GetStaticFieldID"; +char* const GET_STATIC_METHOD_ID = "GetStaticMethodID"; +char* const GET_STRING = "GetString"; +char* const GET_STRING_UTF = "GetStringUTF"; +char* const GET_SUPERCLASS = "GetSuperclass"; +char* const GET_VERSION = "GetVersion"; +char* const IS_ASSIGNABLE_FROM = "IsAssignableFrom"; +char* const IS_INSTANCE_OF = "IsInstanceOf"; +char* const IS_SAME_OBJECT = "IsSameObject"; +char* const MONITOR = "Monitor"; +char* const NEW = "New"; +char* const NEW_DIRECT_BYTE_BUFFER = "NewDirectByteBuffer"; +char* const NEW_GLOBAL_REF = "NewGlobalRef"; +char* const NEW_LOCAL_REF = "NewLocalRef"; +char* const NEW_OBJECT_A = "NewObjectA"; +char* const NEW_OBJECT = "NewObject"; +char* const NEW_OBJECT_V = "NewObjectV"; +char* const NEW_STRING = "NewString"; +char* const NEW_STRING_UTF = "NewStringUTF"; +char* const NEW_WEAK_GLOBAL_REF = "NewWeakGlobalRef"; +char* const POP_LOCAL_FRAME = "PopLocalFrame"; +char* const PUSH_LOCAL_FRAME = "PushLocalFrame"; +char* const REGISTER_NATIVES = "RegisterNatives"; +char* const RELEASE = "Release"; +char* const RELEASE_PRIMITIVE_ARRAY_CRITICAL = "ReleasePrimitiveArrayCritical"; +char* const RELEASE_STRING_CHARS = "ReleaseStringChars"; +char* const RELEASE_STRING_CRITICAL = "ReleaseStringCritical"; +char* const RELEASE_STRING_UTF_CHARS = "ReleaseStringUTFChars"; +char* const SET = "Set"; +char* const THROW = "Throw"; +char* const THROW_NEW = "ThrowNew"; +char* const TO_REFLECTED_FIELD = "ToReflectedField"; +char* const TO_REFLECTED_METHOD = "ToReflectedMethod"; +char* const UNREGISTER_NATIVES = "UnregisterNatives"; + +char* const FIELD = "Field"; +char* const ARRAY = "Array"; +char* const STATIC = "Static"; +char* const NONVIRTUAL = "Nonvirtual"; +char* const DIRECT = "Direct"; +char* const BOOLEAN = "Boolean"; +char* const BYTE = "Byte"; +char* const CHAR = "Char"; +char* const DOUBLE = "Double"; +char* const FLOAT = "Float"; +char* const INT = "Int"; +char* const LONG = "Long"; +char* const OBJECT = "Object"; +char* const SHORT = "Short"; +char* const VOID = "Void"; + +char* const TEST_CLASS = "staptest/JNITestClass"; + +/* These functions defined below. */ +void bad_usage(); +void* run_attach_current_thread(void* style); + +int get_type_and_modifier(char* arg, char** type_p, char** mod_p); + +jboolean is_field_op(char* arg); +jboolean is_array_op(char* arg); + +jint create_java_vm_wrap(JavaVMInitArgs* args); + +jobject new_object_v_wrap(JNIEnv* env_, jclass* class_p, + jmethodID* construct, ...); + +jboolean boolean_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); +jbyte byte_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); +jchar char_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); +jdouble double_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); +jfloat float_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); +jint int_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); +jlong long_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); +jobject object_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); +jshort short_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); +void void_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...); + +jboolean nonvirtual_boolean_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); +jbyte nonvirtual_byte_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); +jchar nonvirtual_char_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); +jdouble nonvirtual_double_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); +jfloat nonvirtual_float_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); +jint nonvirtual_int_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); +jlong nonvirtual_long_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); +jobject nonvirtual_object_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); +jshort nonvirtual_short_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); +void nonvirtual_void_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...); + +jboolean static_boolean_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); +jbyte static_byte_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); +jchar static_char_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); +jdouble static_double_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); +jfloat static_float_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); +jint static_int_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); +jlong static_long_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); +jobject static_object_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); +jshort static_short_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); +void static_void_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...); + +/* We don't want to have to pass these around all the time, so make them global. + * This would probably be a Very Bad Idea in real JNI code. + */ +JavaVM* jvm; +JNIEnv *env; + +int main(int argc, char *argv[]) { + + pthread_t attach_thread; + + if (argc != 2) { + bad_usage("No argument specified."); + exit(1); + } + int arglen = (int) strlen(argv[1]); + if (arglen > MAX_ARG_LEN) { + bad_usage("Argument too long."); + exit(1); + } + char* safe_arg = (char*) malloc(sizeof(char)*(MAX_ARG_LEN + 1)); + strncpy(safe_arg, argv[1], MAX_ARG_LEN); + /* Copy into a larger array so we can strncmp to our string constants + * without the risk of running past the end of the string. + */ +/* This is a gigantic if-else if-else block. Each JNI function (or, where + * appropriate, groups of related JNI functions) are called independently, as + * determined by the argument to this program, in order to trigger the + * corresponding systemtap/dtrace probes. + */ + if ((strncmp(safe_arg, CREATE_JAVA_VM, + strlen(CREATE_JAVA_VM)) == 0) || + (strncmp(safe_arg, DESTROY_JAVA_VM, + strlen(DESTROY_JAVA_VM)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + /* No further action needed. */ + goto end_vm; + } else if (strncmp(safe_arg, FATAL_ERROR, strlen(FATAL_ERROR)) == 0) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + (*env)->FatalError(env, "Intentional Crash: Ignore."); + exit(-1); + } else if (strncmp(safe_arg, GET_VERSION, strlen(GET_VERSION)) == 0) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + (*env)->GetVersion(env); + } else if (strncmp(safe_arg, GET_ENV, strlen(GET_ENV)) == 0) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + JNIEnv *tmp_env; + (*jvm)->GetEnv(jvm, (void**)&tmp_env, JNI_VERSION_1_6); + } else if (strncmp(safe_arg, GET_DEFAULT_JAVA_VM_INIT_ARGS, + strlen(GET_DEFAULT_JAVA_VM_INIT_ARGS)) == 0) { + JavaVMInitArgs vm_args; + vm_args.version = JNI_VERSION_1_6; + JNI_GetDefaultJavaVMInitArgs(&vm_args); + if (safe_arg != NULL) { + free(safe_arg); + safe_arg = NULL; + } + exit(0); + } else if (strncmp(safe_arg, GET_JAVA_VM, + strlen(GET_JAVA_VM)) == 0) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + JavaVM* vm_pointer; + (*env)->GetJavaVM(env, &vm_pointer); + } else if (strncmp(safe_arg, DEFINE_CLASS, strlen(DEFINE_CLASS)) == 0) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jclass loaderClass = (*env)->FindClass(env, "staptest/StapJNIClassLoader"); + if (loaderClass == NULL) { + /* Bail out, cannot find class. */ + goto end_vm; + } + jmethodID loadConstructor = (*env)->GetMethodID(env, loaderClass, + "", "()V"); + if (loadConstructor == NULL) { + /* Bail out, cannot find constructor. */ + goto end_vm; + } + jobject loader = (*env)->NewObject(env, loaderClass, loadConstructor); + if (loader == NULL) { + /* Bail out, cannot create loader. */ + goto end_vm; + } + int class_fildes = open("./staptest/JNITestClass.class", O_RDONLY|O_NONBLOCK); + if (class_fildes == -1) { + /* Bail out, cannot open class file. */ + goto end_vm; + } + struct stat classfile_stats; + int r_val = fstat(class_fildes, &classfile_stats); + if (r_val != 0) { + /* Bail out, cannot determine classfile size. */ + goto end_vm; + } + ssize_t classfile_size = (ssize_t) classfile_stats.st_size; + jbyte* classfile_buf = malloc(sizeof(jbyte)*classfile_size); + ssize_t total_bytes_read = 0; + /* Ensure entire file is read in case of interrupts. */ + while (total_bytes_read < classfile_size) { + size_t bytes_needed = (size_t) classfile_size - (size_t) total_bytes_read; + void* buf_start = (void*) classfile_buf + total_bytes_read; + ssize_t bytes_read = pread(class_fildes, buf_start, + bytes_needed, (off_t) total_bytes_read); + if (bytes_read <= 0) { + /* Bail out, reading from file blocked or unexpected EOF */ + if (classfile_buf != NULL) { + free(classfile_buf); + classfile_buf = NULL; + } + goto end_vm; + } + total_bytes_read += bytes_read; + } + jclass testClass = (*env)->DefineClass(env, TEST_CLASS, loader, + classfile_buf, (jsize) classfile_size); + if (classfile_buf != NULL) { + free(classfile_buf); + classfile_buf = NULL; + } + } else if ((strncmp(safe_arg, ENSURE_LOCAL_CAPACITY, + strlen(ENSURE_LOCAL_CAPACITY)) == 0) || + (strncmp(safe_arg, PUSH_LOCAL_FRAME, + strlen(PUSH_LOCAL_FRAME)) == 0) || + (strncmp(safe_arg, POP_LOCAL_FRAME, + strlen(POP_LOCAL_FRAME)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jint rval = (*env)->PushLocalFrame(env, (jint) 10); + if (rval == JNI_OK) { + (*env)->EnsureLocalCapacity(env, (jint) 10); + (*env)->PopLocalFrame(env, NULL); + } + } else if ((strncmp(safe_arg, NEW_OBJECT, strlen(NEW_OBJECT)) == 0) && + (strlen(safe_arg) == strlen(NEW_OBJECT))) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jclass testClass = (*env)->FindClass(env, TEST_CLASS); + if (testClass == NULL) { + /* Bail out, cannot find class. */ + goto end_vm; + } + jmethodID constructor = (*env)->GetMethodID(env, testClass, + "", "()V"); + if (constructor == NULL) { + /* Bail out, cannot find constructor. */ + goto end_vm; + } + jobject testInstance = (*env)->NewObject(env, testClass, constructor); + } else if ((strncmp(safe_arg, NEW_OBJECT_A, strlen(NEW_OBJECT_A)) == 0) && + (strlen(safe_arg) == strlen(NEW_OBJECT_A))) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jclass testClass = (*env)->FindClass(env, TEST_CLASS); + if (testClass == NULL) { + /* Bail out, cannot find class. */ + goto end_vm; + } + jmethodID constructor = (*env)->GetMethodID(env, testClass, + "", "()V"); + if (constructor == NULL) { + /* Bail out, cannot find constructor. */ + goto end_vm; + } + jobject testInstance = (*env)->NewObjectA(env, testClass, + constructor, NULL); + } else if (strncmp(safe_arg, NEW_OBJECT_V, strlen(NEW_OBJECT_V)) == 0) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jclass testClass = (*env)->FindClass(env, TEST_CLASS); + if (testClass == NULL) { + /* Bail out, cannot find class. */ + goto end_vm; + } + jmethodID constructor = (*env)->GetMethodID(env, testClass, + "", "()V"); + if (constructor == NULL) { + /* Bail out, cannot find constructor. */ + goto end_vm; + } + jobject testInstance = new_object_v_wrap(env, &testClass, &constructor); + } else if ((strncmp(safe_arg, GET_ARRAY_LENGTH, + strlen(GET_ARRAY_LENGTH)) == 0) || + (strncmp(safe_arg, GET_PRIMITIVE_ARRAY_CRITICAL, + strlen(GET_PRIMITIVE_ARRAY_CRITICAL)) == 0) || + (strncmp(safe_arg, RELEASE_PRIMITIVE_ARRAY_CRITICAL, + strlen(RELEASE_PRIMITIVE_ARRAY_CRITICAL)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jbyteArray byte_array = (*env)->NewByteArray(env, (jsize) TEST_ARRAY_LEN); + jsize byte_array_len = (*env)->GetArrayLength(env, (jarray) byte_array); + void* primitive_array = (*env)->GetPrimitiveArrayCritical(env, + (jarray) byte_array, NULL); + if (primitive_array == NULL) { + /* JVM out of memory, don't try to release. */ + goto end_vm; + } + (*env)->ReleasePrimitiveArrayCritical(env, (jarray) byte_array, + primitive_array, JNI_ABORT); + } else if (strncmp(safe_arg+3, DIRECT, strlen(DIRECT)) == 0) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + void* some_space = malloc((size_t) MAX_ARG_LEN); + jobject byte_buffer = (*env)->NewDirectByteBuffer(env, some_space, + (jlong) MAX_ARG_LEN); + void* pointer_to_some_space = (*env)->GetDirectBufferAddress(env, + byte_buffer); + jlong some_space_capacity = (*env)->GetDirectBufferCapacity(env, + byte_buffer); + if (some_space != NULL) { + free(some_space); + some_space = NULL; + } + } else if ((strncmp(safe_arg, THROW, strlen(THROW)) == 0) || + (strncmp(safe_arg, EXCEPTION_CHECK, + strlen(EXCEPTION_CHECK)) == 0) || + (strncmp(safe_arg, EXCEPTION_CLEAR, + strlen(EXCEPTION_CLEAR)) == 0) || + (strncmp(safe_arg, EXCEPTION_DESCRIBE, + strlen(EXCEPTION_DESCRIBE)) == 0) || + (strncmp(safe_arg, EXCEPTION_OCCURRED, + strlen(EXCEPTION_OCCURRED)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jclass exceptionClass = (*env)->FindClass(env, "java/lang/Exception"); + if (exceptionClass == NULL) { + /* Bail out, cannot find class. */ + goto end_vm; + } + jmethodID constructor = (*env)->GetMethodID(env, exceptionClass, + "", "()V"); + if (constructor == NULL) { + /* Bail out, cannot find constructor. */ + goto end_vm; + } + jthrowable anException = (jthrowable) (*env)->NewObject(env, + exceptionClass, constructor); + if (anException == NULL) { + /* Bail out, cannot create exception. */ + goto end_vm; + } + jint r_val = (*env)->Throw(env, anException); + if (r_val != 0) { + /* Bail out, couldn't throw exception. */ + goto end_vm; + } + jboolean exception_thrown = (*env)->ExceptionCheck(env); + if (exception_thrown == JNI_FALSE) { + /* Huh? Should be true. */ + goto end_vm; + } + (*env)->ExceptionClear(env); + r_val = (*env)->ThrowNew(env, exceptionClass, "This exception is for testing purposes only."); + anException = (*env)->ExceptionOccurred(env); + if (anException == NULL) { + goto end_vm; + } + (*env)->ExceptionClear(env); + /* We don't actually want to see output, so we clear exception first. */ + (*env)->ExceptionDescribe(env); + } else if ((strncmp(safe_arg, REGISTER_NATIVES, + strlen(REGISTER_NATIVES)) == 0) || + (strncmp(safe_arg, UNREGISTER_NATIVES, + strlen(UNREGISTER_NATIVES)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jclass testClass = (*env)->FindClass(env, TEST_CLASS); + if (testClass == NULL) { + /* Bail out, cannot find class. */ + goto end_vm; + } + JNINativeMethod jni_method; + jni_method.name = "doNothing"; + jni_method.signature = "()V"; + jni_method.fnPtr = &Java_JNITestClass_doNothing; + jint r_val = (*env)->RegisterNatives(env, testClass, &jni_method, (jint) 1); + if (r_val != 0) { + goto end_vm; + } + r_val = (*env)->UnregisterNatives(env, testClass); + } else if ((strncmp(safe_arg, ATTACH_CURRENT_THREAD_AS_DAEMON, + strlen(ATTACH_CURRENT_THREAD_AS_DAEMON)) == 0) || + (strncmp(safe_arg, GET_CREATED_JAVA_VMS, + strlen(GET_CREATED_JAVA_VMS)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + int rval; + int style = (int) DAEMON; + rval = pthread_create(&attach_thread, NULL, + run_attach_current_thread, &style); + if (rval == 0) { + pthread_join(attach_thread, NULL); + } + } else if ((strncmp(safe_arg, ATTACH_CURRENT_THREAD, + strlen(ATTACH_CURRENT_THREAD)) == 0) || + (strncmp(safe_arg, DETACH_CURRENT_THREAD, + strlen(DETACH_CURRENT_THREAD)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + int rval; + int style = (int) NOT_DAEMON; + rval = pthread_create(&attach_thread, NULL, + run_attach_current_thread, &style); + if (rval == 0) { + pthread_join(attach_thread, NULL); + } + } else if ((strncmp(safe_arg, ALLOC_OBJECT, + strlen(ALLOC_OBJECT)) == 0) || +/* A bunch of jni functions having to do with classes and references. */ + (strncmp(safe_arg, DELETE_GLOBAL_REF, + strlen(DELETE_GLOBAL_REF)) == 0) || + (strncmp(safe_arg, DELETE_LOCAL_REF, + strlen(DELETE_LOCAL_REF)) == 0) || + (strncmp(safe_arg, DELETE_WEAK_GLOBAL_REF, + strlen(DELETE_WEAK_GLOBAL_REF)) == 0) || + (strncmp(safe_arg, FIND_CLASS, + strlen(FIND_CLASS)) == 0) || + (strncmp(safe_arg, GET_FIELD_ID, + strlen(GET_FIELD_ID)) == 0) || + (strncmp(safe_arg, GET_METHOD_ID, + strlen(GET_METHOD_ID)) == 0) || + (strncmp(safe_arg, GET_OBJECT_CLASS, + strlen(GET_OBJECT_CLASS)) == 0) || + (strncmp(safe_arg, GET_OBJECT_REF_TYPE, + strlen(GET_OBJECT_REF_TYPE)) == 0) || + (strncmp(safe_arg, GET_STATIC_FIELD_ID, + strlen(GET_STATIC_FIELD_ID)) == 0) || + (strncmp(safe_arg, GET_STATIC_METHOD_ID, + strlen(GET_STATIC_METHOD_ID)) == 0) || + (strncmp(safe_arg, GET_SUPERCLASS, + strlen(GET_SUPERCLASS)) == 0) || + (strncmp(safe_arg, IS_ASSIGNABLE_FROM, + strlen(IS_ASSIGNABLE_FROM)) == 0) || + (strncmp(safe_arg, IS_INSTANCE_OF, + strlen(IS_INSTANCE_OF)) == 0) || + (strncmp(safe_arg, IS_SAME_OBJECT, + strlen(IS_SAME_OBJECT)) == 0) || + (strncmp(safe_arg, NEW_GLOBAL_REF, + strlen(NEW_GLOBAL_REF)) == 0) || + (strncmp(safe_arg, NEW_LOCAL_REF, + strlen(NEW_LOCAL_REF)) == 0) || + (strncmp(safe_arg, NEW_WEAK_GLOBAL_REF, + strlen(NEW_WEAK_GLOBAL_REF)) == 0) || + (strncmp(safe_arg, TO_REFLECTED_FIELD, + strlen(TO_REFLECTED_FIELD)) == 0) || + (strncmp(safe_arg, FROM_REFLECTED_FIELD, + strlen(FROM_REFLECTED_FIELD)) == 0) || + (strncmp(safe_arg, TO_REFLECTED_METHOD, + strlen(TO_REFLECTED_METHOD)) == 0) || + (strncmp(safe_arg, FROM_REFLECTED_METHOD, + strlen(FROM_REFLECTED_METHOD)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jclass testClass = (*env)->FindClass(env, TEST_CLASS); + if (testClass == NULL) { + /* Bail out, cannot find class. */ + goto end_vm; + } + jobject testClassInstance = (*env)->AllocObject(env, testClass); + jclass aClass = (*env)->GetObjectClass(env, testClassInstance); + jclass superClass = (*env)->GetSuperclass(env, aClass); + jboolean jboolrval = (*env)->IsAssignableFrom(env, testClass, aClass); + jboolrval = (*env)->IsInstanceOf(env, testClassInstance, testClass); + jfieldID myBoolean = (*env)->GetFieldID(env, testClass, "myBoolean", "Z"); + jobject myBooleanRef = (*env)->ToReflectedField(env, testClass, myBoolean, + (jboolean) JNI_FALSE); + jfieldID myBoolean2 = (*env)->FromReflectedField(env, myBooleanRef); + jmethodID getBoolean = (*env)->GetMethodID(env, testClass, + "getBoolean", "()Z"); + jobject getBooleanRef = (*env)->ToReflectedMethod(env, testClass, + getBoolean, (jboolean) JNI_FALSE); + jmethodID getBoolean2 = (*env)->FromReflectedMethod(env, getBooleanRef); + jfieldID myStaticBoolean = (*env)->GetStaticFieldID(env, testClass, + "myStaticBoolean", "Z"); + jmethodID getStaticBoolean = (*env)->GetStaticMethodID(env, testClass, + "getStaticBoolean", "()Z"); + jobject testClassLocal = (*env)->NewLocalRef(env, testClassInstance); + jobject testClassGlobal = (*env)->NewGlobalRef(env, testClassInstance); + jobject testClassWeakGlobal = (*env)->NewWeakGlobalRef(env, + testClassInstance); + jboolrval = (*env)->IsSameObject(env, testClassGlobal, testClassWeakGlobal); + jobjectRefType refType = (*env)->GetObjectRefType(env, testClassGlobal); + (*env)->DeleteGlobalRef(env, testClassGlobal); + (*env)->DeleteWeakGlobalRef(env, testClassWeakGlobal); + (*env)->DeleteLocalRef(env, testClassLocal); + } else if (strncmp(safe_arg, MONITOR, strlen(MONITOR)) == 0) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + jclass testClass = (*env)->FindClass(env, TEST_CLASS); + if (testClass == NULL) { + /* Bail out, cannot find class. */ + goto end_vm; + } + jmethodID constructor = (*env)->GetMethodID(env, testClass, + "", "()V"); + if (constructor == NULL) { + /* Bail out, cannot find constructor. */ + goto end_vm; + } + jobject testInstance = (*env)->NewObject(env, testClass, constructor); + (*env)->MonitorEnter(env, testInstance); + (*env)->MonitorExit(env, testInstance); + } else if ((strncmp(safe_arg, GET_STRING_UTF, + strlen(GET_STRING_UTF)) == 0) || + (strncmp(safe_arg, NEW_STRING_UTF, + strlen(NEW_STRING_UTF)) == 0) || + (strncmp(safe_arg, RELEASE_STRING_UTF_CHARS, + strlen(RELEASE_STRING_UTF_CHARS)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + char string_chars[6] = {0x57,0x4F,0x52,0x44,0xC0,0x80}; + jstring aString = (*env)->NewStringUTF(env, string_chars); + jsize str_len = (*env)->GetStringUTFLength(env, aString); + char string_buf[2]; + (*env)->GetStringUTFRegion(env, aString, (jsize) 1, (jsize) 2, string_buf); + const jbyte* str_pointer = (*env)->GetStringUTFChars(env, aString, NULL); + (*env)->ReleaseStringUTFChars(env, aString, (char*) str_pointer); + } else if ((strncmp(safe_arg, GET_STRING, + strlen(GET_STRING)) == 0) || + (strncmp(safe_arg, NEW_STRING, + strlen(NEW_STRING)) == 0) || + (strncmp(safe_arg, RELEASE_STRING_CHARS, + strlen(RELEASE_STRING_CHARS)) == 0) || + (strncmp(safe_arg, RELEASE_STRING_CRITICAL, + strlen(RELEASE_STRING_CRITICAL)) == 0)) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + /* Long way to say "WORD" in Unicode: */ + jchar string_chars[4] = {(jchar)0x57,(jchar)0x4F,(jchar)0x52,(jchar)0x44}; + jstring aString = (*env)->NewString(env, string_chars, (jsize) 4); + jsize str_len = (*env)->GetStringLength(env, aString); + jchar string_buf[2]; + (*env)->GetStringRegion(env, aString, (jsize) 1, (jsize) 2, string_buf); + const jchar* str_pointer = (*env)->GetStringChars(env, aString, NULL); + (*env)->ReleaseStringChars(env, aString, str_pointer); + str_pointer = (*env)->GetStringCritical(env, aString, NULL); + (*env)->ReleaseStringCritical(env, aString, str_pointer); + + } else if (strncmp(safe_arg, CALL, strlen(CALL)) == 0) { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + char* type = NULL; + char* modifier = NULL; + char* method_sig = malloc(MAX_ARG_LEN); + char* method_name = malloc(MAX_ARG_LEN); + if ((method_sig == NULL) || (method_name == NULL)) { + goto cannot_call; + } + int rval = get_type_and_modifier(safe_arg+4, &type, &modifier); + if (rval == -1) { + goto cannot_call; + } + int arg_len = strlen(safe_arg); + jclass testClass = (*env)->FindClass(env, TEST_CLASS); + if (testClass == NULL) { + /* Bail out, cannot find class. */ + goto cannot_call; + } + if ((modifier != NULL) && (strncmp(modifier, STATIC, + strlen(STATIC)) == 0)) { + snprintf(method_name, MAX_ARG_LEN, "get%s%s", modifier, type); + if (strncmp(type, BOOLEAN, strlen(type)) == 0) { + strncpy(method_sig, "()Z", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_boolean_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticBooleanMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticBooleanMethod(env, testClass, method); + } + } else if (strncmp(type, BYTE, strlen(type)) == 0) { + strncpy(method_sig, "()B", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_byte_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticByteMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticByteMethod(env, testClass, method); + } + } else if (strncmp(type, CHAR, strlen(type)) == 0) { + strncpy(method_sig, "()C", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_char_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticCharMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticCharMethod(env, testClass, method); + } + } else if (strncmp(type, DOUBLE, strlen(type)) == 0) { + strncpy(method_sig, "()D", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_double_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticDoubleMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticDoubleMethod(env, testClass, method); + } + } else if (strncmp(type, FLOAT, strlen(type)) == 0) { + strncpy(method_sig, "()F", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_float_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticFloatMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticFloatMethod(env, testClass, method); + } + } else if (strncmp(type, INT, strlen(type)) == 0) { + strncpy(method_sig, "()I", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_int_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticIntMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticIntMethod(env, testClass, method); + } + } else if (strncmp(type, LONG, strlen(type)) == 0) { + strncpy(method_sig, "()J", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_long_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticLongMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticLongMethod(env, testClass, method); + } + } else if (strncmp(type, OBJECT, strlen(type)) == 0) { + strncpy(method_sig, "()Ljava/lang/Object;", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_object_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticObjectMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticObjectMethod(env, testClass, method); + } + } else if (strncmp(type, SHORT, strlen(type)) == 0) { + strncpy(method_sig, "()S", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_short_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticShortMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticShortMethod(env, testClass, method); + } + } else if (strncmp(type, VOID, strlen(type)) == 0) { + strncpy(method_sig, "()V", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetStaticMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + static_void_v_wrap(&env, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallStaticVoidMethodA(env, testClass, method, NULL); + } else { + (*env)->CallStaticVoidMethod(env, testClass, method); + } + } else { + /* Type not recognized. */ + goto cannot_call; + } + } else { + jmethodID constructor = (*env)->GetMethodID(env, testClass, + "", "()V"); + if (constructor == NULL) { + /* Bail out, cannot find constructor. */ + goto cannot_call; + } + jobject testInstance = (*env)->NewObject(env, testClass, constructor); + if (testInstance == NULL) { + /* Bail out, cannot create object. */ + goto cannot_call; + } + snprintf(method_name, MAX_ARG_LEN, "get%s", type); + if ((modifier != NULL) && (strncmp(modifier, NONVIRTUAL, + strlen(NONVIRTUAL)) == 0)) { + if (strncmp(type, BOOLEAN, strlen(type)) == 0) { + strncpy(method_sig, "()Z", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_boolean_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualBooleanMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualBooleanMethod(env, testInstance, testClass, + method); + } + } else if (strncmp(type, BYTE, strlen(type)) == 0) { + strncpy(method_sig, "()B", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_byte_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualByteMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualByteMethod(env, testInstance, testClass, + method); + } + } else if (strncmp(type, CHAR, strlen(type)) == 0) { + strncpy(method_sig, "()C", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_char_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualCharMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualCharMethod(env, testInstance, testClass, + method); + } + } else if (strncmp(type, DOUBLE, strlen(type)) == 0) { + strncpy(method_sig, "()D", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_double_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualDoubleMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualDoubleMethod(env, testInstance, testClass, + method); + } + } else if (strncmp(type, FLOAT, strlen(type)) == 0) { + strncpy(method_sig, "()F", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_float_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualFloatMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualFloatMethod(env, testInstance, testClass, + method); + } + } else if (strncmp(type, INT, strlen(type)) == 0) { + strncpy(method_sig, "()I", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_int_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualIntMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualIntMethod(env, testInstance, testClass, + method); + } + } else if (strncmp(type, LONG, strlen(type)) == 0) { + strncpy(method_sig, "()J", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_long_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualLongMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualLongMethod(env, testInstance, testClass, + method); + } + } else if (strncmp(type, OBJECT, strlen(type)) == 0) { + strncpy(method_sig, "()Ljava/lang/Object;", 21); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_object_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualObjectMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualObjectMethod(env, testInstance, testClass, + method); + } + } else if (strncmp(type, SHORT, strlen(type)) == 0) { + strncpy(method_sig, "()S", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_short_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualShortMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualShortMethod(env, testInstance, testClass, + method); + } + } else if (strncmp(type, VOID, strlen(type)) == 0) { + strncpy(method_sig, "()V", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + nonvirtual_void_v_wrap(&env, &testInstance, &testClass, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallNonvirtualVoidMethodA(env, testInstance, testClass, + method, NULL); + } else { + (*env)->CallNonvirtualVoidMethod(env, testInstance, testClass, + method); + } + } else { + /* Type not recognized. */ + goto cannot_call; + } + } else { + if (strncmp(type, BOOLEAN, strlen(type)) == 0) { + strncpy(method_sig, "()Z", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + boolean_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallBooleanMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallBooleanMethod(env, testInstance, method); + } + } else if (strncmp(type, BYTE, strlen(type)) == 0) { + strncpy(method_sig, "()B", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + byte_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallByteMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallByteMethod(env, testInstance, method); + } + } else if (strncmp(type, CHAR, strlen(type)) == 0) { + strncpy(method_sig, "()C", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + char_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallCharMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallCharMethod(env, testInstance, method); + } + } else if (strncmp(type, DOUBLE, strlen(type)) == 0) { + strncpy(method_sig, "()D", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + double_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallDoubleMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallDoubleMethod(env, testInstance, method); + } + } else if (strncmp(type, FLOAT, strlen(type)) == 0) { + strncpy(method_sig, "()F", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + float_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallFloatMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallFloatMethod(env, testInstance, method); + } + } else if (strncmp(type, INT, strlen(type)) == 0) { + strncpy(method_sig, "()I", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + int_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallIntMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallIntMethod(env, testInstance, method); + } + } else if (strncmp(type, LONG, strlen(type)) == 0) { + strncpy(method_sig, "()J", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + long_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallLongMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallLongMethod(env, testInstance, method); + } + } else if (strncmp(type, OBJECT, strlen(type)) == 0) { + strncpy(method_sig, "()Ljava/lang/Object;", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + object_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallObjectMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallObjectMethod(env, testInstance, method); + } + } else if (strncmp(type, SHORT, strlen(type)) == 0) { + strncpy(method_sig, "()S", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + short_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallShortMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallShortMethod(env, testInstance, method); + } + } else if (strncmp(type, VOID, strlen(type)) == 0) { + strncpy(method_sig, "()V", MAX_ARG_LEN-1); + jmethodID method = (*env)->GetMethodID(env, testClass, + method_name, method_sig); + if (method == NULL) { + /* Bail out, cannot find method. */ + goto cannot_call; + } + if (safe_arg[arg_len - 1] == 'V') { + void_v_wrap(&env, &testInstance, &method); + } else if (safe_arg[arg_len - 1] == 'A') { + (*env)->CallVoidMethodA(env, testInstance, method, NULL); + } else { + (*env)->CallVoidMethod(env, testInstance, method); + } + } else { + /* Type not recognized. */ + goto cannot_call; + } + } + } +cannot_call: + if (type != NULL) { + free(type); + type = NULL; + } + if (modifier != NULL) { + free(modifier); + modifier = NULL; + } + if (method_sig != NULL) { + free(method_sig); + method_sig = NULL; + } + if (method_name != NULL) { + free(method_name); + method_name = NULL; + } + } else if ((strncmp(safe_arg, GET, strlen(GET)) == 0) || + (strncmp(safe_arg, NEW, strlen(NEW)) == 0) || + (strncmp(safe_arg, SET, strlen(SET)) == 0) || + (strncmp(safe_arg, RELEASE, strlen(RELEASE)) == 0)) { + char* type; + char* modifier; + char* field_name = malloc(MAX_ARG_LEN); + char* field_sig = malloc(MAX_ARG_LEN); + if ((field_name == NULL) || (field_sig == NULL)) { + goto done_or_error; + } + int rval; + if (strncmp(safe_arg, RELEASE, strlen(RELEASE)) == 0) { + rval = get_type_and_modifier(safe_arg+7, &type, &modifier); + } else { + rval = get_type_and_modifier(safe_arg+3, &type, &modifier); + } + if (rval == -1) { + goto done_or_error; + } + jboolean check_static = JNI_FALSE; + jboolean check_boolean = JNI_FALSE; + jboolean check_byte = JNI_FALSE; + jboolean check_char = JNI_FALSE; + jboolean check_double = JNI_FALSE; + jboolean check_float = JNI_FALSE; + jboolean check_int = JNI_FALSE; + jboolean check_long = JNI_FALSE; + jboolean check_object = JNI_FALSE; + jboolean check_short = JNI_FALSE; + jboolean check_field = is_field_op(safe_arg); + jboolean check_array = is_array_op(safe_arg); + if (strncmp(type, BOOLEAN, strlen(type)) == 0) { + check_boolean = JNI_TRUE; + snprintf(field_sig, MAX_ARG_LEN-1, "Z"); + } else if (strncmp(type, BYTE, strlen(type)) == 0) { + check_byte = JNI_TRUE; + snprintf(field_sig, MAX_ARG_LEN-1, "B"); + } else if (strncmp(type, CHAR, strlen(type)) == 0) { + check_char = JNI_TRUE; + snprintf(field_sig, MAX_ARG_LEN-1, "C"); + } else if (strncmp(type, DOUBLE, strlen(type)) == 0) { + check_double = JNI_TRUE; + snprintf(field_sig, MAX_ARG_LEN-1, "D"); + } else if (strncmp(type, FLOAT, strlen(type)) == 0) { + check_float = JNI_TRUE; + snprintf(field_sig, MAX_ARG_LEN-1, "F"); + } else if (strncmp(type, INT, strlen(type)) == 0) { + check_int = JNI_TRUE; + snprintf(field_sig, MAX_ARG_LEN-1, "I"); + } else if (strncmp(type, LONG, strlen(type)) == 0) { + check_long = JNI_TRUE; + snprintf(field_sig, MAX_ARG_LEN-1, "J"); + } else if (strncmp(type, OBJECT, strlen(type)) == 0) { + check_object = JNI_TRUE; + snprintf(field_sig, MAX_ARG_LEN-1, "Ljava/lang/String;"); + } else if (strncmp(type, SHORT, strlen(type)) == 0) { + check_short = JNI_TRUE; + snprintf(field_sig, MAX_ARG_LEN-1, "S"); + } else { + goto done_or_error; + } + if (modifier == NULL) { + snprintf(field_name, MAX_ARG_LEN-1, "my%s", type); + } else { + if (strncmp(modifier, STATIC, strlen(modifier)) == 0) { + check_static = JNI_TRUE; + snprintf(field_name, MAX_ARG_LEN-1, "my%s%s", modifier, type); + } else { + goto done_or_error; + } + } + if ((check_static == JNI_FALSE) && + (strncmp(safe_arg, GET, strlen(GET)) == 0)) { + /* GetField() functions are optimized by default, + * bypassing the probe locations. + */ + JavaVMOption options[1]; + options[0].optionString = "-XX:-UseFastJNIAccessors"; + JavaVMInitArgs vm_args; + vm_args.version = JNI_VERSION_1_6; + vm_args.nOptions = 1; + vm_args.options = options; + jint created = create_java_vm_wrap(&vm_args); + if (created != 0) { + exit(-1); + } + } else { + jint created = create_java_vm_wrap(NULL); + if (created != 0) { + exit(-1); + } + } + if (check_field == JNI_TRUE) { + /* Field */ + jclass testClass = (*env)->FindClass(env, TEST_CLASS); + if (testClass == NULL) { + /* Bail out, cannot find class. */ + goto done_or_error; + } + jobject testInstance = NULL; + jfieldID theFieldID = NULL; + if (check_static == JNI_TRUE) { + theFieldID = (*env)->GetStaticFieldID(env, testClass, field_name, + field_sig); + } else { + jmethodID constructor = (*env)->GetMethodID(env, testClass, + "", "()V"); + if (constructor == NULL) { + /* Bail out, cannot find constructor. */ + goto done_or_error; + } + testInstance = (*env)->NewObject(env, testClass, constructor); + if (testInstance == NULL) { + /* Bail out, cannot create object. */ + goto done_or_error; + } + theFieldID = (*env)->GetFieldID(env, testClass, field_name, field_sig); + } + if (theFieldID == NULL) { + /* Bail out, cannot access field. */ + goto done_or_error; + } + if (check_boolean == JNI_TRUE) { + if (strncmp(safe_arg, GET, strlen(GET)) == 0) { + if (check_static == JNI_TRUE) { + jboolean aBool = (*env)->GetStaticBooleanField(env, testClass, + theFieldID); + } else { + jboolean aBool = (*env)->GetBooleanField(env, testInstance, + theFieldID); + } + } else if (strncmp(safe_arg, SET, strlen(SET)) == 0) { + jboolean aBool = JNI_TRUE; + if (check_static == JNI_TRUE) { + (*env)->SetStaticBooleanField(env, testClass, theFieldID, aBool); + } else { + (*env)->SetBooleanField(env, testInstance, theFieldID, aBool); + } + } + } else if (check_byte == JNI_TRUE) { + if (strncmp(safe_arg, GET, strlen(GET)) == 0) { + if (check_static == JNI_TRUE) { + jbyte aByte = (*env)->GetStaticByteField(env, testClass, + theFieldID); + } else { + jbyte aByte = (*env)->GetByteField(env, testInstance, theFieldID); + } + } else if (strncmp(safe_arg, SET, strlen(SET)) == 0) { + jbyte aByte = (jbyte) 2; + if (check_static == JNI_TRUE) { + (*env)->SetStaticByteField(env, testClass, theFieldID, aByte); + } else { + (*env)->SetByteField(env, testInstance, theFieldID, aByte); + } + } + } else if (check_char == JNI_TRUE) { + if (strncmp(safe_arg, GET, strlen(GET)) == 0) { + if (check_static == JNI_TRUE) { + jchar aChar = (*env)->GetStaticCharField(env, testClass, + theFieldID); + } else { + jchar aChar = (*env)->GetCharField(env, testInstance, theFieldID); + } + } else if (strncmp(safe_arg, SET, strlen(SET)) == 0) { + jchar aChar = 'A'; + if (check_static == JNI_TRUE) { + (*env)->SetStaticCharField(env, testClass, theFieldID, aChar); + } else { + (*env)->SetCharField(env, testInstance, theFieldID, aChar); + } + } + } else if (check_double == JNI_TRUE) { + if (strncmp(safe_arg, GET, strlen(GET)) == 0) { + if (check_static == JNI_TRUE) { + jdouble aDouble = (*env)->GetStaticDoubleField(env, testClass, + theFieldID); + } else { + jdouble aDouble = (*env)->GetDoubleField(env, testInstance, + theFieldID); + } + } else if (strncmp(safe_arg, SET, strlen(SET)) == 0) { + jdouble aDouble = (jdouble) 2.5; + if (check_static == JNI_TRUE) { + (*env)->SetStaticDoubleField(env, testClass, theFieldID, aDouble); + } else { + (*env)->SetDoubleField(env, testInstance, theFieldID, aDouble); + } + } + } else if (check_float == JNI_TRUE) { + if (strncmp(safe_arg, GET, strlen(GET)) == 0) { + if (check_static == JNI_TRUE) { + jfloat aFloat = (*env)->GetStaticFloatField(env, testClass, + theFieldID); + } else { + jfloat aFloat = (*env)->GetFloatField(env, testInstance, + theFieldID); + } + } else if (strncmp(safe_arg, SET, strlen(SET)) == 0) { + jfloat aFloat = (jfloat) 3.5; + if (check_static == JNI_TRUE) { + (*env)->SetStaticFloatField(env, testClass, theFieldID, aFloat); + } else { + (*env)->SetFloatField(env, testInstance, theFieldID, aFloat); + } + } + } else if (check_int == JNI_TRUE) { + if (strncmp(safe_arg, GET, strlen(GET)) == 0) { + if (check_static == JNI_TRUE) { + jint aInt = (*env)->GetStaticIntField(env, testClass, theFieldID); + } else { + jint aInt = (*env)->GetIntField(env, testInstance, theFieldID); + } + } else if (strncmp(safe_arg, SET, strlen(SET)) == 0) { + jint aInt = (jint) 7; + if (check_static == JNI_TRUE) { + (*env)->SetStaticIntField(env, testClass, theFieldID, aInt); + } else { + (*env)->SetIntField(env, testInstance, theFieldID, aInt); + } + } + } else if (check_long == JNI_TRUE) { + if (strncmp(safe_arg, GET, strlen(GET)) == 0) { + if (check_static == JNI_TRUE) { + jlong aLong = (*env)->GetStaticLongField(env, testClass, + theFieldID); + } else { + jlong aLong = (*env)->GetLongField(env, testInstance, theFieldID); + } + } else if (strncmp(safe_arg, SET, strlen(SET)) == 0) { + jlong aLong = (jlong) 13; + if (check_static == JNI_TRUE) { + (*env)->SetStaticLongField(env, testClass, theFieldID, aLong); + } else { + (*env)->SetLongField(env, testInstance, theFieldID, aLong); + } + } + } else if (check_object == JNI_TRUE) { + if (strncmp(safe_arg, GET, strlen(GET)) == 0) { + if (check_static == JNI_TRUE) { + jobject aObject = (*env)->GetStaticObjectField(env, testClass, + theFieldID); + } else { + jobject aObject = (*env)->GetObjectField(env, testInstance, + theFieldID); + } + } else if (strncmp(safe_arg, SET, strlen(SET)) == 0) { + jchar string_chars[4] = + { (jchar) 0x57, (jchar) 0x4F, (jchar) 0x52, (jchar) 0x44 }; + jobject aObject = (jobject) (*env)->NewString(env, string_chars, + (jsize) 4); + if (aObject == NULL) { + goto done_or_error; + } + if (check_static == JNI_TRUE) { + (*env)->SetStaticObjectField(env, testClass, theFieldID, aObject); + } else { + (*env)->SetObjectField(env, testInstance, theFieldID, aObject); + } + } + } else if (check_short == JNI_TRUE) { + if (strncmp(safe_arg, GET, strlen(GET)) == 0) { + if (check_static == JNI_TRUE) { + jshort aShort = (*env)->GetStaticShortField(env, testClass, + theFieldID); + } else { + jshort aShort = (*env)->GetShortField(env, testInstance, + theFieldID); + } + } else if (strncmp(safe_arg, SET, strlen(SET)) == 0) { + jshort aShort = (jshort) 11; + if (check_static == JNI_TRUE) { + (*env)->SetStaticShortField(env, testClass, theFieldID, aShort); + } else { + (*env)->SetShortField(env, testInstance, theFieldID, aShort); + } + } + } + } else if (check_array == JNI_TRUE) { + /* Array */ + if (check_boolean == JNI_TRUE) { + jbooleanArray jboolean_array = (*env)->NewBooleanArray(env, + TEST_ARRAY_LEN); + if (jboolean_array == NULL) { + goto done_or_error; + } + jboolean boolean_array[TEST_ARRAY_LEN] = { JNI_TRUE, JNI_TRUE, JNI_TRUE, + JNI_TRUE, JNI_TRUE }; + (*env)->SetBooleanArrayRegion(env, jboolean_array, 0, TEST_ARRAY_LEN, + boolean_array); + jboolean* boolean_buf = malloc(sizeof(jboolean) * TEST_ARRAY_LEN); + if (boolean_buf == NULL) { + goto done_or_error; + } + (*env)->GetBooleanArrayRegion(env, jboolean_array, 0, TEST_ARRAY_LEN, + boolean_buf); + jboolean* jbool_p = (*env)->GetBooleanArrayElements(env, + jboolean_array, NULL); + if (jbool_p == NULL) { + goto done_or_error; + } + (*env)->ReleaseBooleanArrayElements(env, jboolean_array, jbool_p, + JNI_ABORT); + } else if (check_byte == JNI_TRUE) { + jbyteArray jbyte_array = (*env)->NewByteArray(env, TEST_ARRAY_LEN); + if (jbyte_array == NULL) { + goto done_or_error; + } + jbyte byte_array[TEST_ARRAY_LEN] = { 0, 0, 0, 0, 0 }; + (*env)->SetByteArrayRegion(env, jbyte_array, 0, TEST_ARRAY_LEN, + byte_array); + jbyte* byte_buf = malloc(sizeof(jbyte) * TEST_ARRAY_LEN); + if (byte_buf == NULL) { + goto done_or_error; + } + (*env)->GetByteArrayRegion(env, jbyte_array, 0, TEST_ARRAY_LEN, + byte_buf); + jbyte* jbyte_p = (*env)->GetByteArrayElements(env, + jbyte_array, NULL); + if (jbyte_p == NULL) { + goto done_or_error; + } + (*env)->ReleaseByteArrayElements(env, jbyte_array, jbyte_p, JNI_ABORT); + } else if (check_char == JNI_TRUE) { + jcharArray jchar_array = (*env)->NewCharArray(env, TEST_ARRAY_LEN); + if (jchar_array == NULL) { + goto done_or_error; + } + jchar char_array[TEST_ARRAY_LEN] = { (jchar) 'a', (jchar) 'b', + (jchar) 'c', (jchar) 'd', (jchar) 'e' }; + (*env)->SetCharArrayRegion(env, jchar_array, 0, TEST_ARRAY_LEN, + char_array); + jchar* char_buf = malloc(sizeof(jchar) * TEST_ARRAY_LEN); + if (char_buf == NULL) { + goto done_or_error; + } + (*env)->GetCharArrayRegion(env, jchar_array, 0, TEST_ARRAY_LEN, + char_buf); + jchar* jchar_p = (*env)->GetCharArrayElements(env, jchar_array, NULL); + if (jchar_p == NULL) { + goto done_or_error; + } + (*env)->ReleaseCharArrayElements(env, jchar_array, jchar_p, JNI_ABORT); + } else if (check_double == JNI_TRUE) { + jdoubleArray jdouble_array = (*env)->NewDoubleArray(env, TEST_ARRAY_LEN); + if (jdouble_array == NULL) { + goto done_or_error; + } + jdouble double_array[TEST_ARRAY_LEN] = { (jdouble) 1, (jdouble) 2, + (jdouble) 3, (jdouble) 4, (jdouble) 5 }; + (*env)->SetDoubleArrayRegion(env, jdouble_array, 0, TEST_ARRAY_LEN, + double_array); + jdouble* double_buf = malloc(sizeof(jdouble) * TEST_ARRAY_LEN); + if (double_buf == NULL) { + goto done_or_error; + } + (*env)->GetDoubleArrayRegion(env, jdouble_array, 0, TEST_ARRAY_LEN, + double_buf); + jdouble* jdouble_p = (*env)->GetDoubleArrayElements(env, + jdouble_array, NULL); + if (jdouble_p == NULL) { + goto done_or_error; + } + (*env)->ReleaseDoubleArrayElements(env, jdouble_array, jdouble_p, + JNI_ABORT); + } else if (check_float == JNI_TRUE) { + jfloatArray jfloat_array = (*env)->NewFloatArray(env, TEST_ARRAY_LEN); + if (jfloat_array == NULL) { + goto done_or_error; + } + jfloat float_array[TEST_ARRAY_LEN] = { (jfloat) 2.5, (jfloat) 6.7, + (jfloat) 11.2, (jfloat) 4.8, (jfloat) 8.4 }; + (*env)->SetFloatArrayRegion(env, jfloat_array, 0, TEST_ARRAY_LEN, + float_array); + jfloat* float_buf = malloc(sizeof(jfloat) * TEST_ARRAY_LEN); + if (float_buf == NULL) { + goto done_or_error; + } + (*env)->GetFloatArrayRegion(env, jfloat_array, 0, TEST_ARRAY_LEN, + float_buf); + jfloat* jfloat_p = (*env)->GetFloatArrayElements(env, jfloat_array, + NULL); + if (jfloat_p == NULL) { + goto done_or_error; + } + (*env)->ReleaseFloatArrayElements(env, jfloat_array, jfloat_p, + JNI_ABORT); + } else if (check_int == JNI_TRUE) { + jintArray jint_array = (*env)->NewIntArray(env, TEST_ARRAY_LEN); + if (jint_array == NULL) { + goto done_or_error; + } + jint int_array[TEST_ARRAY_LEN] = { (jint) 1, (jint) 2, (jint) 3, + (jint) 4, (jint) 5 }; + (*env)->SetIntArrayRegion(env, jint_array, 0, TEST_ARRAY_LEN, + int_array); + jint* int_buf = malloc(sizeof(jint) * TEST_ARRAY_LEN); + if (int_buf == NULL) { + goto done_or_error; + } + (*env)->GetIntArrayRegion(env, jint_array, 0, TEST_ARRAY_LEN, int_buf); + jint* jint_p = (*env)->GetIntArrayElements(env, jint_array, NULL); + if (jint_p == NULL) { + goto done_or_error; + } + (*env)->ReleaseIntArrayElements(env, jint_array, jint_p, JNI_ABORT); + } else if (check_long == JNI_TRUE) { + jlongArray jlong_array = (*env)->NewLongArray(env, TEST_ARRAY_LEN); + if (jlong_array == NULL) { + goto done_or_error; + } + jlong long_array[TEST_ARRAY_LEN] = { (jlong) 1, (jlong) 2, (jlong) 3, + (jlong) 4, (jlong) 5 }; + (*env)->SetLongArrayRegion(env, jlong_array, 0, TEST_ARRAY_LEN, + long_array); + jlong* long_buf = malloc(sizeof(jlong) * TEST_ARRAY_LEN); + if (long_buf == NULL) { + goto done_or_error; + } + (*env)->GetLongArrayRegion(env, jlong_array, 0, TEST_ARRAY_LEN, + long_buf); + jlong* jlong_p = (*env)->GetLongArrayElements(env, jlong_array, NULL); + if (jlong_p == NULL) { + goto done_or_error; + } + (*env)->ReleaseLongArrayElements(env, jlong_array, jlong_p, JNI_ABORT); + } else if (check_object == JNI_TRUE) { + jchar string_chars[4] = + { (jchar) 0x57, (jchar) 0x4F, (jchar) 0x52, (jchar) 0x44 }; + jstring aString = (*env)->NewString(env, string_chars, (jsize) 4); + if (aString == NULL) { + goto done_or_error; + } + jclass stringClass = (*env)->GetObjectClass(env, (jobject) aString); + if (stringClass == NULL) { + goto done_or_error; + } + jobjectArray oArray = (*env)->NewObjectArray(env, 5, stringClass, NULL); + if (oArray == NULL) { + goto done_or_error; + } + (*env)->SetObjectArrayElement(env, oArray, 1, (jobject) aString); + if ((*env)->ExceptionCheck(env) == JNI_TRUE) { + goto done_or_error; + } + jobject bString = (*env)->GetObjectArrayElement(env, oArray, 1); + } else if (check_short == JNI_TRUE) { + jshortArray jshort_array = (*env)->NewShortArray(env, TEST_ARRAY_LEN); + if (jshort_array == NULL) { + goto done_or_error; + } + jshort short_array[TEST_ARRAY_LEN] = { (jshort) 1, (jshort) 2, + (jshort) 3, (jshort) 4, (jshort) 5 }; + (*env)->SetShortArrayRegion(env, jshort_array, 0, TEST_ARRAY_LEN, + short_array); + jshort* short_buf = malloc(sizeof(jshort) * TEST_ARRAY_LEN); + if (short_buf == NULL) { + goto done_or_error; + } + (*env)->GetShortArrayRegion(env, jshort_array, 0, TEST_ARRAY_LEN, + short_buf); + jshort* jshort_p = (*env)->GetShortArrayElements(env, jshort_array, + NULL); + if (jshort_p == NULL) { + goto done_or_error; + } + (*env)->ReleaseShortArrayElements(env, jshort_array, jshort_p, + JNI_ABORT); + } + } +done_or_error: + if (type != NULL) { + free(type); + type = NULL; + } + if (modifier != NULL) { + free(modifier); + modifier = NULL; + } + if (field_name != NULL) { + free(field_name); + field_name = NULL; + } + if (field_sig != NULL) { + free(field_sig); + field_sig = NULL; + } + } else { +/* bad_usage("Probe specified not found.");*/ + exit(-1); + } + +/* Goto labels are ugly, but we use one anyways to provide a way to + * jump out of a series of JNI operations if an unsafe operation is reached, + * while still ensuring the JVM gets shut down. + */ +end_vm: + if (safe_arg != NULL) { + free(safe_arg); + safe_arg = NULL; + } + (*jvm)->DestroyJavaVM(jvm); +} + +void bad_usage(char* error_msg) { + fprintf(stderr, "Error: %s\nThis program requires a single argument.\nThe argument should specify a probe alias in the hotspot_jni tapset.\nThese probes aliases are of the form \"hotspot.jni.\".\nThe argument should consist of the .\n", error_msg); +} + +void* run_attach_current_thread(void* style) { + jint r_val; + JavaVM* javavm = NULL; + jsize returned_count = 0; + r_val = JNI_GetCreatedJavaVMs(&javavm, (jsize) 1, &returned_count); + if ((r_val != JNI_OK) || (returned_count < 1)) { + pthread_exit(NULL); + } + struct JavaVMAttachArgs attach_args; + attach_args.version = (jint) JNI_VERSION_1_6; + attach_args.name = "Attached Thread"; + attach_args.group = (jobject) NULL; + JNIEnv *attach_env; + if (*(int*)style == (int) DAEMON) { + r_val = (*javavm)->AttachCurrentThreadAsDaemon(javavm, + (void **) &attach_env, (void *) &attach_args); + } else if (*(int*)style == (int) NOT_DAEMON) { + r_val = (*javavm)->AttachCurrentThread(javavm, + (void **) &attach_env, (void *) &attach_args); + } else { + pthread_exit(NULL); + } + if (r_val != JNI_OK) { + pthread_exit(NULL); + } + (*javavm)->DetachCurrentThread(javavm); + pthread_exit(NULL); +} + +int get_type_and_modifier(char* arg, char** type_p, char** mod_p) { + char* type = arg; + if (strncmp(type, STATIC, strlen(STATIC)) == 0) { + *mod_p = malloc(strlen(STATIC) + 1); + if (*mod_p == NULL) { + *type_p = NULL; + return -1; + } + strncpy(*mod_p, type, strlen(STATIC)); + type += strlen(STATIC); + } else if (strncmp(type, NONVIRTUAL, strlen(NONVIRTUAL)) == 0) { + *mod_p = malloc(strlen(NONVIRTUAL) + 1); + if (*mod_p == NULL) { + *type_p = NULL; + return -1; + } + strncpy(*mod_p, type, strlen(NONVIRTUAL)); + type += strlen(NONVIRTUAL); + } else { + *mod_p = NULL; + } + char* char_after_type = strchr(type, (int) 'M'); + /* 'M' targets "Method" in argument. */ + if (char_after_type == NULL) { + char_after_type = strchr(type, (int) 'A'); + /* 'A' targets "Array" in argument. */ + if (char_after_type == NULL) { + /* 'F' targets "Field" in argument. */ + char_after_type = strrchr(type, (int) 'F'); + } + } + int type_len = char_after_type - type; + if (type_len <= 0) { + /* char_after_type doesn't point at 'M', 'A', or 'F', or the special case + * where it points at the 'F' in "Float". */ + *type_p = NULL; + return -1; + } + *type_p = malloc(type_len + 1); + if (*type_p == NULL) { + return -1; + } + strncpy(*type_p, type, (size_t) type_len); + return 0; +} + +jboolean is_field_op(char* arg) { + char* poss_field = strrchr(arg, (int) 'F'); + if (poss_field != NULL) { + if (strncmp(poss_field, FIELD, strlen(FIELD)) == 0) { + return JNI_TRUE; + } + } + return JNI_FALSE; +} + +jboolean is_array_op(char* arg) { + char* poss_array = strrchr(arg, (int) 'A'); + if (poss_array != NULL) { + if (strncmp(poss_array, ARRAY, strlen(ARRAY)) == 0) { + return JNI_TRUE; + } + } + return JNI_FALSE; +} + +jint create_java_vm_wrap(JavaVMInitArgs* args) { + JavaVMInitArgs def_vm_args; + JavaVMInitArgs* vm_args_p; + if (args == NULL) { + def_vm_args.version = JNI_VERSION_1_6; + def_vm_args.nOptions = 0; + def_vm_args.options = NULL; + vm_args_p = &def_vm_args; + } else { + vm_args_p = args; + } + + return JNI_CreateJavaVM(&jvm, (void **) &env, vm_args_p); +} + +jobject new_object_v_wrap(JNIEnv* env_, jclass* class_p, + jmethodID* construct, ...) { + va_list var_args; + va_start(var_args, construct); + jobject instance = (*env_)->NewObjectV(env_, *class_p, *construct, var_args); + va_end(var_args); + return instance; +} + +jboolean boolean_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jboolean to_return = (**env_p)->CallBooleanMethodV(*env_p, *obj_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jbyte byte_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jbyte to_return = (**env_p)->CallByteMethodV(*env_p, *obj_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jchar char_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jchar to_return = (**env_p)->CallCharMethodV(*env_p, *obj_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jdouble double_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jdouble to_return = (**env_p)->CallDoubleMethodV(*env_p, *obj_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jfloat float_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jfloat to_return = (**env_p)->CallFloatMethodV(*env_p, *obj_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jint int_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jint to_return = (**env_p)->CallIntMethodV(*env_p, *obj_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jlong long_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jlong to_return = (**env_p)->CallLongMethodV(*env_p, *obj_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jobject object_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jobject to_return = (**env_p)->CallObjectMethodV(*env_p, *obj_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jshort short_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jshort to_return = (**env_p)->CallShortMethodV(*env_p, *obj_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +void void_v_wrap(JNIEnv** env_p, jobject* obj_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + (**env_p)->CallVoidMethodV(*env_p, *obj_p, *method_p, var_args); + va_end(var_args); + return; +} + +jboolean nonvirtual_boolean_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jboolean to_return = (**env_p)->CallNonvirtualBooleanMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return to_return; +} +jbyte nonvirtual_byte_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jbyte to_return = (**env_p)->CallNonvirtualByteMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return to_return; +} +jchar nonvirtual_char_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jchar to_return = (**env_p)->CallNonvirtualCharMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return to_return; +} +jdouble nonvirtual_double_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jdouble to_return = (**env_p)->CallNonvirtualDoubleMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return to_return; +} +jfloat nonvirtual_float_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jfloat to_return = (**env_p)->CallNonvirtualFloatMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return to_return; +} +jint nonvirtual_int_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jint to_return = (**env_p)->CallNonvirtualIntMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return to_return; +} +jlong nonvirtual_long_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jlong to_return = (**env_p)->CallNonvirtualLongMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return to_return; +} +jobject nonvirtual_object_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jobject to_return = (**env_p)->CallNonvirtualObjectMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return to_return; +} +jshort nonvirtual_short_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jshort to_return = (**env_p)->CallNonvirtualShortMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return to_return; +} +void nonvirtual_void_v_wrap(JNIEnv** env_p, jobject* obj_p, + jclass* jclass_p, jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + (**env_p)->CallNonvirtualVoidMethodV(*env_p, *obj_p, + *jclass_p, *method_p, var_args); + va_end(var_args); + return; +} + +jboolean static_boolean_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jboolean to_return = (**env_p)->CallStaticBooleanMethodV(*env_p, *jclass_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jbyte static_byte_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jbyte to_return = (**env_p)->CallStaticByteMethodV(*env_p, *jclass_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jchar static_char_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jchar to_return = (**env_p)->CallStaticCharMethodV(*env_p, *jclass_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jdouble static_double_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jdouble to_return = (**env_p)->CallStaticDoubleMethodV(*env_p, *jclass_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jfloat static_float_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jfloat to_return = (**env_p)->CallStaticFloatMethodV(*env_p, *jclass_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jint static_int_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jint to_return = (**env_p)->CallStaticIntMethodV(*env_p, *jclass_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jlong static_long_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jlong to_return = (**env_p)->CallStaticLongMethodV(*env_p, *jclass_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jobject static_object_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jobject to_return = (**env_p)->CallStaticObjectMethodV(*env_p, *jclass_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +jshort static_short_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + jshort to_return = (**env_p)->CallStaticShortMethodV(*env_p, *jclass_p, + *method_p, var_args); + va_end(var_args); + return to_return; +} +void static_void_v_wrap(JNIEnv** env_p, jclass* jclass_p, + jmethodID* method_p, ...) { + va_list var_args; + va_start(var_args, method_p); + (**env_p)->CallStaticVoidMethodV(*env_p, *jclass_p, *method_p, var_args); + va_end(var_args); + return; +} + diff -r 2ec767396557 -r 55b21736fe19 test/tapset/JNITestClass.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/JNITestClass.c Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,7 @@ +#include "jni.h" +#include "JNITestClass.h" + +JNIEXPORT void JNICALL Java_JNITestClass_doNothing + (JNIEnv * env, jobject this) { + return; +} diff -r 2ec767396557 -r 55b21736fe19 test/tapset/JNITestClass.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/JNITestClass.h Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,21 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include "jni.h" +/* Header for class JNITestClass */ + +#ifndef _Included_JNITestClass +#define _Included_JNITestClass +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: JNITestClass + * Method: doNothing + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_JNITestClass_doNothing + (JNIEnv *, jobject); + +#ifdef __cplusplus +} +#endif +#endif diff -r 2ec767396557 -r 55b21736fe19 test/tapset/JNITestClass.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/JNITestClass.java Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,121 @@ +package staptest; + +public class JNITestClass { + public boolean myBoolean; + public byte myByte; + public char myChar; + public double myDouble; + public float myFloat; + public int myInt; + public long myLong; + public String myObject; + public short myShort; + + public static boolean myStaticBoolean = false; + public static byte myStaticByte = 1; + public static char myStaticChar = 'b'; + public static double myStaticDouble = 5.5; + public static float myStaticFloat = (float) 2.75; + public static int myStaticInt = 32; + public static long myStaticLong = 64; + public static String myStaticObject = "aString"; + public static short myStaticShort = 16; + + public JNITestClass() { + myBoolean = true; + myByte = 0; + myChar = 'a'; + myDouble = 1.5; + myFloat = (float) 0.75; + myInt = 4; + myLong = 8; + myObject = "myString"; + myShort = 2; + } + + private native void doNothing(); + + public boolean getBoolean() { + return myBoolean; + } + + public byte getByte() { + return myByte; + } + + public char getChar() { + return myChar; + } + + public double getDouble() { + return myDouble; + } + + public float getFloat() { + return myFloat; + } + + public int getInt() { + return myInt; + } + + public long getLong() { + return myLong; + } + + public Object getObject() { + return (Object) new String(myObject); + } + + public short getShort() { + return myShort; + } + + /* Ridiculous name and useless method, but this removes needing a + * special case for testing CallVoidMethod[A|V] probes. */ + public void getVoid() { + return; + } + + public static boolean getStaticBoolean() { + return myStaticBoolean; + } + + public static byte getStaticByte() { + return myStaticByte; + } + + public static char getStaticChar() { + return myStaticChar; + } + + public static double getStaticDouble() { + return myStaticDouble; + } + + public static float getStaticFloat() { + return myStaticFloat; + } + + public static int getStaticInt() { + return myStaticInt; + } + + public static long getStaticLong() { + return myStaticLong; + } + + public static Object getStaticObject() { + return (Object) new String(myStaticObject); + } + + public static short getStaticShort() { + return myStaticShort; + } + + /* Ridiculous name and useless method, but this removes needing a + * special case for testing CallStaticVoidMethod[A|V] probes. */ + public static void getStaticVoid() { + return; + } +} diff -r 2ec767396557 -r 55b21736fe19 test/tapset/RunWrapper.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/RunWrapper.java Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,21 @@ +package staptest; + +import java.lang.reflect.Method; + +public class RunWrapper { + public static void main(String[] args) { + if (args.length >= 1) { + try { + Class mainClass = RunWrapper.class. + getClassLoader().loadClass(args[0]); + Class[] types = new Class[] { args.getClass() }; + Method main = mainClass.getDeclaredMethod( + "main", types); + String[] runArgs = new String[args.length-1]; + System.arraycopy(args, 1, runArgs, 0, + runArgs.length); + main.invoke(null, new Object[] { runArgs }); + } catch (Exception ignore) {} + } + } +} diff -r 2ec767396557 -r 55b21736fe19 test/tapset/StapJNIClassLoader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/StapJNIClassLoader.java Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,64 @@ +package staptest; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.IOException; + +/* Loads classes only in default package in working directory, must be + * under 4096 bytes. Intentionally breaks classloader hierarchy. + */ +public class StapJNIClassLoader extends ClassLoader { + + public StapJNIClassLoader() { + super(); + } + + public StapJNIClassLoader(ClassLoader parent) { + super(parent); + } + + private static final int BUF_LEN = 4096; + + protected synchronized Class loadClass(String className, + boolean resolve) throws ClassNotFoundException { + Class aClass = findLoadedClass(className); + + if (aClass != null) { + return aClass; + } + + String fileName = className.replace('.', '/').concat(".class"); + byte[] classBytes = null; + try { + InputStream classIn = getResourceAsStream(fileName); + byte[] buffer = new byte[BUF_LEN]; + ByteArrayOutputStream temp = new ByteArrayOutputStream(); + int bytes_read = -1; + while ((bytes_read = classIn.read(buffer, 0, BUF_LEN)) != -1) { + temp.write(buffer, 0, bytes_read); + } + classBytes = temp.toByteArray(); + } catch (IOException ignore) { + // Possible error condition(s) resulting from thrown + // exception checked after. + } + + if (classBytes == null) { + throw new ClassNotFoundException("Could not load class: " + className); + } + + try { + aClass = defineClass(className, classBytes, 0, classBytes.length); + if (aClass == null) { + System.out.println("Gaah!"); + } + if (resolve) { + resolveClass(aClass); + } + } catch (SecurityException ex) { + aClass = super.loadClass(className, resolve); + } + + return aClass; + } +} diff -r 2ec767396557 -r 55b21736fe19 test/tapset/StapURLClassLoader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/StapURLClassLoader.java Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,24 @@ +package staptest; + +import java.io.File; +import java.net.URL; +import java.net.URLClassLoader; + +/* Let superclass handle everything, we just need a separate Classloader that + * will be unloaded (along with classes and their associated hot-compiled + * methods) while testing the hotspot.compiled_method_unload probe. + */ +public class StapURLClassLoader extends URLClassLoader { + public StapURLClassLoader(URL[] urls, ClassLoader parent) { + super(urls, parent); + } + + public Class loadClass(String name) throws ClassNotFoundException { + return super.loadClass(name); + } + + protected Class findClass(String name) throws ClassNotFoundException { + return super.findClass(name); + } +} + diff -r 2ec767396557 -r 55b21736fe19 test/tapset/SystemtapTester.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/SystemtapTester.java Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,202 @@ +package staptest; + +import java.io.File; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; + +public class SystemtapTester { + static String throwAwayString; + public static void main(String[] args) { + SystemtapTester tester = new SystemtapTester(); + throwAwayString = (args.length < 1 ? "NOTHING" + : ("ARG: " + args[0])); + System.out.println(throwAwayString); + if (args.length < 1) { + System.exit(1); + } else if (args[0].equals("vm_init_begin") || + args[0].equals("vm_init_end") || + args[0].equals("vm_shutdown") || + args[0].equals("object_alloc") || + args[0].equals("method_entry") || + args[0].equals("method_return")) { + // In this case, hotspot has already triggered these + // probes (or will shortly). No need to continue. + System.exit(0); + } else if (args[0].equals("gc_begin") || + args[0].equals("gc_end") || + args[0].equals("mem_pool_gc_begin") || + args[0].equals("mem_pool_gc_end")) { + tester.triggerGarbageCollect(); + } else if (args[0].equals("method_compile_begin") || + args[0].equals("method_compile_end") || + args[0].equals("compiled_method_load")) { + tester.triggerCompileMethod(); + // The jit compiler might be working in the background + // wait a little to make sure it is finished. Then + // repeat the test with a "hot jit". + try { + Thread.sleep(1000); + } catch (InterruptedException ie) { } + tester.triggerCompileMethod(); + } else if (args[0].equals("compiled_method_unload")) { + tester.triggerUnloadMethod(); + // The jit compiler might be working in the background + // wait a little to make sure it is finished. Then + // repeat the test with a "hot jit". + try { + Thread.sleep(1000); + } catch (InterruptedException ie) { } + tester.triggerUnloadMethod(); + } else if (args[0].equals("thread_start") || + args[0].equals("thread_stop")) { + tester.triggerThread(); + } else if (args[0].equals("class_loaded") || + args[0].equals("class_unloaded")) { + tester.triggerClassLoader(); + tester.triggerGarbageCollect(); + } else if (args[0].equals("monitor_contended_enter") || + args[0].equals("monitor_contended_entered") || + args[0].equals("monitor_contended_exit")) { + tester.triggerContended(); + } else if (args[0].equals("monitor_wait") || + args[0].equals("monitor_waited") || + args[0].equals("monitor_notify")) { + tester.triggerWait(TestingRunner.NOTIFY); + } else if (args[0].equals("monitor_notifyAll")) { + tester.triggerWait(TestingRunner.NOTIFYALL); + } + System.out.println(throwAwayString); + } + + public void triggerGarbageCollect() { + for (int i = 0; i < 1000; i++) { + throwAwayString = allocateForNoReason(i); + } + forceGarbageCollect(); + } + + public void triggerThread() { + Thread basicThread = new Thread( + new TestingRunner(TestingRunner.NOOP)); + basicThread.start(); + while (basicThread.isAlive()) { + try { + basicThread.join(); + } catch (Exception ignore) {} + } + } + + public void triggerCompileMethod() { + for (int i = 0; i < 105; i++) { + Integer iobj = new Integer(i); + throwAwayString = triggerCompileMethodLoop(iobj); + } + } + + public String triggerCompileMethodLoop(Integer iobj) { + for (int i = 0; i < 105; i++) { + throwAwayString = allocateForNoReason(iobj.intValue()); + } + return throwAwayString; + } + + public void triggerUnloadMethod() { + try { + ClassLoader base = ClassLoader.getSystemClassLoader(); + URL[] urls; + if (base instanceof URLClassLoader) { + urls = ((URLClassLoader) base).getURLs(); + } else { + urls = new URL[] { + new File(".").toURI().toURL() }; + } + StapURLClassLoader loader = new StapURLClassLoader( + urls, base.getParent()); + Class runClass = loader.loadClass("staptest.RunWrapper"); + String[] aargs = new String[] { "staptest.RunWrapper", + "staptest.ClassUnloadedProbeTester"}; + Class[] argTypes = new Class[] { aargs.getClass() }; + Method main = runClass.getDeclaredMethod("main", argTypes); + String[] bargs = new String[1]; + bargs[0] = new String(aargs[1]); + Thread.currentThread().setContextClassLoader(loader); + main.invoke(null, new Object[] { bargs }); + Thread.currentThread().setContextClassLoader(base); + loader = null; + runClass = null; + } catch (Exception ex) { + ex.printStackTrace(); + } + triggerGarbageCollect(); + } + + public void triggerClassLoader() { + ThreadGroup aThreadGroup = new ThreadGroup("CustomClassLoadingThreadGroup"); + Thread classLoadingThread = new Thread(aThreadGroup, + new TestingRunner(TestingRunner.LOADER)); + classLoadingThread.start(); + while (classLoadingThread.isAlive()) { + try { + classLoadingThread.join(); + } catch (Exception ignore) {} + } + aThreadGroup.destroy(); + } + + public void triggerContended() { + Thread contendThread1 = + new Thread(new TestingRunner(TestingRunner.CONTENDER)); + Thread contendThread2 = + new Thread(new TestingRunner(TestingRunner.CONTENDER)); + contendThread1.start(); + contendThread2.start(); + while (contendThread1.isAlive() || contendThread2.isAlive()) { + try { + contendThread1.join(); + contendThread2.join(); + } catch (Exception ignore) {} + } + } + + public void triggerWait(int whichNotify) { + TestingRunner myRunner = new TestingRunner(whichNotify); + Thread target = new Thread(myRunner); + synchronized (myRunner) { + target.start(); + try { + myRunner.wait(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + while (target.isAlive()) { + try { + target.join(); + } catch (Exception ignore) { + } + } + } + + private void forceGarbageCollect() { + Runtime rt = Runtime.getRuntime(); + long memFree = rt.freeMemory(); + long beginTime = System.currentTimeMillis(); + long currentTime = beginTime; + do { + rt.gc(); + try { + Thread.sleep(1000); + } catch (Exception ignore) {} + currentTime = System.currentTimeMillis(); + } while ((memFree <= rt.freeMemory()) && + ((currentTime - beginTime) < 5000)); + } + + String allocateForNoReason(int i) { + String aString = new String("sometextinastring" + i); + return aString; + } + +} + diff -r 2ec767396557 -r 55b21736fe19 test/tapset/TestingRunner.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/TestingRunner.java Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,82 @@ +package staptest; + +import java.io.File; +import java.net.URL; +import java.net.URLClassLoader; + +public class TestingRunner implements Runnable { + public static int NOOP = 0; + public static int LOADER = 1; + public static int CONTENDER = 2; + public static int NOTIFY = 3; + public static int NOTIFYALL = 4; + + private int myType; + + public TestingRunner(int type) { + myType = type; + } + + public void run() { + if (myType == LOADER) { + doLoadClass(); + } else if (myType == CONTENDER) { + doSynchronized(); + } else if (myType == NOTIFY) { + doNotify(); + } else if (myType == NOTIFYALL) { + doNotifyAll(); + } + } + + private void doLoadClass() { + /* We really just want to load the class and then let it + * get garbage collected. + */ + try { + ClassLoader base = ClassLoader.getSystemClassLoader(); + URL[] urls; + if (base instanceof URLClassLoader) { + urls = ((URLClassLoader) base).getURLs(); + } else { + urls = new URL[] { + new File(".").toURI().toURL() }; + } + StapURLClassLoader loader = new StapURLClassLoader( + urls, base.getParent()); + Class testClass = Class.forName("staptest.ClassUnloadedProbeTester", true, loader); + testClass = null; + loader = null; + } catch (Exception ignore) { + ignore.printStackTrace(); + } + } + + private void doNotify() { + synchronized (this) { + waitFiveSeconds(); + notify(); + } + } + + private void doNotifyAll() { + synchronized (this) { + waitFiveSeconds(); + notifyAll(); + } + } + + private static synchronized void doSynchronized() { + int anInt = 5; + for (int i = 0; i < 10; i++) { + anInt += i; + } + waitFiveSeconds(); + } + + private static void waitFiveSeconds() { + try { + Thread.sleep(5000); + } catch (Exception ignore) {} + } +} diff -r 2ec767396557 -r 55b21736fe19 test/tapset/jstaptest.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tapset/jstaptest.pl Fri Mar 23 14:11:00 2012 +0100 @@ -0,0 +1,954 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Config; +# For log file. +use File::Basename; +use File::Path; +my $log_file; +my $logfile_name; + +# For parsing options. +use Getopt::Std; +$Getopt::Std::OUTPUT_HELP_VERSION = 1; +# sub main::HELP_MESSAGE defined below. +our($opt_B, $opt_A, $opt_o, $opt_a, $opt_S, $opt_J); + +# Gigantic nested array. +# Each element in outer array should be of the form: +# ["", "", ""] +# NAME is the name of a probe alias. +# PRINTARG is a (quoted, escaped) format string along with additional variable +# arguments, separated by commas, that will be inserted as the arguments to +# a printf() call in a systemtap script. +# TARGET is the expected output of the probe firing in a test, or (where exact +# output is not known) a matching regex. +my @probestrings = (["hotspot.gc_begin", "\"%s\\n\",name", "^gc_begin\$"], + ["hotspot.gc_end", "\"%s\\n\",name", "^gc_end\$"], + ["hotspot.mem_pool_gc_begin", "\"%s\\n\",name", "^mem_pool_gc_begin\$"], + ["hotspot.mem_pool_gc_end", "\"%s\\n\",name", "^mem_pool_gc_end\$"], + ["hotspot.object_alloc", "\"%stid=%dclass=%s\\n\",name,thread_id,class", "^object_alloctid=1class=staptest/SystemtapTester\$"], + ["hotspot.vm_init_begin", "\"%s\\n\",name", "^vm_init_begin\$"], + ["hotspot.vm_init_end", "\"%s\\n\",name", "^vm_init_end\$"], + ["hotspot.vm_shutdown", "\"%s\\n\",name", "^vm_shutdown\$"], + ["hotspot.thread_start", "\"%sname=%stid=%dd=%d\\n\",name,thread_name,id,is_daemon", "^thread_startname=Thread-0tid=8d=0\$"], + ["hotspot.thread_stop", "\"%sname=%stid=%dd=%d\\n\",name,thread_name,id,is_daemon", "^thread_stopname=Thread-0tid=8d=0\$"], + ["hotspot.class_loaded", "\"%sclass=%ssh=%d\\n\",name,class,is_shared", "class_loadedclass=staptest/ClassUnloadedProbeTestersh=0"], + ["hotspot.class_unloaded", "\"%sclass=%ssh=%d\\n\",name,class,is_shared", "class_unloadedclass=staptest/ClassUnloadedProbeTestersh=0"], + ["hotspot.method_compile_begin", "\"%sclass=%smethod=%ssig=%s\\n\",name,class,method,sig", "method_compile_beginclass=staptest/SystemtapTestermethod=allocateForNoReasonsig=(I)Ljava/lang/String;"], + ["hotspot.method_compile_end", "\"%sclass=%smethod=%ssig=%s\\n\",name,class,method,sig", "method_compile_endclass=staptest/SystemtapTestermethod=allocateForNoReasonsig=(I)Ljava/lang/String;"], + ["hotspot.monitor_wait", "\"%sclass=%sto=%d\\n\",name,class,timeout", "monitor_waitclass=staptest/TestingRunnerto=0"], + ["hotspot.monitor_waited", "\"%sclass=%s\\n\",name,class", "monitor_waitedclass=staptest/TestingRunner"], + ["hotspot.monitor_notify", "\"%sclass=%s\\n\",name,class", "monitor_notifyclass=staptest/TestingRunner"], + ["hotspot.monitor_notifyAll", "\"%sclass=%s\\n\",name,class", "monitor_notifyAllclass=staptest/TestingRunner"], + ["hotspot.monitor_contended_enter", "\"%sclass=%s\\n\",name,class", "monitor_contended_enterclass=java/lang/Class"], + ["hotspot.monitor_contended_entered", "\"%sclass=%s\\n\",name,class", "monitor_contended_enteredclass=java/lang/Class"], + ["hotspot.monitor_contended_exit", "\"%sclass=%s\\n\",name,class", "monitor_contended_exitclass=java/lang/Class"], + ["hotspot.method_entry", "\"%sclass=%smethod=%ssig=%s\\n\",name,class,method,sig", "method_entryclass=staptest/SystemtapTestermethod=sig=()V"], + ["hotspot.method_return", "\"%sclass=%smethod=%ssig=%s\\n\",name,class,method,sig", "method_returnclass=staptest/SystemtapTestermethod=sig=()V"], + ["hotspot.compiled_method_load", "\"%sclass=%smethod=%ssig=%s\\n\",name,class,method,sig", "compiled_method_loadclass=staptest/SystemtapTestermethod=allocateForNoReasonsig=(I)Ljava/lang/String;"], + ["hotspot.compiled_method_unload", "\"%sclass=%smethod=%ssig=%s\\n\",name,class,method,sig", "compiled_method_unloadclass=staptest/ClassUnloadedProbeTestermethod=setFieldsig=(I)V"], + ["hotspot.jni.AllocObject", "\"%s\\n\",name", "AllocObject"], + ["hotspot.jni.AllocObject.return", "\"%sret=%d\\n\",name,ret", "AllocObjectret=[^0]"], + ["hotspot.jni.AttachCurrentThreadAsDaemon", "\"%s\\n\",name", "AttachCurrentThreadAsDaemon"], + ["hotspot.jni.AttachCurrentThreadAsDaemon.return", "\"%sret=%d\\n\",name,ret", "AttachCurrentThreadAsDaemonret=0"], + ["hotspot.jni.AttachCurrentThread", "\"%s\\n\",name", "AttachCurrentThread"], + ["hotspot.jni.AttachCurrentThread.return", "\"%sret=%d\\n\",name,ret", "AttachCurrentThreadret=0"], + ["hotspot.jni.CallBooleanMethodA", "\"%s\\n\",name", "CallBooleanMethodA"], + ["hotspot.jni.CallBooleanMethodA.return", "\"%sret=%d\\n\",name,ret", "CallBooleanMethodAret=1"], + ["hotspot.jni.CallBooleanMethod", "\"%s\\n\",name", "CallBooleanMethod"], + ["hotspot.jni.CallBooleanMethod.return", "\"%sret=%d\\n\",name,ret", "CallBooleanMethodret=1"], + ["hotspot.jni.CallBooleanMethodV", "\"%s\\n\",name", "CallBooleanMethodV"], + ["hotspot.jni.CallBooleanMethodV.return", "\"%sret=%d\\n\",name,ret", "CallBooleanMethodVret=1"], + ["hotspot.jni.CallByteMethodA", "\"%s\\n\",name", "CallByteMethodA"], + ["hotspot.jni.CallByteMethodA.return", "\"%sret=%d\\n\",name,ret", "CallByteMethodAret=0"], + ["hotspot.jni.CallByteMethod", "\"%s\\n\",name", "CallByteMethod"], + ["hotspot.jni.CallByteMethod.return", "\"%sret=%d\\n\",name,ret", "CallByteMethodret=0"], + ["hotspot.jni.CallByteMethodV", "\"%s\\n\",name", "CallByteMethodV"], + ["hotspot.jni.CallByteMethodV.return", "\"%sret=%d\\n\",name,ret", "CallByteMethodVret=0"], + ["hotspot.jni.CallCharMethodA", "\"%s\\n\",name", "CallCharMethodA"], + ["hotspot.jni.CallCharMethodA.return", "\"%sret=%d\\n\",name,ret", "CallCharMethodAret=97"], + ["hotspot.jni.CallCharMethod", "\"%s\\n\",name", "CallCharMethod"], + ["hotspot.jni.CallCharMethod.return", "\"%sret=%d\\n\",name,ret", "CallCharMethodret=97"], + ["hotspot.jni.CallCharMethodV", "\"%s\\n\",name", "CallCharMethodV"], + ["hotspot.jni.CallCharMethodV.return", "\"%sret=%d\\n\",name,ret", "CallCharMethodVret=97"], + ["hotspot.jni.CallDoubleMethodA", "\"%s\\n\",name", "CallDoubleMethodA"], + ["hotspot.jni.CallDoubleMethodA.return", "\"%s\\n\",name", "CallDoubleMethodA"], + ["hotspot.jni.CallDoubleMethod", "\"%s\\n\",name", "CallDoubleMethod"], + ["hotspot.jni.CallDoubleMethod.return", "\"%s\\n\",name", "CallDoubleMethod"], + ["hotspot.jni.CallDoubleMethodV", "\"%s\\n\",name", "CallDoubleMethodV"], + ["hotspot.jni.CallDoubleMethodV.return", "\"%s\\n\",name", "CallDoubleMethodV"], + ["hotspot.jni.CallFloatMethodA", "\"%s\\n\",name", "CallFloatMethodA"], + ["hotspot.jni.CallFloatMethodA.return", "\"%s\\n\",name", "CallFloatMethodA"], + ["hotspot.jni.CallFloatMethod", "\"%s\\n\",name", "CallFloatMethod"], + ["hotspot.jni.CallFloatMethod.return", "\"%s\\n\",name", "CallFloatMethod"], + ["hotspot.jni.CallFloatMethodV", "\"%s\\n\",name", "CallFloatMethodV"], + ["hotspot.jni.CallFloatMethodV.return", "\"%s\\n\",name", "CallFloatMethodV"], + ["hotspot.jni.CallIntMethodA", "\"%s\\n\",name", "CallIntMethodA"], + ["hotspot.jni.CallIntMethodA.return", "\"%sret=%d\\n\",name,ret", "CallIntMethodAret=4"], + ["hotspot.jni.CallIntMethod", "\"%s\\n\",name", "CallIntMethod"], + ["hotspot.jni.CallIntMethod.return", "\"%sret=%d\\n\",name,ret", "CallIntMethodret=4"], + ["hotspot.jni.CallIntMethodV", "\"%s\\n\",name", "CallIntMethodV"], + ["hotspot.jni.CallIntMethodV.return", "\"%sret=%d\\n\",name,ret", "CallIntMethodVret=4"], + ["hotspot.jni.CallLongMethodA", "\"%s\\n\",name", "CallLongMethodA"], + ["hotspot.jni.CallLongMethodA.return", "\"%sret=%d\\n\",name,ret", "CallLongMethodAret=8"], + ["hotspot.jni.CallLongMethod", "\"%s\\n\",name", "CallLongMethod"], + ["hotspot.jni.CallLongMethod.return", "\"%sret=%d\\n\",name,ret", "CallLongMethodret=8"], + ["hotspot.jni.CallLongMethodV", "\"%s\\n\",name", "CallLongMethodV"], + ["hotspot.jni.CallLongMethodV.return", "\"%sret=%d\\n\",name,ret", "CallLongMethodVret=8"], + ["hotspot.jni.CallObjectMethodA", "\"%s\\n\",name", "CallObjectMethodA"], + ["hotspot.jni.CallObjectMethodA.return", "\"%s\\n\",name", "CallObjectMethodA"], + ["hotspot.jni.CallObjectMethod", "\"%s\\n\",name", "CallObjectMethod"], + ["hotspot.jni.CallObjectMethod.return", "\"%s\\n\",name", "CallObjectMethod"], + ["hotspot.jni.CallObjectMethodV", "\"%s\\n\",name", "CallObjectMethodV"], + ["hotspot.jni.CallObjectMethodV.return", "\"%s\\n\",name", "CallObjectMethodV"], + ["hotspot.jni.CallShortMethodA", "\"%s\\n\",name", "CallShortMethodA"], + ["hotspot.jni.CallShortMethodA.return", "\"%sret=%d\\n\",name,ret", "CallShortMethodAret=2"], + ["hotspot.jni.CallShortMethod", "\"%s\\n\",name", "CallShortMethod"], + ["hotspot.jni.CallShortMethod.return", "\"%sret=%d\\n\",name,ret", "CallShortMethodret=2"], + ["hotspot.jni.CallShortMethodV", "\"%s\\n\",name", "CallShortMethodV"], + ["hotspot.jni.CallShortMethodV.return", "\"%sret=%d\\n\",name,ret", "CallShortMethodVret=2"], + ["hotspot.jni.CallVoidMethodA", "\"%s\\n\",name", "CallVoidMethodA"], + ["hotspot.jni.CallVoidMethodA.return", "\"%s\\n\",name", "CallVoidMethodA"], + ["hotspot.jni.CallVoidMethod", "\"%s\\n\",name", "CallVoidMethod"], + ["hotspot.jni.CallVoidMethod.return", "\"%s\\n\",name", "CallVoidMethod"], + ["hotspot.jni.CallVoidMethodV", "\"%s\\n\",name", "CallVoidMethodV"], + ["hotspot.jni.CallVoidMethodV.return", "\"%s\\n\",name", "CallVoidMethodV"], + ["hotspot.jni.CallNonvirtualBooleanMethodA", "\"%s\\n\",name", "CallNonvirtualBooleanMethodA"], + ["hotspot.jni.CallNonvirtualBooleanMethodA.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualBooleanMethodAret=1"], + ["hotspot.jni.CallNonvirtualBooleanMethod", "\"%s\\n\",name", "CallNonvirtualBooleanMethod"], + ["hotspot.jni.CallNonvirtualBooleanMethod.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualBooleanMethodret=1"], + ["hotspot.jni.CallNonvirtualBooleanMethodV", "\"%s\\n\",name", "CallNonvirtualBooleanMethodV"], + ["hotspot.jni.CallNonvirtualBooleanMethodV.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualBooleanMethodVret=1"], + ["hotspot.jni.CallNonvirtualByteMethodA", "\"%s\\n\",name", "CallNonvirtualByteMethodA"], + ["hotspot.jni.CallNonvirtualByteMethodA.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualByteMethodAret=0"], + ["hotspot.jni.CallNonvirtualByteMethod", "\"%s\\n\",name", "CallNonvirtualByteMethod"], + ["hotspot.jni.CallNonvirtualByteMethod.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualByteMethodret=0"], + ["hotspot.jni.CallNonvirtualByteMethodV", "\"%s\\n\",name", "CallNonvirtualByteMethodV"], + ["hotspot.jni.CallNonvirtualByteMethodV.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualByteMethodVret=0"], + ["hotspot.jni.CallNonvirtualCharMethodA", "\"%s\\n\",name", "CallNonvirtualCharMethodA"], + ["hotspot.jni.CallNonvirtualCharMethodA.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualCharMethodAret=97"], + ["hotspot.jni.CallNonvirtualCharMethod", "\"%s\\n\",name", "CallNonvirtualCharMethod"], + ["hotspot.jni.CallNonvirtualCharMethod.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualCharMethodret=97"], + ["hotspot.jni.CallNonvirtualCharMethodV", "\"%s\\n\",name", "CallNonvirtualCharMethodV"], + ["hotspot.jni.CallNonvirtualCharMethodV.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualCharMethodVret=97"], + ["hotspot.jni.CallNonvirtualDoubleMethodA", "\"%s\\n\",name", "CallNonvirtualDoubleMethodA"], + ["hotspot.jni.CallNonvirtualDoubleMethodA.return", "\"%s\\n\",name", "CallNonvirtualDoubleMethodA"], + ["hotspot.jni.CallNonvirtualDoubleMethod", "\"%s\\n\",name", "CallNonvirtualDoubleMethod"], + ["hotspot.jni.CallNonvirtualDoubleMethod.return", "\"%s\\n\",name", "CallNonvirtualDoubleMethod"], + ["hotspot.jni.CallNonvirtualDoubleMethodV", "\"%s\\n\",name", "CallNonvirtualDoubleMethodV"], + ["hotspot.jni.CallNonvirtualDoubleMethodV.return", "\"%s\\n\",name", "CallNonvirtualDoubleMethodV"], + ["hotspot.jni.CallNonvirtualFloatMethodA", "\"%s\\n\",name", "CallNonvirtualFloatMethodA"], + ["hotspot.jni.CallNonvirtualFloatMethodA.return", "\"%s\\n\",name", "CallNonvirtualFloatMethodA"], + ["hotspot.jni.CallNonvirtualFloatMethod", "\"%s\\n\",name", "CallNonvirtualFloatMethod"], + ["hotspot.jni.CallNonvirtualFloatMethod.return", "\"%s\\n\",name", "CallNonvirtualFloatMethod"], + ["hotspot.jni.CallNonvirtualFloatMethodV", "\"%s\\n\",name", "CallNonvirtualFloatMethodV"], + ["hotspot.jni.CallNonvirtualFloatMethodV.return", "\"%s\\n\",name", "CallNonvirtualFloatMethodV"], + ["hotspot.jni.CallNonvirtualIntMethodA", "\"%s\\n\",name", "CallNonvirtualIntMethodA"], + ["hotspot.jni.CallNonvirtualIntMethodA.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualIntMethodAret=4"], + ["hotspot.jni.CallNonvirtualIntMethod", "\"%s\\n\",name", "CallNonvirtualIntMethod"], + ["hotspot.jni.CallNonvirtualIntMethod.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualIntMethodret=4"], + ["hotspot.jni.CallNonvirtualIntMethodV", "\"%s\\n\",name", "CallNonvirtualIntMethodV"], + ["hotspot.jni.CallNonvirtualIntMethodV.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualIntMethodVret=4"], + ["hotspot.jni.CallNonvirtualLongMethodA", "\"%s\\n\",name", "CallNonvirtualLongMethodA"], + ["hotspot.jni.CallNonvirtualLongMethodA.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualLongMethodAret=8"], + ["hotspot.jni.CallNonvirtualLongMethod", "\"%s\\n\",name", "CallNonvirtualLongMethod"], + ["hotspot.jni.CallNonvirtualLongMethod.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualLongMethodret=8"], + ["hotspot.jni.CallNonvirtualLongMethodV", "\"%s\\n\",name", "CallNonvirtualLongMethodV"], + ["hotspot.jni.CallNonvirtualLongMethodV.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualLongMethodVret=8"], + ["hotspot.jni.CallNonvirtualObjectMethodA", "\"%s\\n\",name", "CallNonvirtualObjectMethodA"], + ["hotspot.jni.CallNonvirtualObjectMethodA.return", "\"%s\\n\",name", "CallNonvirtualObjectMethodA"], + ["hotspot.jni.CallNonvirtualObjectMethod", "\"%s\\n\",name", "CallNonvirtualObjectMethod"], + ["hotspot.jni.CallNonvirtualObjectMethod.return", "\"%s\\n\",name", "CallNonvirtualObjectMethod"], + ["hotspot.jni.CallNonvirtualObjectMethodV", "\"%s\\n\",name", "CallNonvirtualObjectMethodV"], + ["hotspot.jni.CallNonvirtualObjectMethodV.return", "\"%s\\n\",name", "CallNonvirtualObjectMethodV"], + ["hotspot.jni.CallNonvirtualShortMethodA", "\"%s\\n\",name", "CallNonvirtualShortMethodA"], + ["hotspot.jni.CallNonvirtualShortMethodA.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualShortMethodAret=2"], + ["hotspot.jni.CallNonvirtualShortMethod", "\"%s\\n\",name", "CallNonvirtualShortMethod"], + ["hotspot.jni.CallNonvirtualShortMethod.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualShortMethodret=2"], + ["hotspot.jni.CallNonvirtualShortMethodV", "\"%s\\n\",name", "CallNonvirtualShortMethodV"], + ["hotspot.jni.CallNonvirtualShortMethodV.return", "\"%sret=%d\\n\",name,ret", "CallNonvirtualShortMethodVret=2"], + ["hotspot.jni.CallNonvirtualVoidMethodA", "\"%s\\n\",name", "CallNonvirtualVoidMethodA"], + ["hotspot.jni.CallNonvirtualVoidMethodA.return", "\"%s\\n\",name", "CallNonvirtualVoidMethodA"], + ["hotspot.jni.CallNonvirtualVoidMethod", "\"%s\\n\",name", "CallNonvirtualVoidMethod"], + ["hotspot.jni.CallNonvirtualVoidMethod.return", "\"%s\\n\",name", "CallNonvirtualVoidMethod"], + ["hotspot.jni.CallNonvirtualVoidMethodV", "\"%s\\n\",name", "CallNonvirtualVoidMethodV"], + ["hotspot.jni.CallNonvirtualVoidMethodV.return", "\"%s\\n\",name", "CallNonvirtualVoidMethodV"], + ["hotspot.jni.CallStaticBooleanMethodA", "\"%s\\n\",name", "CallStaticBooleanMethodA"], + ["hotspot.jni.CallStaticBooleanMethodA.return", "\"%sret=%d\\n\",name,ret", "CallStaticBooleanMethodAret=0"], + ["hotspot.jni.CallStaticBooleanMethod", "\"%s\\n\",name", "CallStaticBooleanMethod"], + ["hotspot.jni.CallStaticBooleanMethod.return", "\"%sret=%d\\n\",name,ret", "CallStaticBooleanMethodret=0"], + ["hotspot.jni.CallStaticBooleanMethodV", "\"%s\\n\",name", "CallStaticBooleanMethodV"], + ["hotspot.jni.CallStaticBooleanMethodV.return", "\"%sret=%d\\n\",name,ret", "CallStaticBooleanMethodVret=0"], + ["hotspot.jni.CallStaticByteMethodA", "\"%s\\n\",name", "CallStaticByteMethodA"], + ["hotspot.jni.CallStaticByteMethodA.return", "\"%sret=%d\\n\",name,ret", "CallStaticByteMethodAret=1"], + ["hotspot.jni.CallStaticByteMethod", "\"%s\\n\",name", "CallStaticByteMethod"], + ["hotspot.jni.CallStaticByteMethod.return", "\"%sret=%d\\n\",name,ret", "CallStaticByteMethodret=1"], + ["hotspot.jni.CallStaticByteMethodV", "\"%s\\n\",name", "CallStaticByteMethodV"], + ["hotspot.jni.CallStaticByteMethodV.return", "\"%sret=%d\\n\",name,ret", "CallStaticByteMethodVret=1"], + ["hotspot.jni.CallStaticCharMethodA", "\"%s\\n\",name", "CallStaticCharMethodA"], + ["hotspot.jni.CallStaticCharMethodA.return", "\"%sret=%d\\n\",name,ret", "CallStaticCharMethodAret=98"], + ["hotspot.jni.CallStaticCharMethod", "\"%s\\n\",name", "CallStaticCharMethod"], + ["hotspot.jni.CallStaticCharMethod.return", "\"%sret=%d\\n\",name,ret", "CallStaticCharMethodret=98"], + ["hotspot.jni.CallStaticCharMethodV", "\"%s\\n\",name", "CallStaticCharMethodV"], + ["hotspot.jni.CallStaticCharMethodV.return", "\"%sret=%d\\n\",name,ret", "CallStaticCharMethodVret=98"], + ["hotspot.jni.CallStaticDoubleMethodA", "\"%s\\n\",name", "CallStaticDoubleMethodA"], + ["hotspot.jni.CallStaticDoubleMethodA.return", "\"%s\\n\",name", "CallStaticDoubleMethodA"], + ["hotspot.jni.CallStaticDoubleMethod", "\"%s\\n\",name", "CallStaticDoubleMethod"], + ["hotspot.jni.CallStaticDoubleMethod.return", "\"%s\\n\",name", "CallStaticDoubleMethod"], + ["hotspot.jni.CallStaticDoubleMethodV", "\"%s\\n\",name", "CallStaticDoubleMethodV"], + ["hotspot.jni.CallStaticDoubleMethodV.return", "\"%s\\n\",name", "CallStaticDoubleMethodV"], + ["hotspot.jni.CallStaticFloatMethodA", "\"%s\\n\",name", "CallStaticFloatMethodA"], + ["hotspot.jni.CallStaticFloatMethodA.return", "\"%s\\n\",name", "CallStaticFloatMethodA"], + ["hotspot.jni.CallStaticFloatMethod", "\"%s\\n\",name", "CallStaticFloatMethod"], + ["hotspot.jni.CallStaticFloatMethod.return", "\"%s\\n\",name", "CallStaticFloatMethod"], + ["hotspot.jni.CallStaticFloatMethodV", "\"%s\\n\",name", "CallStaticFloatMethodV"], + ["hotspot.jni.CallStaticFloatMethodV.return", "\"%s\\n\",name", "CallStaticFloatMethodV"], + ["hotspot.jni.CallStaticIntMethodA", "\"%s\\n\",name", "CallStaticIntMethodA"], + ["hotspot.jni.CallStaticIntMethodA.return", "\"%sret=%d\\n\",name,ret", "CallStaticIntMethodAret=32"], + ["hotspot.jni.CallStaticIntMethod", "\"%s\\n\",name", "CallStaticIntMethod"], + ["hotspot.jni.CallStaticIntMethod.return", "\"%sret=%d\\n\",name,ret", "CallStaticIntMethodret=32"], + ["hotspot.jni.CallStaticIntMethodV", "\"%s\\n\",name", "CallStaticIntMethodV"], + ["hotspot.jni.CallStaticIntMethodV.return", "\"%sret=%d\\n\",name,ret", "CallStaticIntMethodVret=32"], + ["hotspot.jni.CallStaticLongMethodA", "\"%s\\n\",name", "CallStaticLongMethodA"], + ["hotspot.jni.CallStaticLongMethodA.return", "\"%sret=%d\\n\",name,ret", "CallStaticLongMethodAret=64"], + ["hotspot.jni.CallStaticLongMethod", "\"%s\\n\",name", "CallStaticLongMethod"], + ["hotspot.jni.CallStaticLongMethod.return", "\"%sret=%d\\n\",name,ret", "CallStaticLongMethodret=64"], + ["hotspot.jni.CallStaticLongMethodV", "\"%s\\n\",name", "CallStaticLongMethodV"], + ["hotspot.jni.CallStaticLongMethodV.return", "\"%sret=%d\\n\",name,ret", "CallStaticLongMethodVret=64"], + ["hotspot.jni.CallStaticObjectMethodA", "\"%s\\n\",name", "CallStaticObjectMethodA"], + ["hotspot.jni.CallStaticObjectMethodA.return", "\"%s\\n\",name", "CallStaticObjectMethodA"], + ["hotspot.jni.CallStaticObjectMethod", "\"%s\\n\",name", "CallStaticObjectMethod"], + ["hotspot.jni.CallStaticObjectMethod.return", "\"%s\\n\",name", "CallStaticObjectMethod"], + ["hotspot.jni.CallStaticObjectMethodV", "\"%s\\n\",name", "CallStaticObjectMethodV"], + ["hotspot.jni.CallStaticObjectMethodV.return", "\"%s\\n\",name", "CallStaticObjectMethodV"], + ["hotspot.jni.CallStaticShortMethodA", "\"%s\\n\",name", "CallStaticShortMethodA"], + ["hotspot.jni.CallStaticShortMethodA.return", "\"%sret=%d\\n\",name,ret", "CallStaticShortMethodAret=16"], + ["hotspot.jni.CallStaticShortMethod", "\"%s\\n\",name", "CallStaticShortMethod"], + ["hotspot.jni.CallStaticShortMethod.return", "\"%sret=%d\\n\",name,ret", "CallStaticShortMethodret=16"], + ["hotspot.jni.CallStaticShortMethodV", "\"%s\\n\",name", "CallStaticShortMethodV"], + ["hotspot.jni.CallStaticShortMethodV.return", "\"%sret=%d\\n\",name,ret", "CallStaticShortMethodVret=16"], + ["hotspot.jni.CallStaticVoidMethodA", "\"%s\\n\",name", "CallStaticVoidMethodA"], + ["hotspot.jni.CallStaticVoidMethodA.return", "\"%s\\n\",name", "CallStaticVoidMethodA"], + ["hotspot.jni.CallStaticVoidMethod", "\"%s\\n\",name", "CallStaticVoidMethod"], + ["hotspot.jni.CallStaticVoidMethod.return", "\"%s\\n\",name", "CallStaticVoidMethod"], + ["hotspot.jni.CallStaticVoidMethodV", "\"%s\\n\",name", "CallStaticVoidMethodV"], + ["hotspot.jni.CallStaticVoidMethodV.return", "\"%s\\n\",name", "CallStaticVoidMethodV"], + ["hotspot.jni.CreateJavaVM", "\"%s\\n\",name", "CreateJavaVM"], + ["hotspot.jni.CreateJavaVM.return", "\"%sret=%d\\n\",name,ret", "CreateJavaVMret=0"], + ["hotspot.jni.DefineClass", "\"%sclass=%s\\n\",name,clazz", "DefineClassclass=staptest/JNITestClass"], + ["hotspot.jni.DefineClass.return", "\"%sret=%d\\n\",name,ret", "DefineClassret=[^0]"], + ["hotspot.jni.DeleteGlobalRef", "\"%s\\n\",name", "DeleteGlobalRef"], + ["hotspot.jni.DeleteGlobalRef.return", "\"%s\\n\",name", "DeleteGlobalRef"], + ["hotspot.jni.DeleteLocalRef", "\"%s\\n\",name", "DeleteLocalRef"], + ["hotspot.jni.DeleteLocalRef.return", "\"%s\\n\",name", "DeleteLocalRef"], + ["hotspot.jni.DeleteWeakGlobalRef", "\"%s\\n\",name", "DeleteWeakGlobalRef"], + ["hotspot.jni.DeleteWeakGlobalRef.return", "\"%s\\n\",name", "DeleteWeakGlobalRef"], + ["hotspot.jni.DestroyJavaVM", "\"%s\\n\",name", "DestroyJavaVM"], + ["hotspot.jni.DestroyJavaVM.return", "\"%sret=%d\\n\",name,ret", "DestroyJavaVMret=0"], + ["hotspot.jni.DetachCurrentThread", "\"%s\\n\",name", "DetachCurrentThread"], + ["hotspot.jni.DetachCurrentThread.return", "\"%sret=%d\\n\",name,ret", "DetachCurrentThreadret=0"], + ["hotspot.jni.EnsureLocalCapacity", "\"%scap=%d\\n\",name,capacity", "EnsureLocalCapacitycap=10"], + ["hotspot.jni.EnsureLocalCapacity.return", "\"%sret=%d\\n\",name,ret", "EnsureLocalCapacityret=0"], + ["hotspot.jni.ExceptionCheck", "\"%s\\n\",name", "ExceptionCheck"], + ["hotspot.jni.ExceptionCheck.return", "\"%sret=%d\\n\",name,ret", "ExceptionCheckret=1"], + ["hotspot.jni.ExceptionClear", "\"%s\\n\",name", "ExceptionClear"], + ["hotspot.jni.ExceptionClear.return", "\"%s\\n\",name", "ExceptionClear"], + ["hotspot.jni.ExceptionDescribe", "\"%s\\n\",name", "ExceptionDescribe"], + ["hotspot.jni.ExceptionDescribe.return", "\"%s\\n\",name", "ExceptionDescribe"], + ["hotspot.jni.ExceptionOccurred", "\"%s\\n\",name", "ExceptionOccurred"], + ["hotspot.jni.ExceptionOccurred.return", "\"%sret=%d\\n\",name,ret", "ExceptionOccurredret=[^0]"], + ["hotspot.jni.FatalError", "\"%smsg=%s\\n\",name,msg", "FatalErrormsg=Intentional Crash: Ignore."], + ["hotspot.jni.FindClass", "\"%sclass=%s\\n\",name,clazz", "FindClassclass=staptest/JNITestClass"], + ["hotspot.jni.FindClass.return", "\"%sret=%d\\n\",name,ret", "FindClassret=[^0]"], + ["hotspot.jni.FromReflectedField", "\"%s\\n\",name", "FromReflectedField"], + ["hotspot.jni.FromReflectedField.return", "\"%s\\n\",name", "FromReflectedField"], + ["hotspot.jni.FromReflectedMethod", "\"%s\\n\",name", "FromReflectedMethod"], + ["hotspot.jni.FromReflectedMethod.return", "\"%s\\n\",name", "FromReflectedMethod"], + ["hotspot.jni.GetArrayLength", "\"%s\\n\",name", "GetArrayLength"], + ["hotspot.jni.GetArrayLength.return", "\"%sret=%d\\n\",name,ret", "GetArrayLengthret=5"], + ["hotspot.jni.GetBooleanArrayElements", "\"%scp=%d\\n\",name,iscopy", "GetBooleanArrayElementscp=0"], + ["hotspot.jni.GetBooleanArrayElements.return", "\"%sret=%d\\n\",name,ret", "GetBooleanArrayElementsret=[^0]"], + ["hotspot.jni.GetBooleanArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "GetBooleanArrayRegionstart=0len=5"], + ["hotspot.jni.GetBooleanArrayRegion.return", "\"%s\\n\",name", "GetBooleanArrayRegion"], + ["hotspot.jni.GetBooleanField", "\"%s\\n\",name", "GetBooleanField"], + ["hotspot.jni.GetBooleanField.return", "\"%sret=%d\\n\",name,ret", "GetBooleanFieldret=1"], + ["hotspot.jni.GetByteArrayElements", "\"%scp=%d\\n\",name,iscopy", "GetByteArrayElementscp=0"], + ["hotspot.jni.GetByteArrayElements.return", "\"%sret=%d\\n\",name,ret", "GetByteArrayElementsret=[^0]"], + ["hotspot.jni.GetByteArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "GetByteArrayRegionstart=0len=5"], + ["hotspot.jni.GetByteArrayRegion.return", "\"%s\\n\",name", "GetByteArrayRegion"], + ["hotspot.jni.GetByteField", "\"%s\\n\",name", "GetByteField"], + ["hotspot.jni.GetByteField.return", "\"%sret=%d\\n\",name,ret", "GetByteFieldret=0"], + ["hotspot.jni.GetCharArrayElements", "\"%scp=%d\\n\",name,iscopy", "GetCharArrayElementscp=0"], + ["hotspot.jni.GetCharArrayElements.return", "\"%sret=%d\\n\",name,ret", "GetCharArrayElementsret=[^0]"], + ["hotspot.jni.GetCharArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "GetCharArrayRegionstart=0len=5"], + ["hotspot.jni.GetCharArrayRegion.return", "\"%s\\n\",name", "GetCharArrayRegion"], + ["hotspot.jni.GetCharField", "\"%s\\n\",name", "GetCharField"], + ["hotspot.jni.GetCharField.return", "\"%sret=%d\\n\",name,ret", "GetCharFieldret=97"], + ["hotspot.jni.GetCreatedJavaVMs", "\"%sbuflen=%d\\n\",name,buflen", "GetCreatedJavaVMsbuflen=1"], + ["hotspot.jni.GetCreatedJavaVMs.return", "\"%sret=%d\\n\",name,ret", "GetCreatedJavaVMsret=0"], + ["hotspot.jni.GetDefaultJavaVMInitArgs", "\"%s\\n\",name", "GetDefaultJavaVMInitArgs"], + ["hotspot.jni.GetDefaultJavaVMInitArgs.return", "\"%sret=%d\\n\",name,ret", "GetDefaultJavaVMInitArgsret=0"], + ["hotspot.jni.GetDirectBufferAddress", "\"%s\\n\",name", "GetDirectBufferAddress"], + ["hotspot.jni.GetDirectBufferAddress.return", "\"%sret=%d\\n\",name,ret", "GetDirectBufferAddressret=[^0]"], + ["hotspot.jni.GetDirectBufferCapacity", "\"%s\\n\",name", "GetDirectBufferCapacity"], + ["hotspot.jni.GetDirectBufferCapacity.return", "\"%sret=%d\\n\",name,ret", "GetDirectBufferCapacityret=128"], + ["hotspot.jni.GetDoubleArrayElements", "\"%scp=%d\\n\",name,iscopy", "GetDoubleArrayElementscp=0"], + ["hotspot.jni.GetDoubleArrayElements.return", "\"%sret=%d\\n\",name,ret", "GetDoubleArrayElementsret=[^0]"], + ["hotspot.jni.GetDoubleArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "GetDoubleArrayRegionstart=0len=5"], + ["hotspot.jni.GetDoubleArrayRegion.return", "\"%s\\n\",name", "GetDoubleArrayRegion"], + ["hotspot.jni.GetDoubleField", "\"%s\\n\",name", "GetDoubleField"], + ["hotspot.jni.GetDoubleField.return", "\"%s\\n\",name", "GetDoubleField"], + ["hotspot.jni.GetEnv", "\"%sver=%x\\n\",name,version", "GetEnvver=10006"], + ["hotspot.jni.GetEnv.return", "\"%sret=%d\\n\",name,ret", "GetEnvret=0"], + ["hotspot.jni.GetFieldID", "\"%sfield=%ssig=%s\\n\",name,field,sig", "GetFieldIDfield=myBooleansig=Z"], + ["hotspot.jni.GetFieldID.return", "\"%sret=%d\\n\",name,ret", "GetFieldIDret=[^0]"], + ["hotspot.jni.GetFloatArrayElements", "\"%scp=%d\\n\",name,iscopy", "GetFloatArrayElementscp=0"], + ["hotspot.jni.GetFloatArrayElements.return", "\"%sret=%d\\n\",name,ret", "GetFloatArrayElementsret=[^0]"], + ["hotspot.jni.GetFloatArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "GetFloatArrayRegionstart=0len=5"], + ["hotspot.jni.GetFloatArrayRegion.return", "\"%s\\n\",name", "GetFloatArrayRegion"], + ["hotspot.jni.GetFloatField", "\"%s\\n\",name", "GetFloatField"], + ["hotspot.jni.GetFloatField.return", "\"%s\\n\",name", "GetFloatField"], + ["hotspot.jni.GetIntArrayElements", "\"%scp=%d\\n\",name,iscopy", "GetIntArrayElementscp=0"], + ["hotspot.jni.GetIntArrayElements.return", "\"%sret=%d\\n\",name,ret", "GetIntArrayElementsret=[^0]"], + ["hotspot.jni.GetIntArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "GetIntArrayRegionstart=0len=5"], + ["hotspot.jni.GetIntArrayRegion.return", "\"%s\\n\",name", "GetIntArrayRegion"], + ["hotspot.jni.GetIntField", "\"%s\\n\",name", "GetIntField"], + ["hotspot.jni.GetIntField.return", "\"%sret=%d\\n\",name,ret", "GetIntFieldret=4"], + ["hotspot.jni.GetJavaVM", "\"%s\\n\",name", "GetJavaVM"], + ["hotspot.jni.GetJavaVM.return", "\"%sret=%d\\n\",name,ret", "GetJavaVMret=0"], + ["hotspot.jni.GetLongArrayElements", "\"%scp=%d\\n\",name,iscopy", "GetLongArrayElementscp=0"], + ["hotspot.jni.GetLongArrayElements.return", "\"%sret=%d\\n\",name,ret", "GetLongArrayElementsret=[^0]"], + ["hotspot.jni.GetLongArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "GetLongArrayRegionstart=0len=5"], + ["hotspot.jni.GetLongArrayRegion.return", "\"%s\\n\",name", "GetLongArrayRegion"], + ["hotspot.jni.GetLongField", "\"%s\\n\",name", "GetLongField"], + ["hotspot.jni.GetLongField.return", "\"%sret=%d\\n\",name,ret", "GetLongFieldret=8"], + ["hotspot.jni.GetMethodID", "\"%smethod=%ssig=%s\\n\",name,method,sig", "GetMethodIDmethod=getBooleansig=()Z"], + ["hotspot.jni.GetMethodID.return", "\"%sret=%d\\n\",name,ret", "GetMethodIDret=[^0]"], + ["hotspot.jni.GetObjectArrayElement", "\"%si=%d\\n\",name,index", "GetObjectArrayElementi=1"], + ["hotspot.jni.GetObjectArrayElement.return", "\"%sret=%d\\n\",name,ret", "GetObjectArrayElementret=[^0]"], + ["hotspot.jni.GetObjectClass", "\"%s\\n\",name", "GetObjectClass"], + ["hotspot.jni.GetObjectClass.return", "\"%sret=%d\\n\",name,ret", "GetObjectClassret=[^0]"], + ["hotspot.jni.GetObjectField", "\"%s\\n\",name", "GetObjectField"], + ["hotspot.jni.GetObjectField.return", "\"%sret=%d\\n\",name,ret", "GetObjectFieldret=[^0]"], + ["hotspot.jni.GetObjectRefType", "\"%s\\n\",name", "GetObjectRefType"], + ["hotspot.jni.GetObjectRefType.return", "\"%sret=%d\\n\",name,ret", "GetObjectRefTyperet=2"], + ["hotspot.jni.GetPrimitiveArrayCritical", "\"%s\\n\",name", "GetPrimitiveArrayCritical"], + ["hotspot.jni.GetPrimitiveArrayCritical.return", "\"%sret=%d\\n\",name,ret", "GetPrimitiveArrayCriticalret=[^0]"], + ["hotspot.jni.GetShortArrayElements", "\"%scp=%d\\n\",name,iscopy", "GetShortArrayElementscp=0"], + ["hotspot.jni.GetShortArrayElements.return", "\"%sret=%d\\n\",name,ret", "GetShortArrayElementsret=[^0]"], + ["hotspot.jni.GetShortArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "GetShortArrayRegionstart=0len=5"], + ["hotspot.jni.GetShortArrayRegion.return", "\"%s\\n\",name", "GetShortArrayRegion"], + ["hotspot.jni.GetShortField", "\"%s\\n\",name", "GetShortField"], + ["hotspot.jni.GetShortField.return", "\"%sret=%d\\n\",name,ret", "GetShortFieldret=2"], + ["hotspot.jni.GetStaticBooleanField", "\"%s\\n\",name", "GetStaticBooleanField"], + ["hotspot.jni.GetStaticBooleanField.return", "\"%sret=%d\\n\",name,ret", "GetStaticBooleanFieldret=0"], + ["hotspot.jni.GetStaticByteField", "\"%s\\n\",name", "GetStaticByteField"], + ["hotspot.jni.GetStaticByteField.return", "\"%sret=%d\\n\",name,ret", "GetStaticByteFieldret=1"], + ["hotspot.jni.GetStaticCharField", "\"%s\\n\",name", "GetStaticCharField"], + ["hotspot.jni.GetStaticCharField.return", "\"%sret=%d\\n\",name,ret", "GetStaticCharFieldret=98"], + ["hotspot.jni.GetStaticDoubleField", "\"%s\\n\",name", "GetStaticDoubleField"], + ["hotspot.jni.GetStaticDoubleField.return", "\"%s\\n\",name", "GetStaticDoubleField"], + ["hotspot.jni.GetStaticFieldID", "\"%sfield=%ssig=%s\\n\",name,field,sig", "GetStaticFieldIDfield=myStaticBooleansig=Z"], + ["hotspot.jni.GetStaticFieldID.return", "\"%sret=%d\\n\",name,ret", "GetStaticFieldIDret=[^0]"], + ["hotspot.jni.GetStaticFloatField", "\"%s\\n\",name", "GetStaticFloatField"], + ["hotspot.jni.GetStaticFloatField.return", "\"%s\\n\",name", "GetStaticFloatField"], + ["hotspot.jni.GetStaticIntField", "\"%s\\n\",name", "GetStaticIntField"], + ["hotspot.jni.GetStaticIntField.return", "\"%sret=%d\\n\",name,ret", "GetStaticIntFieldret=32"], + ["hotspot.jni.GetStaticLongField", "\"%s\\n\",name", "GetStaticLongField"], + ["hotspot.jni.GetStaticLongField.return", "\"%sret=%d\\n\",name,ret", "GetStaticLongFieldret=64"], + ["hotspot.jni.GetMethodID", "\"%smethod=%ssig=%s\\n\",name,method,sig", "GetMethodIDmethod=getBooleansig=()Z"], + ["hotspot.jni.GetStaticMethodID.return", "\"%sret=%d\\n\",name,ret", "GetStaticMethodIDret=[^0]"], + ["hotspot.jni.GetStaticObjectField", "\"%s\\n\",name", "GetStaticObjectField"], + ["hotspot.jni.GetStaticObjectField.return", "\"%sret=%d\\n\",name,ret", "GetStaticObjectFieldret=[^0]"], + ["hotspot.jni.GetStaticShortField", "\"%s\\n\",name", "GetStaticShortField"], + ["hotspot.jni.GetStaticShortField.return", "\"%sret=%d\\n\",name,ret", "GetStaticShortFieldret=16"], + ["hotspot.jni.GetStringChars", "\"%scp=%d\\n\",name,iscopy", "GetStringCharscp=0"], + ["hotspot.jni.GetStringChars.return", "\"%sret=%d\\n\",name,ret", "GetStringCharsret=[^0]"], + ["hotspot.jni.GetStringCritical", "\"%scp=%d\\n\",name,iscopy", "GetStringCriticalcp=0"], + ["hotspot.jni.GetStringCritical.return", "\"%sret=%d\\n\",name,ret", "GetStringCriticalret=[^0]"], + ["hotspot.jni.GetStringLength", "\"%s\\n\",name", "GetStringLength"], + ["hotspot.jni.GetStringLength.return", "\"%sret=%d\\n\",name,ret", "GetStringLengthret=4"], + ["hotspot.jni.GetStringRegion", "\"%sst=%dlen=%d\\n\",name,start,len", "GetStringRegionst=1len=2"], + ["hotspot.jni.GetStringRegion.return", "\"%s\\n\",name", "GetStringRegion"], + ["hotspot.jni.GetStringUTFChars", "\"%scp=%d\\n\",name,iscopy", "GetStringUTFCharscp=0"], + ["hotspot.jni.GetStringUTFChars.return", "\"%sret=%s\\n\",name,ret", "GetStringUTFCharsret=WORD"], + ["hotspot.jni.GetStringUTFLength", "\"%s\\n\",name", "GetStringUTFLength"], + ["hotspot.jni.GetStringUTFLength.return", "\"%sret=%d\\n\",name,ret", "GetStringUTFLengthret=6"], + ["hotspot.jni.GetStringUTFRegion", "\"%sst=%dlen=%d\\n\",name,start,len", "GetStringUTFRegionst=1len=2"], + ["hotspot.jni.GetStringUTFRegion.return", "\"%s\\n\",name", "GetStringUTFRegion"], + ["hotspot.jni.GetSuperclass", "\"%s\\n\",name", "GetSuperclass"], + ["hotspot.jni.GetSuperclass.return", "\"%sret=%d\\n\",name,ret", "GetSuperclassret=[^0]"], + ["hotspot.jni.GetVersion", "\"%s\\n\",name", "GetVersion"], + ["hotspot.jni.GetVersion.return", "\"%sret=%x\\n\",name,ret", "GetVersionret=10006"], + ["hotspot.jni.IsAssignableFrom", "\"%s\\n\",name", "IsAssignableFrom"], + ["hotspot.jni.IsAssignableFrom.return", "\"%sret=%d\\n\",name,ret", "IsAssignableFromret=1"], + ["hotspot.jni.IsInstanceOf", "\"%s\\n\",name", "IsInstanceOf"], + ["hotspot.jni.IsInstanceOf.return", "\"%sret=%d\\n\",name,ret", "IsInstanceOfret=1"], + ["hotspot.jni.IsSameObject", "\"%s\\n\",name", "IsSameObject"], + ["hotspot.jni.IsSameObject.return", "\"%sret=%d\\n\",name,ret", "IsSameObjectret=1"], + ["hotspot.jni.MonitorEnter", "\"%s\\n\",name", "MonitorEnter"], + ["hotspot.jni.MonitorEnter.return", "\"%sret=%d\\n\",name,ret", "MonitorEnterret=0"], + ["hotspot.jni.MonitorExit", "\"%s\\n\",name", "MonitorExit"], + ["hotspot.jni.MonitorExit.return", "\"%sret=%d\\n\",name,ret", "MonitorExitret=0"], + ["hotspot.jni.NewBooleanArray", "\"%slen=%d\\n\",name,length", "NewBooleanArraylen=5"], + ["hotspot.jni.NewBooleanArray.return", "\"%sret=%d\\n\",name,ret", "NewBooleanArrayret=[^0]"], + ["hotspot.jni.NewByteArray", "\"%slen=%d\\n\",name,length", "NewByteArraylen=5"], + ["hotspot.jni.NewByteArray.return", "\"%sret=%d\\n\",name,ret", "NewByteArrayret=[^0]"], + ["hotspot.jni.NewCharArray", "\"%slen=%d\\n\",name,length", "NewCharArraylen=5"], + ["hotspot.jni.NewCharArray.return", "\"%sret=%d\\n\",name,ret", "NewCharArrayret=[^0]"], + ["hotspot.jni.NewDirectByteBuffer", "\"%ssize=%d\\n\",name,size", "NewDirectByteBuffersize=128"], + ["hotspot.jni.NewDirectByteBuffer.return", "\"%sret=%d\\n\",name,ret", "NewDirectByteBufferret=[^0]"], + ["hotspot.jni.NewDoubleArray", "\"%slen=%d\\n\",name,length", "NewDoubleArraylen=5"], + ["hotspot.jni.NewDoubleArray.return", "\"%sret=%d\\n\",name,ret", "NewDoubleArrayret=[^0]"], + ["hotspot.jni.NewFloatArray", "\"%slen=%d\\n\",name,length", "NewFloatArraylen=5"], + ["hotspot.jni.NewFloatArray.return", "\"%sret=%d\\n\",name,ret", "NewFloatArrayret=[^0]"], + ["hotspot.jni.NewGlobalRef", "\"%s\\n\",name", "NewGlobalRef"], + ["hotspot.jni.NewGlobalRef.return", "\"%sret=%d\\n\",name,ret", "NewGlobalRefret=[^0]"], + ["hotspot.jni.NewIntArray", "\"%slen=%d\\n\",name,length", "NewIntArraylen=5"], + ["hotspot.jni.NewIntArray.return", "\"%sret=%d\\n\",name,ret", "NewIntArrayret=[^0]"], + ["hotspot.jni.NewLocalRef", "\"%s\\n\",name", "NewLocalRef"], + ["hotspot.jni.NewLocalRef.return", "\"%sret=%d\\n\",name,ret", "NewLocalRefret=[^0]"], + ["hotspot.jni.NewLongArray", "\"%slen=%d\\n\",name,length", "NewLongArraylen=5"], + ["hotspot.jni.NewLongArray.return", "\"%sret=%d\\n\",name,ret", "NewLongArrayret=[^0]"], + ["hotspot.jni.NewObjectA", "\"%s\\n\",name", "NewObjectA"], + ["hotspot.jni.NewObjectA.return", "\"%sret=%d\\n\",name,ret", "NewObjectAret=0"], + ["hotspot.jni.NewObjectArray", "\"%slen=%dinit=%d\\n\",name,length,initial", "NewObjectArraylen=5init=0"], + ["hotspot.jni.NewObjectArray.return", "\"%sret=%d\\n\",name,ret", "NewObjectArrayret=[^0]"], + ["hotspot.jni.NewObject", "\"%s\\n\",name", "NewObject"], + ["hotspot.jni.NewObject.return", "\"%sret=%d\\n\",name,ret", "NewObjectret=[^0]"], + ["hotspot.jni.NewObjectV", "\"%s\\n\",name", "NewObjectV"], + ["hotspot.jni.NewObjectV.return", "\"%sret=%d\\n\",name,ret", "NewObjectVret=[^0]"], + ["hotspot.jni.NewShortArray", "\"%slen=%d\\n\",name,length", "NewShortArraylen=5"], + ["hotspot.jni.NewShortArray.return", "\"%sret=%d\\n\",name,ret", "NewShortArrayret=[^0]"], + ["hotspot.jni.NewString", "\"%slen=%d\\n\",name,len", "NewStringlen=4"], + ["hotspot.jni.NewString.return", "\"%sret=%d\\n\",name,ret", "NewStringret=[^0]"], + ["hotspot.jni.NewStringUTF", "\"%sbytes=%s\\n\",name,bytes", "NewStringUTFbytes=WORD"], + ["hotspot.jni.NewStringUTF.return", "\"%sret=%d\\n\",name,ret", "NewStringUTFret=[^0]"], + ["hotspot.jni.NewWeakGlobalRef", "\"%s\\n\",name", "NewWeakGlobalRef"], + ["hotspot.jni.NewWeakGlobalRef.return", "\"%sret=%d\\n\",name,ret", "NewWeakGlobalRefret=[^0]"], + ["hotspot.jni.PopLocalFrame", "\"%s\\n\",name", "PopLocalFrame"], + ["hotspot.jni.PopLocalFrame.return", "\"%sret=%d\\n\",name,ret", "PopLocalFrameret=0"], + ["hotspot.jni.PushLocalFrame", "\"%scap=%d\\n\",name,capacity", "PushLocalFramecap=10"], + ["hotspot.jni.PushLocalFrame.return", "\"%sret=%d\\n\",name,ret", "PushLocalFrameret=0"], + ["hotspot.jni.RegisterNatives", "\"%s\\n\",name", "RegisterNatives"], + ["hotspot.jni.RegisterNatives.return", "\"%sret=%d\\n\",name,ret", "RegisterNativesret=0"], + ["hotspot.jni.ReleaseBooleanArrayElements", "\"%smode=%d\\n\",name,mode", "ReleaseBooleanArrayElementsmode=2"], + ["hotspot.jni.ReleaseBooleanArrayElements.return", "\"%s\\n\",name", "ReleaseBooleanArrayElements"], + ["hotspot.jni.ReleaseByteArrayElements", "\"%smode=%d\\n\",name,mode", "ReleaseByteArrayElementsmode=2"], + ["hotspot.jni.ReleaseByteArrayElements.return", "\"%s\\n\",name", "ReleaseByteArrayElements"], + ["hotspot.jni.ReleaseCharArrayElements", "\"%smode=%d\\n\",name,mode", "ReleaseCharArrayElementsmode=2"], + ["hotspot.jni.ReleaseCharArrayElements.return", "\"%s\\n\",name", "ReleaseCharArrayElements"], + ["hotspot.jni.ReleaseDoubleArrayElements", "\"%smode=%d\\n\",name,mode", "ReleaseDoubleArrayElementsmode=2"], + ["hotspot.jni.ReleaseDoubleArrayElements.return", "\"%s\\n\",name", "ReleaseDoubleArrayElements"], + ["hotspot.jni.ReleaseFloatArrayElements", "\"%smode=%d\\n\",name,mode", "ReleaseFloatArrayElementsmode=2"], + ["hotspot.jni.ReleaseFloatArrayElements.return", "\"%s\\n\",name", "ReleaseFloatArrayElements"], + ["hotspot.jni.ReleaseIntArrayElements", "\"%smode=%d\\n\",name,mode", "ReleaseIntArrayElementsmode=2"], + ["hotspot.jni.ReleaseIntArrayElements.return", "\"%s\\n\",name", "ReleaseIntArrayElements"], + ["hotspot.jni.ReleaseLongArrayElements", "\"%smode=%d\\n\",name,mode", "ReleaseLongArrayElementsmode=2"], + ["hotspot.jni.ReleaseLongArrayElements.return", "\"%s\\n\",name", "ReleaseLongArrayElements"], + ["hotspot.jni.ReleasePrimitiveArrayCritical", "\"%smode=%d\\n\",name,mode", "ReleasePrimitiveArrayCriticalmode=2"], + ["hotspot.jni.ReleasePrimitiveArrayCritical.return", "\"%s\\n\",name", "ReleasePrimitiveArrayCritical"], + ["hotspot.jni.ReleaseShortArrayElements", "\"%smode=%d\\n\",name,mode", "ReleaseShortArrayElementsmode=2"], + ["hotspot.jni.ReleaseShortArrayElements.return", "\"%s\\n\",name", "ReleaseShortArrayElements"], + ["hotspot.jni.ReleaseStringChars", "\"%s\\n\",name", "ReleaseStringChars"], + ["hotspot.jni.ReleaseStringChars.return", "\"%s\\n\",name", "ReleaseStringChars"], + ["hotspot.jni.ReleaseStringCritical", "\"%s\\n\",name", "ReleaseStringCritical"], + ["hotspot.jni.ReleaseStringCritical.return", "\"%s\\n\",name", "ReleaseStringCritical"], + ["hotspot.jni.ReleaseStringUTFChars", "\"%sutf=%s\\n\",name,utf", "ReleaseStringUTFCharsutf=WORD"], + ["hotspot.jni.ReleaseStringUTFChars.return", "\"%s\\n\",name", "ReleaseStringUTFChars"], + ["hotspot.jni.SetBooleanArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "SetBooleanArrayRegionstart=0len=5"], + ["hotspot.jni.SetBooleanArrayRegion.return", "\"%s\\n\",name", "SetBooleanArrayRegion"], + ["hotspot.jni.SetBooleanField", "\"%sval=%d\\n\",name,value", "SetBooleanFieldval=1"], + ["hotspot.jni.SetBooleanField.return", "\"%s\\n\",name", "SetBooleanField"], + ["hotspot.jni.SetByteArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "SetByteArrayRegionstart=0len=5"], + ["hotspot.jni.SetByteArrayRegion.return", "\"%s\\n\",name", "SetByteArrayRegion"], + ["hotspot.jni.SetByteField", "\"%sval=%d\\n\",name,value", "SetByteFieldval=2"], + ["hotspot.jni.SetByteField.return", "\"%s\\n\",name", "SetByteField"], + ["hotspot.jni.SetCharArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "SetCharArrayRegionstart=0len=5"], + ["hotspot.jni.SetCharArrayRegion.return", "\"%s\\n\",name", "SetCharArrayRegion"], + ["hotspot.jni.SetCharField", "\"%sval=%d\\n\",name,value", "SetCharFieldval=65"], + ["hotspot.jni.SetCharField.return", "\"%s\\n\",name", "SetCharField"], + ["hotspot.jni.SetDoubleArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "SetDoubleArrayRegionstart=0len=5"], + ["hotspot.jni.SetDoubleArrayRegion.return", "\"%s\\n\",name", "SetDoubleArrayRegion"], + ["hotspot.jni.SetDoubleField", "\"%s\\n\",name", "SetDoubleField"], + ["hotspot.jni.SetDoubleField.return", "\"%s\\n\",name", "SetDoubleField"], + ["hotspot.jni.SetFloatArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "SetFloatArrayRegionstart=0len=5"], + ["hotspot.jni.SetFloatArrayRegion.return", "\"%s\\n\",name", "SetFloatArrayRegion"], + ["hotspot.jni.SetFloatField", "\"%s\\n\",name", "SetFloatField"], + ["hotspot.jni.SetFloatField.return", "\"%s\\n\",name", "SetFloatField"], + ["hotspot.jni.SetIntArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "SetIntArrayRegionstart=0len=5"], + ["hotspot.jni.SetIntArrayRegion.return", "\"%s\\n\",name", "SetIntArrayRegion"], + ["hotspot.jni.SetIntField", "\"%sval=%d\\n\",name,value", "SetIntFieldval=7"], + ["hotspot.jni.SetIntField.return", "\"%s\\n\",name", "SetIntField"], + ["hotspot.jni.SetLongArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "SetLongArrayRegionstart=0len=5"], + ["hotspot.jni.SetLongArrayRegion.return", "\"%s\\n\",name", "SetLongArrayRegion"], + ["hotspot.jni.SetLongField", "\"%sval=%d\\n\",name,value", "SetLongFieldval=13"], + ["hotspot.jni.SetLongField.return", "\"%s\\n\",name", "SetLongField"], + ["hotspot.jni.SetObjectArrayElement", "\"%s\\n\",name", "SetObjectArrayElement"], + ["hotspot.jni.SetObjectArrayElement.return", "\"%s\\n\",name", "SetObjectArrayElement"], + ["hotspot.jni.SetObjectField", "\"%s\\n\",name", "SetObjectField"], + ["hotspot.jni.SetObjectField.return", "\"%s\\n\",name", "SetObjectField"], + ["hotspot.jni.SetShortArrayRegion", "\"%sstart=%dlen=%d\\n\",name,start,len", "SetShortArrayRegionstart=0len=5"], + ["hotspot.jni.SetShortArrayRegion.return", "\"%s\\n\",name", "SetShortArrayRegion"], + ["hotspot.jni.SetShortField", "\"%sval=%d\\n\",name,value", "SetShortFieldval=11"], + ["hotspot.jni.SetShortField.return", "\"%s\\n\",name", "SetShortField"], + ["hotspot.jni.SetStaticBooleanField", "\"%sval=%d\\n\",name,value", "SetStaticBooleanFieldval=1"], + ["hotspot.jni.SetStaticBooleanField.return", "\"%s\\n\",name", "SetStaticBooleanField"], + ["hotspot.jni.SetStaticByteField", "\"%sval=%d\\n\",name,value", "SetStaticByteFieldval=2"], + ["hotspot.jni.SetStaticByteField.return", "\"%s\\n\",name", "SetStaticByteField"], + ["hotspot.jni.SetStaticCharField", "\"%sval=%d\\n\",name,value", "SetStaticCharFieldval=65"], + ["hotspot.jni.SetStaticCharField.return", "\"%s\\n\",name", "SetStaticCharField"], + ["hotspot.jni.SetStaticDoubleField", "\"%s\\n\",name", "SetStaticDoubleField"], + ["hotspot.jni.SetStaticDoubleField.return", "\"%s\\n\",name", "SetStaticDoubleField"], + ["hotspot.jni.SetStaticFloatField", "\"%s\\n\",name", "SetStaticFloatField"], + ["hotspot.jni.SetStaticFloatField.return", "\"%s\\n\",name", "SetStaticFloatField"], + ["hotspot.jni.SetStaticIntField", "\"%sval=%d\\n\",name,value", "SetStaticIntFieldval=7"], + ["hotspot.jni.SetStaticIntField.return", "\"%s\\n\",name", "SetStaticIntField"], + ["hotspot.jni.SetStaticLongField", "\"%sval=%d\\n\",name,value", "SetStaticLongFieldval=13"], + ["hotspot.jni.SetStaticLongField.return", "\"%s\\n\",name", "SetStaticLongField"], + ["hotspot.jni.SetStaticObjectField", "\"%s\\n\",name", "SetStaticObjectField"], + ["hotspot.jni.SetStaticObjectField.return", "\"%s\\n\",name", "SetStaticObjectField"], + ["hotspot.jni.SetStaticShortField", "\"%sval=%d\\n\",name,value", "SetStaticShortFieldval=11"], + ["hotspot.jni.SetStaticShortField.return", "\"%s\\n\",name", "SetStaticShortField"], + ["hotspot.jni.Throw", "\"%s\\n\",name", "Throw"], + ["hotspot.jni.Throw.return", "\"%sret=%d\\n\",name,ret", "Throwret=0"], + ["hotspot.jni.ThrowNew", "\"%smsg=%s\\n\",name,msg", "ThrowNewmsg=This exception is for testing purposes only."], + ["hotspot.jni.ThrowNew.return", "\"%sret=%d\\n\",name,ret", "ThrowNewret=0"], + ["hotspot.jni.ToReflectedField", "\"%s\\n\",name", "ToReflectedField"], + ["hotspot.jni.ToReflectedField.return", "\"%sret=%d\\n\",name,ret", "ToReflectedFieldret=[^0]"], + ["hotspot.jni.ToReflectedMethod", "\"%s\\n\",name", "ToReflectedMethod"], + ["hotspot.jni.ToReflectedMethod.return", "\"%sret=%d\\n\",name,ret", "ToReflectedMethodret=[^0]"], + ["hotspot.jni.UnregisterNatives", "\"%s\\n\",name", "UnregisterNatives"], + ["hotspot.jni.UnregisterNatives.return", "\"%sret=%d\\n\",name,ret", "UnregisterNativesret=0"]); + +# To test for known probe prefix. Determines main type of test run. +my $hs_regex = "^hotspot\."; +my $jni_regex = "^hotspot\.jni\."; + +# Status of test run. +my $working_count = 0; +my $undetected_count = 0; +my $broken_count = 0; + +# Stuffed based on argument(s), used as argument to stap executable. +my @tapset_dirs = (); + +# Set based on arguments, used to during compilation and/or running of tests. +my $ignore_system_tapset = ""; +my $java_exec = ""; +my $javac_exec = ""; +my $jvm_dir = ""; +my $jvm_so = ""; +my $test_sourcedir = "."; +my @include_dirs = (); + + +### MAIN BODY +# Short and sweet. +process_args(); +log_preamble(); +build_tests(); +my @detected_probes = detect_probes(@probestrings); +if (can_run_probes()) { + test_probes(@detected_probes); +} +summarize(); +log_postamble(); +clean_up(); +exit($broken_count | $undetected_count); + +### PRIMARY SUBROUTINES +# These are called by the main body of the script. + +# Uses Getopt::Std::getopts() to grab user arguments, then performs further +# processing to ensure valid combination of args and set several variables +# based on args. +sub process_args { + die "Try \"jstaptest.pl --help\" for usage information.\n" + if (!getopts('B:A:J:o:a:S:') || ($opt_o && $opt_a)); + # -o and -a are mutually exclusive. + if ($opt_B && $opt_A) { + die "Directory $opt_B not found." unless (-d $opt_B); + die "Directory $opt_B/j2sdk-image/tapset not found.\nTry rebuilding Icedtea with systemtap support.\n" + unless (-d "$opt_B/j2sdk-image/tapset"); + push(@tapset_dirs, "-I$opt_B/j2sdk-image/tapset"); + set_java_vars("$opt_B/j2sdk-image", $opt_A); + $ignore_system_tapset = "SYSTEMTAP_TAPSET=\"\""; + } + elsif ($opt_J) { + set_java_vars($opt_J, get_arch_dir()); + + } + else { + die "Try \"./jstaptest.pl --help\" for usage information.\n"; + } + + if ($opt_S) { + die "Directory $opt_S not found." unless (-d $opt_S); + $test_sourcedir = "$opt_S"; + } + + if ($opt_o) { + $logfile_name = $opt_o; + mkpath(dirname($opt_o)) or + die "Couldn't make enclosing directory for $opt_o\n$!" + unless (-d dirname($opt_o)); + open($log_file, '>', $opt_o) or + die "Couldn't open log file: $opt_a\n$!"; + } + if ($opt_a) { + $logfile_name = $opt_a; + mkpath(dirname($opt_a)) or + die "Couldn't make enclosing directory for $opt_a\n$!" + unless (-d dirname($opt_a)); + open($log_file, '>>', $opt_a) or + die "Couldn't open log file: $opt_a\n$!"; + } +} + +# Any text that should precede a test run in the log file goes here. +sub log_preamble { + just_log("###############################################################"); + just_log("Start of test run.\n" . gmtime()); +} + +# Tests consist of a number of C and Java files. These need to be compiled. +sub build_tests { + log_and_print("Compiling tests."); + my $compile_command = "$javac_exec -d ./ $test_sourcedir/*.java"; + just_log($compile_command); + system($compile_command); + if ($? != 0) { + log_and_print("Error compiling one or more .java files."); + clean_up(); + die "Cannot compile tests.\n"; + } + $compile_command = "gcc " . join(' ', @include_dirs) . + " -c -fPIC $test_sourcedir/JNITestClass.c -o JNITestClass.o"; + just_log($compile_command); + system($compile_command); + if ($? != 0) { + log_and_print("Error compiling JNITestClass.o"); + clean_up(); + die "Cannot compile tests.\n"; + } + $compile_command = "gcc -shared -o libJNITestClass.so -fPIC JNITestClass.o"; + just_log($compile_command); + system($compile_command); + if ($? != 0) { + log_and_print("Error building libJNITestClass.so"); + clean_up(); + die "Cannot compile tests.\n"; + } + $compile_command = "gcc " . join(' ', @include_dirs) . + " -pthread -L$jvm_dir -L. -lJNITestClass $jvm_so" . + " -o JNIStapTest $test_sourcedir/JNIStapTest.c"; + just_log($compile_command); + system($compile_command); + if ($? != 0) { + log_and_print("Error compiling JNIStapTest"); + clean_up(); + die "Cannot compile tests.\n"; + } +} + +# Filter out the list of probes. If Systemtap cannot locate a probe using the +# -l argument, it makes little sense to try to run a script based on it. +# This also means we can detect this case as a distinct failure mode. +sub detect_probes { + log_and_print("Testing if systemtap can match probes."); + my @probes_detected = (); + my ($probe_name, $probe_printargs, $probe_output, $stap_pre, $stap_command, + @sysargs); + $stap_pre = "$ignore_system_tapset stap " . join(' ', @tapset_dirs); + foreach my $probe_index (0..$#_) { + $probe_name = $_[$probe_index][0]; + $probe_printargs = $_[$probe_index][1]; + $probe_output = $_[$probe_index][2]; + $stap_command = "$stap_pre -L $probe_name 2>&1 | grep -q \"^$probe_name\""; + just_log($stap_command); + print("."); + system($stap_command); + if ($? != 0) { + print("\n"); + log_and_print("Probe $probe_name not found."); + $undetected_count++; + } + else { + just_log("Probe $probe_name found."); + push(@probes_detected, [$probe_name, $probe_printargs, + $probe_output]); + } + } + print("\n"); + return @probes_detected; +} + +# Check whether we can run stap while probing. +# This needs extra user privs. If not, we only run the detect_probes() +# test, but not the test_probes() test. +sub can_run_probes { + log_and_print("Check whether we have enough privs to run systemtap script..."); + my $stap_command = "stap -e 'probe begin { log(\"Hello World\"); exit(); }'"; + just_log($stap_command); + my $result = `$stap_command 2>&1`; + if ($? != 0) { + # First few error lines give a hint... + print(join("\n", (split /\n/, $result)[0..5]), "\n"); + just_log($result); + log_and_print("Cannot run simple stap script, skipping probe tests."); + return 0; + } + print("OK\n"); + return 1; +} + +# For each probe, run a stap script using the -c command to have it load +# and unload automatically around the execution of a single command. This +# command will be the running of a java program (in the case of probes +# from the hotspot.stp tapset) or a C program which uses the JNI +# Invocation API (in the case of probes from the hotspot_jni.stp tapset), +# which is designed to trigger the named probe in as minimal of a test +# case as possible. Associated with each probe is a format string (with +# variables) that is called in a printf statement within the stap script, +# and a regex designed to resemble the expected output of said printf +# statement. +sub test_probes { + log_and_print("Testing if detected probes work as expected. This may take a while..."); + my ($probe_name, $probe_suffix, $probe_printargs, $probe_output, + $stap_pre, $stap_command, $jvm_xxarg); + $stap_pre = "stap " . join(' ', @tapset_dirs); + foreach my $probe_index (0..$#_) { + $jvm_xxarg = ""; + $probe_name = $_[$probe_index][0]; + $probe_suffix = $probe_name; + $probe_printargs = $_[$probe_index][1]; + $probe_output = $_[$probe_index][2]; + $stap_command = "$stap_pre -e 'probe $probe_name { printf($probe_printargs) }' -c"; + if ($probe_name =~ m/($jni_regex)/) { + # JNI probes are triggered by calling a C program which uses the + # invocation API on which the probes are based. + $probe_suffix =~ s/($jni_regex)//; + # The test against the jni function entry and return probes are + # identical. + $probe_suffix =~ s/\.return$//; + $stap_command = "$stap_command 'export LD_LIBRARY_PATH=.:$jvm_dir && ./JNIStapTest $probe_suffix'"; + if ($probe_suffix =~ m/^FatalError$/) { + # This test intentionally crashes the JVM, generating output + # on stderr. We don't want to see this noise. + $stap_command = "$stap_command 2>&1"; + } + } + elsif ($probe_name =~ m/($hs_regex)/) { + # Hotspot probes are triggered by calling a Java program which sets + # up appropriate conditions in the JVM to hit the probe points. + $probe_suffix =~ s/($hs_regex)//; + # Some probes are optimized out in the default JVM configuration, so + # we need some special arguments. + if ($probe_suffix =~ m/^monitor/) { + $jvm_xxarg = "-XX:+DTraceMonitorProbes"; + } + elsif ($probe_suffix =~ m/^method_(entry|return)$/) { + $jvm_xxarg = "-XX:+DTraceMethodProbes"; + } + elsif ($probe_suffix =~ m/^object_alloc$/) { + $jvm_xxarg = "-XX:+DTraceAllocProbes"; + } + elsif ($probe_suffix =~ m/^(method_compile|compiled_method)/) { + # Default here is much larger, this way our test doesn't need to + # run as long. + $jvm_xxarg = "-XX:CompileThreshold=100"; + } + $stap_command = "$stap_command '$java_exec $jvm_xxarg staptest.SystemtapTester $probe_suffix'"; + } + else { + just_log("Probe $probe_name has no test defined."); + $broken_count++; + next; + } + $stap_command = "$stap_command | grep \"$probe_output\" 2>&1 >> /dev/null"; + print("."); + just_log($stap_command); + system($stap_command); + if ($? == 0) { + just_log("Probe $probe_name working."); + $working_count++; + } + else { + print("\n"); + log_and_print("Probe $probe_name failed."); + $broken_count++; + } + } + print("\n"); +} + +# Output a tally of test results. +sub summarize { + if ($working_count) { + log_and_print("Working probes: $working_count"); + } + if ($broken_count) { + log_and_print("Broken probes: $broken_count"); + } + if ($undetected_count) { + log_and_print("Undetected probes: $undetected_count"); + } + +} + +# Any text that should follow a test run in the log file goes here. +sub log_postamble { + if ($broken_count | $undetected_count) { + log_and_print("Some tests did not work as expected. See file " . + $logfile_name . " for details."); + } + just_log("End of test run"); +} + +# Remove compiled files and close file handle(s). Any other cleanup needed +# should be added here. +sub clean_up { + log_and_print("Removing compiled test files."); + rmtree('staptest'); + unlink <*.o>; + unlink <*.so>; + unlink "JNIStapTest"; + if ($log_file) { + close($log_file); + } +} + + +# HELPER SUBROUTINES +# Subroutines other than top-level. + +# Used when processing arguments to set a number of variables that refer to +# files/directories within $JAVA_HOME. +sub set_java_vars { + my ($_java_home, $_arch_dir) = @_; + $java_exec = "$_java_home/jre/bin/java"; + $javac_exec = "$_java_home/bin/javac"; + $jvm_dir = "$_java_home/jre/lib/$_arch_dir/server"; + $jvm_so = "$jvm_dir/libjvm.so"; + push(@include_dirs, "-I$_java_home/include"); + push(@include_dirs, "-I$_java_home/include/linux"); + die "Java executable not found: $java_exec\n" unless (-x $java_exec); + die "Javac executable not found: $javac_exec\n" unless (-x $javac_exec); + die "Directory not found: $jvm_dir\n" unless (-d $jvm_dir); + die "File not found: $jvm_so\n" unless (-r $jvm_so); + die "jni.h or jni_md.h headers not found within directory: $_java_home/j2sdk-image/include" + unless ((-r "$_java_home/include/jni.h") && + (-r "$_java_home/include/linux/jni_md.h")); +} + +# When testing against an installed jdk, we need to know the current +# architecture to find libjvm.so within the jdk directory tree. +sub get_arch_dir { + my $sys_arch = $Config{archname}; + if ($sys_arch =~ m/x86_64/) { + return "amd64"; + } + elsif ($sys_arch =~ m/i.86/) { + return "i586"; + } + elsif ($sys_arch =~ m/alpha/) { + return "alpha"; + } + elsif ($sys_arch =~ m/arm/) { + return "arm"; + } + elsif ($sys_arch =~ m/mips-/) { + return "mips"; + } + elsif ($sys_arch =~ m/mipsel/) { + return "mipsel"; + } + elsif ($sys_arch =~ m/powerpc-/) { + return "ppc"; + } + elsif ($sys_arch =~ m/powerpc64/) { + return "ppc64"; + } + elsif ($sys_arch =~ m/sparc64/) { + return "sparcv9"; + } + elsif ($sys_arch =~ m/s390/) { + return "s390"; + } + else { + die "Unknown arch: $sys_arch\n"; + } +} + +# If we are logging, send arguments as lines to log file. +sub just_log { + if ($log_file) { + foreach my $line (@_) { + print $log_file "$line\n"; + } + } +} + +# This is sort of like a "tee $logfile". +sub log_and_print { + just_log(@_); + foreach my $line (@_) { + print("$line\n"); + } +} + + +# OVERRIDDEN FUNCTIONS + +# Runs when --help option is passed, thanks to hooks in Getopt::Std::getopts(); +sub main::HELP_MESSAGE { + print("\n"); + print("To run test suite:\n"); + print("\n"); + print(" $ ./jstaptest.sh [[--help] | [<[-B -A ] | [-J ]> [-S ] [- ]]]\n"); + print("\n"); + print("--help will display this help message.\n"); + print("\n"); + print("\n"); + print("One of -BA or -J *must* be used.\n"); + print("\n"); + print("-J can be used to specify the location of the icedtea install on\n"); + print(" the system. Specifically, this directory should contain the\n"); + print(" directories bin, jre, lib, and include. Only the tapsets in\n"); + print(" systemtap's default directory will be tested. Arch-specific\n"); + print(" directories will be determined from the system's arch.\n"); + print("\n"); + print("\n"); + print("-BA can be used to specify a local icedtea build.\n"); + print(" -B should be equivalent to the \$(BUILD_OUTPUT_DIR) in the\n"); + print(" icedtea Makefile.\n"); + print(" For example:\n"); + print(" ./jstaptest.sh -B \\\n"); + print(" /path/to/icedtea6/openjdk/build//\n"); + print("\n"); + print(" -A must also be used when -B is used, to specify the \n"); + print(" architecture of the icedtea build, \$(BUILD_ARCH_DIR) from\n"); + print(" the icedtea Makefile.\n"); + print("\n"); + print("\n"); + print("-S can be used to specify the directory where the test source\n"); + print(" code can be found. If it is omitted, the current working\n"); + print(" directory is assumed.\n"); + print("\n"); + print("\n"); + print("-o or -a specify a log file for more detailed output.\n"); + print(" Using -o will replace the existing file if present, while -a\n"); + print(" will append. These two options are mutually exclusive. The\n"); + print(" log file will contain specifics of which probes pass, fail,\n"); + print(" or are not detected by systemtap, along with a record of\n"); + print(" the arguments passed to the script and the command executed\n"); + print(" for each test\n"); + print("\n"); +} + +####################################################################### + From omajid at redhat.com Fri Mar 23 16:12:30 2012 From: omajid at redhat.com (Omair Majid) Date: Fri, 23 Mar 2012 19:12:30 -0400 Subject: [RFC] DefaultLaunchHandlerTest - fix imports In-Reply-To: <1332543491.1397.7.camel@localhost.localdomain> References: <1332543491.1397.7.camel@localhost.localdomain> Message-ID: <4F6D035E.4080905@redhat.com> On 03/23/2012 06:58 PM, Thomas Meyer wrote: > diff -r 540254dcb2b3 -r 4ec09b4791b9 tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java > --- a/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java Sun Mar 18 12:25:49 2012 +0100 > +++ b/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java Thu Mar 22 22:38:56 2012 +0100 > @@ -43,6 +43,10 @@ > import java.io.ByteArrayOutputStream; > import java.io.PrintStream; > > +import net.sourceforge.jnlp.DefaultLaunchHandler; > +import net.sourceforge.jnlp.LaunchException; > +import net.sourceforge.jnlp.ParseException; > + This looks really weird. DefaultLaunchHandlerTest is in the net.sourceforge.jnlp package. Why would it need to import the classes in the same package? Are you running into some sort of error without this patch? 'make check' works fine for me and shows all tests in DefaultLaunchHandlerTest pass. Cheers, Omair From omajid at redhat.com Sat Mar 24 00:13:59 2012 From: omajid at redhat.com (Omair Majid) Date: Sat, 24 Mar 2012 03:13:59 -0400 Subject: [icedtea-web] RFC: Fix pac tests Message-ID: <4F6D7437.8010804@redhat.com> Hi, The attached patch fixes the pac tests. With the patch applied, the results change from: Test results: passed: 220; failed: 64; to: Test results: passed: 285; failed: 0; I have rewritten the testDateRange* tests so date wrapping is handled correctly. I also discovered two bugs in pac-funcs.js (yes, tests help find bugs!) and I have fixed those too. Okay to commit? Thanks, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: fix-pac-tests-01.patch Type: text/x-patch Size: 29068 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120324/06c4461d/fix-pac-tests-01.patch From stefan at complang.tuwien.ac.at Sat Mar 24 00:36:41 2012 From: stefan at complang.tuwien.ac.at (Stefan Ring) Date: Sat, 24 Mar 2012 08:36:41 +0100 Subject: [RFC] Spelling fixed In-Reply-To: <1332543358.1397.6.camel@localhost.localdomain> References: <1332543358.1397.6.camel@localhost.localdomain> Message-ID: It seems you went only half of the way. > - ? ? * @return weather cached server is alive. If non singleton instance is runnig, new is created. > + ? ? * @return weather cached server is alive. If non singleton instance is running, new is created. Whether, not weather. > - ? ? * @throws IOException if connection cant be established or resource do not exists > + ? ? * @throws IOException if connection can't be established or resource do not exists does not exist. > - ? ? * wrapper arround Runtime.getRuntime().exec(...) which ensures taht process is run inside its own, by us controlled, thread. > - ? ? * Proces sbuilder caused som einexpected and wired behaviour:/ > + ? ? * wrapper around Runtime.getRuntime().exec(...) which ensures that process is run inside its own, by us controlled, thread. > + ? ? * Process builder caused some unexpected and wired behavior :/ Weird behavior. From thomas at m3y3r.de Sat Mar 24 04:41:11 2012 From: thomas at m3y3r.de (Thomas Meyer) Date: Sat, 24 Mar 2012 12:41:11 +0100 Subject: [RFC] DefaultLaunchHandlerTest - fix imports In-Reply-To: <4F6D035E.4080905@redhat.com> References: <1332543491.1397.7.camel@localhost.localdomain> <4F6D035E.4080905@redhat.com> Message-ID: <1332589271.1397.8.camel@localhost.localdomain> Am Freitag, den 23.03.2012, 19:12 -0400 schrieb Omair Majid: > On 03/23/2012 06:58 PM, Thomas Meyer wrote: > > diff -r 540254dcb2b3 -r 4ec09b4791b9 tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java > > --- a/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java Sun Mar 18 12:25:49 2012 +0100 > > +++ b/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java Thu Mar 22 22:38:56 2012 +0100 > > @@ -43,6 +43,10 @@ > > import java.io.ByteArrayOutputStream; > > import java.io.PrintStream; > > > > +import net.sourceforge.jnlp.DefaultLaunchHandler; > > +import net.sourceforge.jnlp.LaunchException; > > +import net.sourceforge.jnlp.ParseException; > > + > > This looks really weird. DefaultLaunchHandlerTest is in the > net.sourceforge.jnlp package. Why would it need to import the classes in > the same package? > > Are you running into some sort of error without this patch? 'make check' > works fine for me and shows all tests in DefaultLaunchHandlerTest pass. oops! yes you are right. sorry for the noise. kind regards thomas From bugzilla-daemon at icedtea.classpath.org Sun Mar 25 10:11:10 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 25 Mar 2012 17:11:10 +0000 Subject: [Bug 905] New: OpenOces bootstrap error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=905 Bug #: 905 Summary: OpenOces bootstrap error Classification: Unclassified Product: IcedTea Version: unspecified Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: Bootstrapping AssignedTo: ahughes at redhat.com ReportedBy: nikolaj.hansen at hsys.dk CC: unassigned at icedtea.classpath.org I am currently working as a freelance software engineer on the Danish PKI project nemid. The opensource part of the project consists of tools on openoces.org. It seems the JAR loader in icedtea has problems with parametrizied paths to jar files. I made an example of (non)working pages here: Notworking http://www.barnabas.dk/openoces/notworking.html Working http://www.barnabas.dk/openoces/working.html The both pages will load an applet with Sun JRE. The error logs the following to console: nikolaj at betteskid:~$ firefox java version "1.6.0_23" OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2) OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) JAR https://opensign.danid.dk/OpenSign-bootstrapped.jar?time=1332693228213 not found. Continuing. net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:728) at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:672) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:884) Caused by: java.lang.ClassNotFoundException: org.openoces.opensign.client.applet.bootstrap.BootApplet at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1089) at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:712) ... 2 more Caused by: java.lang.ClassNotFoundException: org.openoces.opensign.client.applet.bootstrap.BootApplet at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1089) at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:712) at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:672) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:884) java.lang.NullPointerException at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:109) at sun.applet.AppletPanel.run(AppletPanel.java:380) at net.sourceforge.jnlp.NetxPanel.run(NetxPanel.java:69) at java.lang.Thread.run(Thread.java:679) java.lang.NullPointerException at sun.applet.AppletPanel.run(AppletPanel.java:430) at net.sourceforge.jnlp.NetxPanel.run(NetxPanel.java:69) at java.lang.Thread.run(Thread.java:679) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Sun Mar 25 11:01:23 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 25 Mar 2012 18:01:23 +0000 Subject: [Bug 906] New: icedtea always redownloads web start application Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=906 Bug #: 906 Summary: icedtea always redownloads web start application Classification: Unclassified Product: IcedTea-Web Version: 1.2 Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: NetX (javaws) AssignedTo: omajid at redhat.com ReportedBy: aditsu at yahoo.com CC: unassigned at icedtea.classpath.org Every time I run cgoban (from http://www.gokgs.com/download.jsp "CGoban for Java Web Start"), icedtea redownloads the jar file. It's supposed to cache it and only download when it changes. The problem doesn't happen with Sun's jre/javaws. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From jvanek at redhat.com Mon Mar 26 01:49:52 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 26 Mar 2012 10:49:52 +0200 Subject: [RFC] Spelling fixed In-Reply-To: References: <1332543358.1397.6.camel@localhost.localdomain> Message-ID: <4F702DB0.3060608@redhat.com> On 03/24/2012 08:36 AM, Stefan Ring wrote: > It seems you went only half of the way. > >> - * @return weather cached server is alive. If non singleton instance is runnig, new is created. >> + * @return weather cached server is alive. If non singleton instance is running, new is created. > > Whether, not weather. > >> - * @throws IOException if connection cant be established or resource do not exists >> + * @throws IOException if connection can't be established or resource do not exists > > does not exist. > >> - * wrapper arround Runtime.getRuntime().exec(...) which ensures taht process is run inside its own, by us controlled, thread. >> - * Proces sbuilder caused som einexpected and wired behaviour:/ >> + * wrapper around Runtime.getRuntime().exec(...) which ensures that process is run inside its own, by us controlled, thread. >> + * Process builder caused some unexpected and wired behavior :/ > > Weird behavior. Guilty one thinks all those fixes really do not change any meanings and are worthy and can go inside without any harm (except on my (long ago broken) pride;( ) Thanx! J. From ptisnovs at icedtea.classpath.org Mon Mar 26 02:54:16 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 26 Mar 2012 09:54:16 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/ClippingPathByEllipse... Message-ID: changeset 0ff7c385c559 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=0ff7c385c559 author: Pavel Tisnovsky date: Mon Mar 26 11:56:56 2012 +0200 * src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java: Added new tests to this test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java | 205 +++++++++--- 2 files changed, 154 insertions(+), 56 deletions(-) diffs (305 lines): diff -r 39e27deb5d4e -r 0ff7c385c559 ChangeLog --- a/ChangeLog Fri Mar 23 11:06:45 2012 +0100 +++ b/ChangeLog Mon Mar 26 11:56:56 2012 +0200 @@ -1,3 +1,8 @@ +2012-03-26 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java: + Added new tests to this test suite. + 2012-03-23 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingPathByRectangleArea.java: diff -r 39e27deb5d4e -r 0ff7c385c559 src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java --- a/src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java Fri Mar 23 11:06:45 2012 +0100 +++ b/src/org/gfxtest/testsuites/ClippingPathByEllipseShape.java Mon Mar 26 11:56:56 2012 +0200 @@ -40,6 +40,7 @@ package org.gfxtest.testsuites; +import java.awt.BasicStroke; import java.awt.Graphics2D; @@ -278,6 +279,126 @@ } /** + * Check if line path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipLinePathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render ellipse which is used as a clip shape + CommonClippingOperations.renderClipEllipse(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawLinePathClippedByEllipseShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipQuadraticPathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render ellipse which is used as a clip shape + CommonClippingOperations.renderClipEllipse(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawQuadraticPathClippedByEllipseShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCubicPathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render ellipse which is used as a clip shape + CommonClippingOperations.renderClipEllipse(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawCubicPathClippedByEllipseShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if closed path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipClosedPathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render ellipse which is used as a clip shape + CommonClippingOperations.renderClipEllipse(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawClosedPathClippedByEllipseShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if crossed closed path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with zero stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCrossedClosedPathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + { + // render ellipse which is used as a clip shape + CommonClippingOperations.renderClipEllipse(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set clip region and draw the path + drawCrossedPathClippedByEllipseShape(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Check if line path could be clipped by an ellipse shape. Path is rendered * using stroke paint with thick stroke width. * @@ -518,8 +639,8 @@ } /** - * Check if line path could be clipped by an ellipse shape. Path is rendered - * using stroke paint with zero width stroke. + * Check if line path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with default stroke width. * * @param image * work image @@ -527,14 +648,12 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testClipLinePathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipLinePathByEllipseShapeDashedStrokePaint(TestImage image, Graphics2D graphics2d) { - // render ellipse which is used as a clip shape + // render clip ellipse CommonClippingOperations.renderClipEllipse(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); - // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path drawLinePathClippedByEllipseShape(image, graphics2d); // test result @@ -542,8 +661,8 @@ } /** - * Check if quadratic Bezier path could be clipped by an ellipse shape. Path - * is rendered using stroke paint with zero width stroke. + * Check if closed path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with default stroke width. * * @param image * work image @@ -551,23 +670,21 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testClipQuadraticPathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipClosedPathByEllipseShapeDashedStrokePaint(TestImage image, Graphics2D graphics2d) { - // render ellipse which is used as a clip shape + // render clip ellipse CommonClippingOperations.renderClipEllipse(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); - // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path - drawQuadraticPathClippedByEllipseShape(image, graphics2d); + drawClosedPathClippedByEllipseShape(image, graphics2d); // test result return TestResult.PASSED; } /** - * Check if cubic Bezier path could be clipped by an ellipse shape. Path - * is rendered using stroke paint with zero width stroke. + * Check if line path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with thick stroke width. * * @param image * work image @@ -575,23 +692,23 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testClipCubicPathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipLinePathByEllipseShapeDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) { - // render ellipse which is used as a clip shape + // render clip ellipse CommonClippingOperations.renderClipEllipse(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path - drawCubicPathClippedByEllipseShape(image, graphics2d); + drawLinePathClippedByEllipseShape(image, graphics2d); // test result return TestResult.PASSED; } /** - * Check if closed path could be clipped by an ellipse shape. Path - * is rendered using stroke paint with zero width stroke. + * Check if closed path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with thick stroke width. * * @param image * work image @@ -599,14 +716,14 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testClipClosedPathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) + public TestResult testClipClosedPathByEllipseShapeDashedThickStrokePaint(TestImage image, Graphics2D graphics2d) { - // render ellipse which is used as a clip shape + // render clip ellipse CommonClippingOperations.renderClipEllipse(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); // set clip region and draw the path drawClosedPathClippedByEllipseShape(image, graphics2d); // test result @@ -614,30 +731,6 @@ } /** - * Check if crossed closed path could be clipped by an ellipse shape. Path - * is rendered using stroke paint with zero width stroke. - * - * @param image - * work image - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testClipCrossedClosedPathByEllipseShapeZeroStrokePaint(TestImage image, Graphics2D graphics2d) - { - // render ellipse which is used as a clip shape - CommonClippingOperations.renderClipEllipse(image, graphics2d); - // set stroke color - CommonRenderingStyles.setStrokeColor(graphics2d); - // set stroke width - CommonRenderingStyles.setStrokeZeroThick(graphics2d); - // set clip region and draw the path - drawCrossedPathClippedByEllipseShape(image, graphics2d); - // test result - return TestResult.PASSED; - } - - /** * Entry point to the test suite. * * @param args From bugzilla-daemon at icedtea.classpath.org Mon Mar 26 06:21:46 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 26 Mar 2012 13:21:46 +0000 Subject: [Bug 905] OpenOces bootstrap error In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=905 JiriVanek changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jvanek at redhat.com --- Comment #1 from JiriVanek 2012-03-26 13:21:46 UTC --- I have created an reproducer to testsuite, and I can confirm - this is bug, and is reproducible only on signed applets. Unsigned appelts and both signed and unsigned jnlp applications are working fine. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at redhat.com Mon Mar 26 07:02:07 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 26 Mar 2012 16:02:07 +0200 Subject: Reviewer needed: backport of "6792400: Avoid loading of Normalizer resources, for simple uses" into IcedTea6 HEAD Message-ID: <4F7076DF.1060500@redhat.com> Hi, I'd like to push following backport to IcedTea6 HEAD (and to OpenJDK6 too - will do parallel request): "6792400: Avoid loading of Normalizer resources, for simple uses". This backport fixes following IT6 bug: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=882 hg diff created against recent IcedTea6 HEAD is stored in an attachment. ChangeLog entry: 2012-03-26 Pavel Tisnovsky * patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: Backport of: 6792400: Avoid loading of Normalizer resources for simple uses * NEWS: Mention backport. * Makefile.am: Updated This backport works correctly - passed all regular tests. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: hg_diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120326/5d87b311/hg_diff.ksh From bugzilla-daemon at icedtea.classpath.org Mon Mar 26 07:39:00 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 26 Mar 2012 14:39:00 +0000 Subject: [Bug 905] OpenOces bootstrap error In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=905 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dbhole at redhat.com Component|Bootstrapping |Plugin Version|unspecified |hg AssignedTo|ahughes at redhat.com |dbhole at redhat.com Product|IcedTea |IcedTea-Web Target Milestone|--- |1.1.6 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Mon Mar 26 07:39:26 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 26 Mar 2012 14:39:26 +0000 Subject: [Bug 905] OpenOces bootstrap error In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=905 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|dbhole at redhat.com |ddadacha at redhat.com -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From jvanek at redhat.com Mon Mar 26 08:50:02 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 26 Mar 2012 17:50:02 +0200 Subject: Reviewer needed: backport of "6792400: Avoid loading of Normalizer resources, for simple uses" into IcedTea6 HEAD In-Reply-To: <4F7076DF.1060500@redhat.com> References: <4F7076DF.1060500@redhat.com> Message-ID: <4F70902A.1040405@redhat.com> On 03/26/2012 04:02 PM, Pavel Tisnovsky wrote: > Hi, > > I'd like to push following backport to IcedTea6 HEAD (and to OpenJDK6 too - will do parallel request): > "6792400: Avoid loading of Normalizer resources, for simple uses". > > This backport fixes following IT6 bug: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=882 > > hg diff created against recent IcedTea6 HEAD is stored in an attachment. > > ChangeLog entry: > 2012-03-26 Pavel Tisnovsky > > * patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: > Backport of: 6792400: Avoid loading of Normalizer resources > for simple uses > * NEWS: Mention backport. > * Makefile.am: Updated > > This backport works correctly - passed all regular tests. > > Can anybody please review this change? > > Thank you in advance, > Pavel Hi! I have walked across the change set and I have few questins: -Sun bugzilla is mentioning, that it is "just" performance improvement. ? -As far as I know, the Jira was falling _inside_ normalize method(s), so this fix looks like not fixing the issue, but just to walk-around for just-ascii texts. Am I right? Was the jira failures caused just-by-ascii input files? -I know that you have dig around to find "some fixing backport", so there is none fixing just corrupted normalizer? -Also I know that the reproducer was quite complicated, but still, can you ssy little bit more about it? I do not believe there is direct fix for this issue, and unless there is one, and this is the last of backport for jira issue this should go in no metter how much I dont like it :) Thanx for dooing it. J. From ptisnovs at redhat.com Mon Mar 26 09:18:57 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 26 Mar 2012 18:18:57 +0200 Subject: Reviewer needed: backport of "6792400: Avoid loading of Normalizer resources, for simple uses" into IcedTea6 HEAD In-Reply-To: <4F70902A.1040405@redhat.com> References: <4F7076DF.1060500@redhat.com> <4F70902A.1040405@redhat.com> Message-ID: <4F7096F1.8010806@redhat.com> Jiri Vanek wrote: > On 03/26/2012 04:02 PM, Pavel Tisnovsky wrote: >> Hi, >> >> I'd like to push following backport to IcedTea6 HEAD (and to OpenJDK6 >> too - will do parallel request): >> "6792400: Avoid loading of Normalizer resources, for simple uses". >> >> This backport fixes following IT6 bug: >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=882 >> >> hg diff created against recent IcedTea6 HEAD is stored in an attachment. >> >> ChangeLog entry: >> 2012-03-26 Pavel Tisnovsky >> >> * >> patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: >> Backport of: 6792400: Avoid loading of Normalizer resources >> for simple uses >> * NEWS: Mention backport. >> * Makefile.am: Updated >> >> This backport works correctly - passed all regular tests. >> >> Can anybody please review this change? >> >> Thank you in advance, >> Pavel > > Hi! > > I have walked across the change set and I have few questins: Thanks Jiri! > > -Sun bugzilla is mentioning, that it is "just" performance improvement. > ? > -As far as I know, the Jira was falling _inside_ normalize method(s), so > this fix looks like not fixing the issue, but just to walk-around for > just-ascii texts. The method for string normalization is called from the static block and it throws exception when called with ASCII-only string. There's nothing which should be normalized in such strings ;-) > Am I right? > Was the jira failures caused just-by-ascii input files? Yes. To be precise - it does not work with test files but only with text strings. > -I know that you have dig around to find "some fixing backport", so > there is none fixing just corrupted normalizer? It's not needed at all to fix bug #882 and as you know nobody were happy with 1MB patch ;-) I could try to find a fix for the normalizer, but it won't be immediate which will slows us down. > -Also I know that the reproducer was quite complicated, but still, can > you ssy little bit more about it? Hmm I could try to export a ST from the test reports. > > I do not believe there is direct fix for this issue, and unless there is > one, and this is the last of backport for jira issue this should go in > no metter how much I dont like it :) Heh what's wrong with this patch. After all it'll make IcedTea6 quite quicker :-) > > Thanx for dooing it. > J. From jvanek at redhat.com Mon Mar 26 09:21:28 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 26 Mar 2012 18:21:28 +0200 Subject: Reviewer needed: backport of "6792400: Avoid loading of Normalizer resources, for simple uses" into IcedTea6 HEAD In-Reply-To: <4F7096F1.8010806@redhat.com> References: <4F7076DF.1060500@redhat.com> <4F70902A.1040405@redhat.com> <4F7096F1.8010806@redhat.com> Message-ID: <4F709788.70106@redhat.com> On 03/26/2012 06:18 PM, Pavel Tisnovsky wrote: > Jiri Vanek wrote: >> On 03/26/2012 04:02 PM, Pavel Tisnovsky wrote: >>> Hi, >>> >>> I'd like to push following backport to IcedTea6 HEAD (and to OpenJDK6 >>> too - will do parallel request): >>> "6792400: Avoid loading of Normalizer resources, for simple uses". >>> >>> This backport fixes following IT6 bug: >>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=882 >>> >>> hg diff created against recent IcedTea6 HEAD is stored in an attachment. >>> >>> ChangeLog entry: >>> 2012-03-26 Pavel Tisnovsky >>> >>> * >>> patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: >>> Backport of: 6792400: Avoid loading of Normalizer resources >>> for simple uses >>> * NEWS: Mention backport. >>> * Makefile.am: Updated >>> >>> This backport works correctly - passed all regular tests. >>> >>> Can anybody please review this change? >>> >>> Thank you in advance, >>> Pavel >> >> Hi! >> >> I have walked across the change set and I have few questins: > > Thanks Jiri! > >> >> -Sun bugzilla is mentioning, that it is "just" performance improvement. >> ? >> -As far as I know, the Jira was falling _inside_ normalize method(s), so >> this fix looks like not fixing the issue, but just to walk-around for >> just-ascii texts. > > The method for string normalization is called from the static block and it throws > exception when called with ASCII-only string. There's nothing which should be > normalized in such strings ;-) > >> Am I right? >> Was the jira failures caused just-by-ascii input files? > > Yes. To be precise - it does not work with test files but only with text strings. > >> -I know that you have dig around to find "some fixing backport", so >> there is none fixing just corrupted normalizer? > > It's not needed at all to fix bug #882 and as you know nobody were happy with > 1MB patch ;-) I could try to find a fix for the normalizer, but it won't be > immediate which will slows us down. > >> -Also I know that the reproducer was quite complicated, but still, can >> you ssy little bit more about it? > > Hmm I could try to export a ST from the test reports. > >> >> I do not believe there is direct fix for this issue, and unless there is >> one, and this is the last of backport for jira issue this should go in >> no metter how much I dont like it :) > > Heh what's wrong with this patch. After all it'll make IcedTea6 quite quicker :-) > >> >> Thanx for dooing it. >> J. > Ok... Last question: I have tried to reproduce.. Then I have seen the original reproducer.. omg... Can you just explain what te reprodcuer is trying to do? After the explanation. Ok for... head and 1.11? J From jvanek at redhat.com Mon Mar 26 10:05:41 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 26 Mar 2012 19:05:41 +0200 Subject: Reviewer needed: backport of "6792400: Avoid loading of Normalizer resources, for simple uses" into IcedTea6 HEAD In-Reply-To: <4F709DB3.6010100@redhat.com> References: <4F7076DF.1060500@redhat.com> <4F70902A.1040405@redhat.com> <4F7096F1.8010806@redhat.com> <4F709788.70106@redhat.com> <4F709DB3.6010100@redhat.com> Message-ID: <4F70A1E5.2040400@redhat.com> On 03/26/2012 06:47 PM, Pavel Tisnovsky wrote: > Jiri Vanek wrote: >> On 03/26/2012 06:18 PM, Pavel Tisnovsky wrote: >>> Jiri Vanek wrote: >>>> On 03/26/2012 04:02 PM, Pavel Tisnovsky wrote: >>>>> Hi, >>>>> >>>>> I'd like to push following backport to IcedTea6 HEAD (and to OpenJDK6 >>>>> too - will do parallel request): >>>>> "6792400: Avoid loading of Normalizer resources, for simple uses". >>>>> >>>>> This backport fixes following IT6 bug: >>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=882 >>>>> >>>>> hg diff created against recent IcedTea6 HEAD is stored in an >>>>> attachment. >>>>> >>>>> ChangeLog entry: >>>>> 2012-03-26 Pavel Tisnovsky >>>>> >>>>> * >>>>> patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: >>>>> Backport of: 6792400: Avoid loading of Normalizer resources >>>>> for simple uses >>>>> * NEWS: Mention backport. >>>>> * Makefile.am: Updated >>>>> >>>>> This backport works correctly - passed all regular tests. >>>>> >>>>> Can anybody please review this change? >>>>> >>>>> Thank you in advance, >>>>> Pavel >>>> >>>> Hi! >>>> >>>> I have walked across the change set and I have few questins: >>> >>> Thanks Jiri! >>> >>>> >>>> -Sun bugzilla is mentioning, that it is "just" performance improvement. >>>> ? >>>> -As far as I know, the Jira was falling _inside_ normalize method(s), so >>>> this fix looks like not fixing the issue, but just to walk-around for >>>> just-ascii texts. >>> >>> The method for string normalization is called from the static block >>> and it throws >>> exception when called with ASCII-only string. There's nothing which >>> should be >>> normalized in such strings ;-) >>> >>>> Am I right? >>>> Was the jira failures caused just-by-ascii input files? >>> >>> Yes. To be precise - it does not work with test files but only with >>> text strings. >>> >>>> -I know that you have dig around to find "some fixing backport", so >>>> there is none fixing just corrupted normalizer? >>> >>> It's not needed at all to fix bug #882 and as you know nobody were >>> happy with >>> 1MB patch ;-) I could try to find a fix for the normalizer, but it >>> won't be >>> immediate which will slows us down. >>> >>>> -Also I know that the reproducer was quite complicated, but still, can >>>> you ssy little bit more about it? >>> >>> Hmm I could try to export a ST from the test reports. >>> >>>> >>>> I do not believe there is direct fix for this issue, and unless there is >>>> one, and this is the last of backport for jira issue this should go in >>>> no metter how much I dont like it :) >>> >>> Heh what's wrong with this patch. After all it'll make IcedTea6 quite >>> quicker :-) >>> >>>> >>>> Thanx for dooing it. >>>> J. >>> >> >> Ok... Last question: >> >> I have tried to reproduce.. Then I have seen the original reproducer.. >> omg... >> >> Can you just explain what te reprodcuer is trying to do? > > The reproducer is trying to check if correct wsdl is generated from a Java > file containing WS-related annotations. %-/ I have hoped for some simple reproducer which is sending corrupted string to the method :(( There exists nothing like that then? The patch looks ok now for me and you can push to move this thing forward finally. However any more-direct reproducer from you or more explanations from jboss guys will be more appreciated. btw - you must prepare patch for spec inclusion for this jira-big-patch because I do not believe there will be 1.11 release because of this. Thanx and dont beat me for the questions :( J > >> >> After the explanation. Ok for... head and 1.11? >> >> >> >> J > From jvanek at redhat.com Mon Mar 26 09:55:53 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 26 Mar 2012 18:55:53 +0200 Subject: [rfc][icedtea-web] reproducer for PR905 Message-ID: <4F709F99.30107@redhat.com> Hi all! This reproducer is representing pr905 behaviour. All the tests except signed jar with parametrised archive are passing, which is correct, and the failing test is representing the issue. However there is issue which make this reproducer ... useless. All the passing ones are nice, and we can include them (if you agree), but the falling one is signed applet (and simple signed applet test too) in browser. That means that user have to click on "trust" button :-/ And I have currently no idea how to forward to plugin something like -Xtrustall :-/ My only idea until now is some environment variable which will plugin forward to netx like Xtrustall. However - I have very strong feelings that this can be bloody security hole. (definietly is in windows, where you can use activeX to inject environment variable imho) So what do you think about the reproducer. Have it sense to push it without signed-applet-in-browser tests? For future - any ideas how to create automated tests for signed applets in browser? (without awt robot) If no.. Then it can serve to person which is fixing this issue. Best regards J. -------------- next part -------------- A non-text attachment was scrubbed... Name: pr905reproducer.diff Type: text/x-patch Size: 57627 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120326/61ea96af/pr905reproducer.diff From omajid at redhat.com Mon Mar 26 10:55:51 2012 From: omajid at redhat.com (Omair Majid) Date: Mon, 26 Mar 2012 13:55:51 -0400 Subject: [icedtea-web] RFC: Fix pac tests In-Reply-To: <4F70A806.8060108@redhat.com> References: <4F6D7437.8010804@redhat.com> <4F70A806.8060108@redhat.com> Message-ID: <4F70ADA7.2060707@redhat.com> Hi Jiri, On 03/26/2012 01:31 PM, Jiri Vanek wrote: > On 03/24/2012 08:13 AM, Omair Majid wrote: >> >> The attached patch fixes the pac tests. With the patch applied, the >> results change from: >> >> Test results: passed: 220; failed: 64; >> >> to: >> >> Test results: passed: 285; failed: 0; >> >> I have rewritten the testDateRange* tests so date wrapping is handled >> correctly. I also discovered two bugs in pac-funcs.js (yes, tests help >> find bugs!) and I have fixed those too. >> > Hi! The logic itself looks ok. The fullYear() fix can go inside > immediately (as separate patch) Thanks for the review! > But fixes inside /tests/netx/pac/pac-funcs-test.js contains both > cosmetic and functional fixes. Can you please separate them? (I think > that cosmetic ones can go inside imidietly without nay more reviewing) I am not entirely clear on what you mean. I haven't added or removed any tests. The test changes really are all cosmetic. As you know, the test were not able to handle day/month wraps and some tests would fail on the start or end of the month. The tests now handle these corner cases properly so they should behave the same on any given day. The actual cases they are testing (things like "is today within the date range yesterday-tomorrow?") has not been changed. Unless I made a mistake, that is. Please let me know if you see any such cases. > /me hopes not to make you angry to much :( > How would a patch review make me angry? I am going to thank you instead for raising your concerns! > When I was checking this issue I wanted to fix it, but now when I have > seen your change-set I'm very happy I did not so. Tyvm for very deep fix! No problem :) Cheers, Omair From jvanek at redhat.com Mon Mar 26 10:31:50 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 26 Mar 2012 19:31:50 +0200 Subject: [icedtea-web] RFC: Fix pac tests In-Reply-To: <4F6D7437.8010804@redhat.com> References: <4F6D7437.8010804@redhat.com> Message-ID: <4F70A806.8060108@redhat.com> On 03/24/2012 08:13 AM, Omair Majid wrote: > Hi, > > The attached patch fixes the pac tests. With the patch applied, the > results change from: > > Test results: passed: 220; failed: 64; > > to: > > Test results: passed: 285; failed: 0; > > I have rewritten the testDateRange* tests so date wrapping is handled > correctly. I also discovered two bugs in pac-funcs.js (yes, tests help > find bugs!) and I have fixed those too. > > Okay to commit? > > Thanks, > Omair Hi! The logic itself looks ok. The fullYear() fix can go inside immediately (as separate patch) But fixes inside /tests/netx/pac/pac-funcs-test.js contains both cosmetic and functional fixes. Can you please separate them? (I think that cosmetic ones can go inside imidietly without nay more reviewing) /me hopes not to make you angry to much :( When I was checking this issue I wanted to fix it, but now when I have seen your change-set I'm very happy I did not so. Tyvm for very deep fix! J. From ptisnovs at redhat.com Mon Mar 26 09:47:47 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 26 Mar 2012 18:47:47 +0200 Subject: Reviewer needed: backport of "6792400: Avoid loading of Normalizer resources, for simple uses" into IcedTea6 HEAD In-Reply-To: <4F709788.70106@redhat.com> References: <4F7076DF.1060500@redhat.com> <4F70902A.1040405@redhat.com> <4F7096F1.8010806@redhat.com> <4F709788.70106@redhat.com> Message-ID: <4F709DB3.6010100@redhat.com> Jiri Vanek wrote: > On 03/26/2012 06:18 PM, Pavel Tisnovsky wrote: >> Jiri Vanek wrote: >>> On 03/26/2012 04:02 PM, Pavel Tisnovsky wrote: >>>> Hi, >>>> >>>> I'd like to push following backport to IcedTea6 HEAD (and to OpenJDK6 >>>> too - will do parallel request): >>>> "6792400: Avoid loading of Normalizer resources, for simple uses". >>>> >>>> This backport fixes following IT6 bug: >>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=882 >>>> >>>> hg diff created against recent IcedTea6 HEAD is stored in an >>>> attachment. >>>> >>>> ChangeLog entry: >>>> 2012-03-26 Pavel Tisnovsky >>>> >>>> * >>>> patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: >>>> Backport of: 6792400: Avoid loading of Normalizer resources >>>> for simple uses >>>> * NEWS: Mention backport. >>>> * Makefile.am: Updated >>>> >>>> This backport works correctly - passed all regular tests. >>>> >>>> Can anybody please review this change? >>>> >>>> Thank you in advance, >>>> Pavel >>> >>> Hi! >>> >>> I have walked across the change set and I have few questins: >> >> Thanks Jiri! >> >>> >>> -Sun bugzilla is mentioning, that it is "just" performance improvement. >>> ? >>> -As far as I know, the Jira was falling _inside_ normalize method(s), so >>> this fix looks like not fixing the issue, but just to walk-around for >>> just-ascii texts. >> >> The method for string normalization is called from the static block >> and it throws >> exception when called with ASCII-only string. There's nothing which >> should be >> normalized in such strings ;-) >> >>> Am I right? >>> Was the jira failures caused just-by-ascii input files? >> >> Yes. To be precise - it does not work with test files but only with >> text strings. >> >>> -I know that you have dig around to find "some fixing backport", so >>> there is none fixing just corrupted normalizer? >> >> It's not needed at all to fix bug #882 and as you know nobody were >> happy with >> 1MB patch ;-) I could try to find a fix for the normalizer, but it >> won't be >> immediate which will slows us down. >> >>> -Also I know that the reproducer was quite complicated, but still, can >>> you ssy little bit more about it? >> >> Hmm I could try to export a ST from the test reports. >> >>> >>> I do not believe there is direct fix for this issue, and unless there is >>> one, and this is the last of backport for jira issue this should go in >>> no metter how much I dont like it :) >> >> Heh what's wrong with this patch. After all it'll make IcedTea6 quite >> quicker :-) >> >>> >>> Thanx for dooing it. >>> J. >> > > Ok... Last question: > > I have tried to reproduce.. Then I have seen the original reproducer.. > omg... > > Can you just explain what te reprodcuer is trying to do? The reproducer is trying to check if correct wsdl is generated from a Java file containing WS-related annotations. > > After the explanation. Ok for... head and 1.11? > > > > J From jon.vanalten at redhat.com Mon Mar 26 11:44:45 2012 From: jon.vanalten at redhat.com (Jon VanAlten) Date: Mon, 26 Mar 2012 14:44:45 -0400 (EDT) Subject: [PATCH 0 of 2] Add systemtap tapset tests In-Reply-To: Message-ID: <1fc89fee-e2e8-41f5-a76f-3729d5995a0e@zmail13.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > From: "Mark Wielaard" > To: distro-pkg-dev at openjdk.java.net > Cc: "Jon VanAlten" > Sent: Friday, March 23, 2012 6:49:52 PM > Subject: [PATCH 0 of 2] Add systemtap tapset tests > > Hi, > > These patches add the test framework that Jon wrote for testing the > systemtap tapset probes. It adds a large number of tests (498 probes > are tested). The first patch is largely Jon's work, I just tweaked it > a bit to make it a little more robust. The second patch just extends > the jstaptest.pl to add a couple of explicit jstack tests (simple and > full). > Hi Mark, Thanks for resurrecting these! > Jon, if you could take a look that would be appreciated. The changes > I made to your original were: > - Switched detect_probes from a negative test (see if the stap -l > fails) > to a positive test (see if that stap -l output matches the expected > probe name). And use -L to force expansion of all arguments. > - Added an explicit stap script run test to make sure the user has > enough permissions (and if not skip the actual probe tests). > - Made the test program do a little more so method_compiled tests > have enough time to detect all probe events (specifically run some > triggers twice with a small Thread.sleep in between to give hotspot > enough time to finish the jit compilation of a method). > Well, Present-Jon does see opportunities for improvements to the code that Past-Jon wrote way back then, but it does still look like it does what it is meant to do, and your improvements are sensible. I approve :) cheers, jon From bugzilla-daemon at icedtea.classpath.org Mon Mar 26 12:02:45 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 26 Mar 2012 19:02:45 +0000 Subject: [Bug 722] javaws fails to run signed application if unsigned files are present under META-INF/ In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=722 --- Comment #5 from Omair Majid 2012-03-26 19:02:45 UTC --- Another case: https://bugzilla.redhat.com/show_bug.cgi?id=755368 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From mjw at redhat.com Mon Mar 26 13:22:07 2012 From: mjw at redhat.com (Mark Wielaard) Date: Mon, 26 Mar 2012 22:22:07 +0200 Subject: [PATCH 0 of 2] Add systemtap tapset tests In-Reply-To: <1fc89fee-e2e8-41f5-a76f-3729d5995a0e@zmail13.collab.prod.int.phx2.redhat.com> References: <1fc89fee-e2e8-41f5-a76f-3729d5995a0e@zmail13.collab.prod.int.phx2.redhat.com> Message-ID: <20120326202207.GA29561@toonder.wildebeest.org> On Mon, Mar 26, 2012 at 02:44:45PM -0400, Jon VanAlten wrote: > > Jon, if you could take a look that would be appreciated. The changes > > I made to your original were: > > - Switched detect_probes from a negative test (see if the stap -l > > fails) > > to a positive test (see if that stap -l output matches the expected > > probe name). And use -L to force expansion of all arguments. > > - Added an explicit stap script run test to make sure the user has > > enough permissions (and if not skip the actual probe tests). > > - Made the test program do a little more so method_compiled tests > > have enough time to detect all probe events (specifically run some > > triggers twice with a small Thread.sleep in between to give hotspot > > enough time to finish the jit compilation of a method). > > > > Well, Present-Jon does see opportunities for improvements to the code > that Past-Jon wrote way back then, but it does still look like it > does what it is meant to do, and your improvements are sensible. I > approve :) Thanks. After merging with Andrew Hughes icedtea7 jdk7 u4 update I found one thing that needed improving. The thread_start and thread_stop tests had the thread id (tid) of the first user thread hard coded to 8. But the new hotspot started even more background threads. So I made the attached change to make the test accept any positive number tid. (It should also apply cleanly to 6, where I will add it to keep things in sync.) I am happy the tests showed the hotspot update didn't break anything. Next up is tweaking Andrew's introduction of SDTV3 and try to just do the same thing as Solaris (aka SDTV1, Apple uses SDTv2 but systemtap should just support the SDTV1 source level). Then lets see if we can just get any changes left directly into hotspot instead of carrying them as a patch in the tree. Thanks Andrew for the patch tweaks, they were correct, as the tests showed. The tweaking will be to get the diff as small as possible. And also thanks for getting rid of systemtap-alloc-size-workaround.patch. Cheers, Mark -------------- next part -------------- # HG changeset patch # User Mark Wielaard # Date 1332792442 -7200 # Node ID 81ebf494d83de2d260e6910a49facc6237bca674 # Parent a5c9abaa3f1a4fc1f687d81c00d2eef98602147b jstaptest.pl: thread_start and stop thread id can be any positive number. tid was hard coded as being '8', but newer hotspot might start more than 7 background threads before the first user thread is started. So allow tid to be any positive number. diff -r a5c9abaa3f1a -r 81ebf494d83d ChangeLog --- a/ChangeLog Mon Mar 26 19:33:38 2012 +0200 +++ b/ChangeLog Mon Mar 26 22:07:22 2012 +0200 @@ -1,3 +1,8 @@ +2012-03-26 Mark Wielaard + + * test/tapset/jstaptest.pl: thread_start and thread_stop thread id + can be any positive number. + 2012-03-23 Andrew John Hughes * patches/boot/pr39408.patch, diff -r a5c9abaa3f1a -r 81ebf494d83d test/tapset/jstaptest.pl --- a/test/tapset/jstaptest.pl Mon Mar 26 19:33:38 2012 +0200 +++ b/test/tapset/jstaptest.pl Mon Mar 26 22:07:22 2012 +0200 @@ -33,8 +33,8 @@ ["hotspot.vm_init_begin", "\"%s\\n\",name", "^vm_init_begin\$"], ["hotspot.vm_init_end", "\"%s\\n\",name", "^vm_init_end\$"], ["hotspot.vm_shutdown", "\"%s\\n\",name", "^vm_shutdown\$"], - ["hotspot.thread_start", "\"%sname=%stid=%dd=%d\\n\",name,thread_name,id,is_daemon", "^thread_startname=Thread-0tid=8d=0\$"], - ["hotspot.thread_stop", "\"%sname=%stid=%dd=%d\\n\",name,thread_name,id,is_daemon", "^thread_stopname=Thread-0tid=8d=0\$"], + ["hotspot.thread_start", "\"%sname=%stid=%dd=%d\\n\",name,thread_name,id,is_daemon", "^thread_startname=Thread-0tid=[0-9]\\+d=0\$"], + ["hotspot.thread_stop", "\"%sname=%stid=%dd=%d\\n\",name,thread_name,id,is_daemon", "^thread_stopname=Thread-0tid=[0-9]\\+d=0\$"], ["hotspot.class_loaded", "\"%sclass=%ssh=%d\\n\",name,class,is_shared", "class_loadedclass=staptest/ClassUnloadedProbeTestersh=0"], ["hotspot.class_unloaded", "\"%sclass=%ssh=%d\\n\",name,class,is_shared", "class_unloadedclass=staptest/ClassUnloadedProbeTestersh=0"], ["hotspot.method_compile_begin", "\"%sclass=%smethod=%ssig=%s\\n\",name,class,method,sig", "method_compile_beginclass=staptest/SystemtapTestermethod=allocateForNoReasonsig=(I)Ljava/lang/String;"], From jon.vanalten at redhat.com Mon Mar 26 13:33:01 2012 From: jon.vanalten at redhat.com (Jon VanAlten) Date: Mon, 26 Mar 2012 16:33:01 -0400 (EDT) Subject: [PATCH 0 of 2] Add systemtap tapset tests In-Reply-To: <20120326202207.GA29561@toonder.wildebeest.org> Message-ID: <08a9a07d-73cf-45a4-936d-d255397c6593@zmail13.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > From: "Mark Wielaard" > To: "Jon VanAlten" > Cc: "IcedTea" > Sent: Monday, March 26, 2012 4:22:07 PM > Subject: Re: [PATCH 0 of 2] Add systemtap tapset tests > > On Mon, Mar 26, 2012 at 02:44:45PM -0400, Jon VanAlten wrote: > > > Jon, if you could take a look that would be appreciated. The > > > changes > > > I made to your original were: > > > - Switched detect_probes from a negative test (see if the stap -l > > > fails) > > > to a positive test (see if that stap -l output matches the > > > expected > > > probe name). And use -L to force expansion of all arguments. > > > - Added an explicit stap script run test to make sure the user > > > has > > > enough permissions (and if not skip the actual probe tests). > > > - Made the test program do a little more so method_compiled tests > > > have enough time to detect all probe events (specifically run > > > some > > > triggers twice with a small Thread.sleep in between to give > > > hotspot > > > enough time to finish the jit compilation of a method). > > > > > > > Well, Present-Jon does see opportunities for improvements to the > > code > > that Past-Jon wrote way back then, but it does still look like it > > does what it is meant to do, and your improvements are sensible. I > > approve :) > > Thanks. > > After merging with Andrew Hughes icedtea7 jdk7 u4 update I found one > thing that needed improving. The thread_start and thread_stop tests > had the thread id (tid) of the first user thread hard coded to 8. > But the new hotspot started even more background threads. So I made > the attached change to make the test accept any positive number tid. > (It should also apply cleanly to 6, where I will add it to keep > things > in sync.) > This improvment also looks fine to me. cheers, jon From mark at icedtea.classpath.org Mon Mar 26 13:45:54 2012 From: mark at icedtea.classpath.org (mark at icedtea.classpath.org) Date: Mon, 26 Mar 2012 20:45:54 +0000 Subject: /hg/icedtea7: 4 new changesets Message-ID: changeset 666844f8bdb4 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=666844f8bdb4 author: Jon VanAlten date: Fri Mar 23 14:11:00 2012 +0100 Add tapset tests. * Makefile.am: Add target to run tapset tests. * tapset/hotspot_jni.stp.in: Add notes regarding required JVM option to GetField family of probe aliases. * test/tapset/ClassUnloadedProbeTester.java: Part of test coverage for hotspot.stp and hotspot_jni.stp tapsets. * test/tapset/JNIStapTest.c: Likewise. * test/tapset/JNITestClass.c: Likewise. * test/tapset/JNITestClass.h: Likewise. * test/tapset/JNITestClass.java: Likewise. * test/tapset/RunWrapper.java: Likewise. * test/tapset/StapJNIClassLoader.java: Likewise. * test/tapset/StapURLClassLoader.java: Likewise. * test/tapset/SystemtapTester.java: Likewise. * test/tapset/TestingRunner.java: Likewise. * test/tapset/jstaptest.pl: Wrapper script, compiles and runs tests for tapsets. changeset f67b9f19ee57 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=f67b9f19ee57 author: Mark Wielaard date: Fri Mar 23 22:39:35 2012 +0100 Add jstack tests to test/tapset/jstaptest.pl. changeset a5c9abaa3f1a in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=a5c9abaa3f1a author: Mark Wielaard date: Mon Mar 26 19:33:38 2012 +0200 Merge 7u4 update and tapset tests. No merge conflicts. Two probes fail: Probe hotspot.thread_start failed. Probe hotspot.thread_stop failed. changeset 81ebf494d83d in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=81ebf494d83d author: Mark Wielaard date: Mon Mar 26 22:07:22 2012 +0200 jstaptest.pl: thread_start and stop thread id can be any positive number. tid was hard coded as being '8', but newer hotspot might start more than 7 background threads before the first user thread is started. So allow tid to be any positive number. diffstat: ChangeLog | 80 + Makefile.am | 60 +- patches/boot/ant-javac.patch | 10 +- patches/boot/corba-defs.patch | 14 +- patches/boot/demos.patch | 18 +- patches/boot/ecj-diamond.patch | 1773 ++++++++++++-------- patches/boot/ecj-multicatch.patch | 45 + patches/boot/ecj-trywithresources.patch | 154 +- patches/boot/hotspot-jdk-dependency.patch | 20 +- patches/boot/pr39408.patch | 12 +- patches/cacao/launcher.patch | 20 +- patches/rhino.patch | 72 +- patches/systemtap-alloc-size-workaround.patch | 11 - patches/systemtap.patch | 93 +- tapset/hotspot_jni.stp.in | 20 +- test/tapset/ClassUnloadedProbeTester.java | 38 + test/tapset/JNIStapTest.c | 2107 +++++++++++++++++++++++++ test/tapset/JNITestClass.c | 7 + test/tapset/JNITestClass.h | 21 + test/tapset/JNITestClass.java | 121 + test/tapset/RunWrapper.java | 21 + test/tapset/StapJNIClassLoader.java | 64 + test/tapset/StapURLClassLoader.java | 24 + test/tapset/SystemtapTester.java | 202 ++ test/tapset/TestingRunner.java | 82 + test/tapset/jstaptest.pl | 1009 +++++++++++ 26 files changed, 5166 insertions(+), 932 deletions(-) diffs (truncated from 8651 to 500 lines): diff -r 732f30ec8b7b -r 81ebf494d83d ChangeLog --- a/ChangeLog Fri Mar 16 13:15:15 2012 +0100 +++ b/ChangeLog Mon Mar 26 22:07:22 2012 +0200 @@ -1,3 +1,83 @@ +2012-03-26 Mark Wielaard + + * test/tapset/jstaptest.pl: thread_start and thread_stop thread id + can be any positive number. + +2012-03-23 Andrew John Hughes + + * patches/boot/pr39408.patch, + * patches/cacao/launcher.patch: + Regenerated. + +2012-03-22 Andrew John Hughes + + * patches/systemtap-alloc-size-workaround.patch: + Removed; upstream. + * Makefile.am: + (JDK_UPDATE_VERSION): Bump to 4. + (CORBA_CHANGESET): Update to IcedTea7 forest head. + (HOTSPOT_CHANGESET): Likewise. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + (ICEDTEA_PATCHES): Drop upstreamed patch. + * patches/boot/ant-javac.patch, + * patches/boot/corba-defs.patch, + * patches/boot/demos.patch: + Regenerated. + * patches/boot/ecj-diamond.patch, + * patches/boot/ecj-multicatch.patch, + * patches/boot/ecj-trywithresources.patch: + Regenerated; additional cases added. + * patches/boot/hotspot-jdk-dependency.patch, + * patches/rhino.patch: + Regenerated. + * patches/systemtap.patch: + Rewritten. + +2012-03-23 Mark Wielaard + + * test/tapset/jstaptest.pl: Add jstack tests. + +2012-03-23 Jon VanAlten + + * Makefile.am: + Add target to run tapset tests. + * tapset/hotspot_jni.stp.in: + Add notes regarding required JVM option to GetField + family of probe aliases. + * test/tapset/ClassUnloadedProbeTester.java: + Part of test coverage for hotspot.stp and hotspot_jni.stp tapsets. + * test/tapset/JNIStapTest.c: + Likewise. + * test/tapset/JNITestClass.c: + Likewise. + * test/tapset/JNITestClass.h: + Likewise. + * test/tapset/JNITestClass.java: + Likewise. + * test/tapset/RunWrapper.java: + Likewise. + * test/tapset/StapJNIClassLoader.java: + Likewise. + * test/tapset/StapURLClassLoader.java: + Likewise. + * test/tapset/SystemtapTester.java: + Likewise. + * test/tapset/TestingRunner.java: + Likewise. + * test/tapset/jstaptest.pl: + Wrapper script, compiles and runs tests for tapsets. + 2012-03-16 Mark Wielaard * tapset/jstack.stp.in: Change symbolOopDesc to Symbol to accomodate diff -r 732f30ec8b7b -r 81ebf494d83d Makefile.am --- a/Makefile.am Fri Mar 16 13:15:15 2012 +0100 +++ b/Makefile.am Mon Mar 26 22:07:22 2012 +0200 @@ -1,24 +1,24 @@ # Dependencies OPENJDK_VERSION = b147 -JDK_UPDATE_VERSION = 02 +JDK_UPDATE_VERSION = 04 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = 78cd4b4fcb75 -HOTSPOT_CHANGESET = 433e4570d57c -JAXP_CHANGESET = 7300d2ab9fb2 -JAXWS_CHANGESET = d26ff33070cb -JDK_CHANGESET = afdcedc27c23 -LANGTOOLS_CHANGESET = 58f6a950cd72 -OPENJDK_CHANGESET = a66b58021165 +CORBA_CHANGESET = c628aeb3d72f +HOTSPOT_CHANGESET = b1dfb460ee5c +JAXP_CHANGESET = 9b7a2f21b8a8 +JAXWS_CHANGESET = 9ae185bd7ff2 +JDK_CHANGESET = 3377516da583 +LANGTOOLS_CHANGESET = 54b1383d794c +OPENJDK_CHANGESET = 3a0fd3cc84a0 -CORBA_SHA256SUM = c25abc052d0e3041c558869ba88f80bf3ff051efbcd20e6c22b862fdd4c066d4 -HOTSPOT_SHA256SUM = 51f4d29c9bfa7bc08a0e70be33b71e2af4f114b78d0a99a4e9c6f6a9977d0568 -JAXP_SHA256SUM = 0774d2acaa47052b8f529edae1ca868721a0164a956455958a6ea51550fa01e0 -JAXWS_SHA256SUM = 5f0a98280219fa8fe2926cfd4471fb0e98391b38a3c4b29743ad361832cea0e2 -JDK_SHA256SUM = 35ad431d5d80e9b77bdbadc5218500e8ea377c3c731ddab0db7179bc5860075f -LANGTOOLS_SHA256SUM = 3e66400ba51c5de4bf79be50dff41f47134ba2fcdbea845fb1ed0f492cfb0efb -OPENJDK_SHA256SUM = 714a000514e273bae755f4cc90df839a298583b38bb93518d6cf805dede99b6d +CORBA_SHA256SUM = b176cf1fd8a461413ab822236753cf455210e97c11a8d4224929582607c212b4 +HOTSPOT_SHA256SUM = 43d83d5209a9f748e6650c792ca8ef8d9a90d6e3c53e461993c6bffb8c37e972 +JAXP_SHA256SUM = 4d38e8a0fc0fcbe3ba8a56f9fc0960ecbf15cd4cef44b76fdc82418c008a33c3 +JAXWS_SHA256SUM = 60c6c62c851eafc15ff33e58aa625e6f58fd31f15328b121602a07891fc1d272 +JDK_SHA256SUM = 5707d697c2dfc44fbf91ec90721055b5a23ea4c77f0cb53abf00a0f53fa0845e +LANGTOOLS_SHA256SUM = 97821e49028d8d726fac9563c361c682146e037074179cbd68ed5cb80e82f9fa +OPENJDK_SHA256SUM = abe0c3b348c35f79117ef726bb2580b279024b1f73b6487fda4a1e717c738f9f CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 @@ -267,8 +267,7 @@ endif if ENABLE_SYSTEMTAP -ICEDTEA_PATCHES += patches/systemtap.patch \ - patches/systemtap-alloc-size-workaround.patch +ICEDTEA_PATCHES += patches/systemtap.patch endif if ENABLE_NSS @@ -725,9 +724,16 @@ all-local: icedtea-stage2 -check-local: jtregcheck +check-local: jtregcheck check-tapset -clean-local: clean-jtreg clean-jtreg-reports clean-pulse-java \ +clean-tests: clean-jtreg clean-tapset-report + if [ $(abs_top_srcdir) != $(abs_top_builddir) ] ; then \ + if [ -e test ] ; then \ + rmdir test ; \ + fi \ + fi + +clean-local: clean-tests clean-jtreg-reports clean-pulse-java \ clean-icedtea clean-icedtea-boot clean-clone clean-clone-boot \ clean-bootstrap-directory-stage1 clean-bootstrap-directory-stage2 \ clean-bootstrap-directory-symlink-stage1 clean-bootstrap-directory-symlink-stage2 \ @@ -762,7 +768,8 @@ clean-rt hotspot hotspot-helper clean-jtreg clean-jtreg-reports \ jtregcheck clean-remove-intree-libraries \ clean-jamvm clean-extract-jamvm clean-add-jamvm clean-add-jamvm-debug \ - clean-extract-hotspot clean-sanitise-openjdk + clean-extract-hotspot clean-sanitise-openjdk \ + clean-tests clean-tapset-report env: @echo 'unset JAVA_HOME' @@ -2266,6 +2273,19 @@ $(jtreg_processes); \ fi +check-tapset: +if ENABLE_SYSTEMTAP + $(abs_top_srcdir)/test/tapset/jstaptest.pl \ + -B $(BUILD_OUTPUT_DIR) -A $(BUILD_ARCH_DIR) \ + -S $(abs_top_srcdir)/test/tapset \ + -o test/check-stap.log +endif + +clean-tapset-report: +if ENABLE_SYSTEMTAP + rm -f test/check-stap.log +endif + # Support classes for non-OpenJDK bootstraps rt-source-files.txt: $(OPENJDK_BOOT_TREE) diff -r 732f30ec8b7b -r 81ebf494d83d patches/boot/ant-javac.patch --- a/patches/boot/ant-javac.patch Fri Mar 16 13:15:15 2012 +0100 +++ b/patches/boot/ant-javac.patch Mon Mar 26 22:07:22 2012 +0200 @@ -1,7 +1,7 @@ diff -Nru openjdk-boot.orig/jaxp/build.xml openjdk-boot/jaxp/build.xml ---- openjdk-boot.orig/jaxp/build.xml 2009-12-04 15:29:13.000000000 +0000 -+++ openjdk-boot/jaxp/build.xml 2009-12-14 22:57:23.000000000 +0000 -@@ -122,7 +122,8 @@ +--- openjdk-boot.orig/jaxp/build.xml 2012-02-21 23:55:29.000000000 +0000 ++++ openjdk-boot/jaxp/build.xml 2012-03-18 22:26:49.382089457 +0000 +@@ -123,7 +123,8 @@ memoryMaximumSize="${javac.memoryMaximumSize}" source="${javac.source}" debug="${javac.debug}" @@ -10,11 +10,11 @@ + executable="${jdk.home}/bin/javac"> - + diff -Nru openjdk-boot.orig/jaxws/build.xml openjdk-boot/jaxws/build.xml ---- openjdk-boot.orig/jaxws/build.xml 2009-12-04 15:35:01.000000000 +0000 -+++ openjdk-boot/jaxws/build.xml 2009-12-14 22:57:41.000000000 +0000 -@@ -122,7 +122,8 @@ +--- openjdk-boot.orig/jaxws/build.xml 2012-02-15 17:08:44.000000000 +0000 ++++ openjdk-boot/jaxws/build.xml 2012-03-18 22:26:49.382089457 +0000 +@@ -123,7 +123,8 @@ memoryMaximumSize="${javac.memoryMaximumSize}" source="${javac.source}" debug="${javac.debug}" diff -r 732f30ec8b7b -r 81ebf494d83d patches/boot/corba-defs.patch --- a/patches/boot/corba-defs.patch Fri Mar 16 13:15:15 2012 +0100 +++ b/patches/boot/corba-defs.patch Mon Mar 26 22:07:22 2012 +0200 @@ -1,9 +1,9 @@ -diff -Nru openjdk.orig/corba/make/common/Defs.gmk openjdk/corba/make/common/Defs.gmk ---- openjdk-boot.orig/corba/make/common/Defs.gmk 2010-11-12 01:18:17.000000000 +0000 -+++ openjdk-boot/corba/make/common/Defs.gmk 2010-11-19 22:40:28.154937216 +0000 -@@ -53,6 +53,13 @@ - - _OUTPUTDIR=$(TOPDIR)/build/$(PLATFORM)-$(ARCH) +diff -Nru openjdk-boot.orig/corba/make/common/Defs.gmk openjdk-boot/corba/make/common/Defs.gmk +--- openjdk-boot.orig/corba/make/common/Defs.gmk 2012-02-15 17:08:19.000000000 +0000 ++++ openjdk-boot/corba/make/common/Defs.gmk 2012-03-18 22:37:54.536815001 +0000 +@@ -75,6 +75,13 @@ + endif + endif + +ifdef ALT_LANGTOOLS_DIST @@ -15,7 +15,7 @@ # # Get platform definitions # -@@ -85,8 +92,6 @@ +@@ -107,8 +114,6 @@ # for build tool jar files BUILDTOOLJARDIR = $(OUTPUTDIR)/btjars ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars @@ -24,7 +24,7 @@ # for imported source files IMPORTSRCDIR = $(OUTPUTDIR)/impsrc # for imported documents -@@ -167,7 +172,7 @@ +@@ -189,7 +194,7 @@ # We define an intermediate variable for Java files because # we use its value later to help define $SOURCEPATH diff -r 732f30ec8b7b -r 81ebf494d83d patches/boot/demos.patch --- a/patches/boot/demos.patch Fri Mar 16 13:15:15 2012 +0100 +++ b/patches/boot/demos.patch Mon Mar 26 22:07:22 2012 +0200 @@ -1,8 +1,8 @@ -diff -Nru openjdk.orig/jdk/make/common/Release.gmk openjdk/jdk/make/common/Release.gmk ---- openjdk-boot.orig/jdk/make/common/Release.gmk 2011-03-16 20:59:31.000000000 +0000 -+++ openjdk-boot/jdk/make/common/Release.gmk 2011-03-16 21:29:40.269191529 +0000 -@@ -1071,16 +1071,6 @@ - $(CP) $(PLATFORM_SRC)/bin/java_md.h $(JDK_IMAGE_DIR)/src/launcher +diff -Nru openjdk-boot.orig/jdk/make/common/Release.gmk openjdk-boot/jdk/make/common/Release.gmk +--- openjdk-boot.orig/jdk/make/common/Release.gmk 2012-03-18 22:39:44.298585468 +0000 ++++ openjdk-boot/jdk/make/common/Release.gmk 2012-03-19 00:50:02.224588936 +0000 +@@ -1104,16 +1104,6 @@ + $(CP) $(FILES_launcher) $(JDK_IMAGE_DIR)/src/launcher $(CD) $(JDK_IMAGE_DIR)/src && $(ZIPEXE) -qr ../src.zip * $(RM) -r $(JDK_IMAGE_DIR)/src - @# @@ -18,12 +18,12 @@ ifneq ($(PLATFORM), windows) $(call copy-man-pages,$(JDK_IMAGE_DIR),$(JDK_MAN_PAGES)) endif # !windows -diff -Nru openjdk.orig/jdk/make/Makefile openjdk/jdk/make/Makefile ---- openjdk-boot.orig/jdk/make/Makefile 2011-03-14 22:10:30.000000000 +0000 -+++ openjdk-boot/jdk/make/Makefile 2011-03-16 21:29:40.269191529 +0000 -@@ -238,7 +238,7 @@ - - SUBDIRS = tools java javax sun com +diff -Nru openjdk-boot.orig/jdk/make/Makefile openjdk-boot/jdk/make/Makefile +--- openjdk-boot.orig/jdk/make/Makefile 2012-03-12 17:25:51.000000000 +0000 ++++ openjdk-boot/jdk/make/Makefile 2012-03-19 00:50:02.224588936 +0000 +@@ -237,7 +237,7 @@ + SUBDIRS += apple + endif SUBDIRS_tools = launchers -SUBDIRS_misc = org sunw jpda mkdemo mksample +SUBDIRS_misc = org sunw jpda mksample diff -r 732f30ec8b7b -r 81ebf494d83d patches/boot/ecj-diamond.patch --- a/patches/boot/ecj-diamond.patch Fri Mar 16 13:15:15 2012 +0100 +++ b/patches/boot/ecj-diamond.patch Mon Mar 26 22:07:22 2012 +0200 @@ -1,5 +1,6 @@ ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2012-03-22 11:28:14.027881166 +0000 @@ -103,9 +103,9 @@ return this.def.compareTo(that.def); } @@ -70,8 +71,9 @@ // Parse several independent layout bodies: "[foo][bar]...[baz]" for (int i = 0; i < layout.length(); i++) { if (layout.charAt(i++) != '[') ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2012-03-22 11:18:05.190037791 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2012-03-22 11:28:14.047881492 +0000 @@ -257,7 +257,7 @@ assert(basicCodings[_meta_default] == null); assert(basicCodings[_meta_canon_min] != null); @@ -139,8 +141,9 @@ prevForAssertMap.put(b, p); return true; } ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2012-03-22 11:18:05.066035805 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2012-03-22 11:28:14.047881492 +0000 @@ -466,7 +466,7 @@ void readInnerClasses(Class cls) throws IOException { @@ -150,19 +153,9 @@ for (int i = 0; i < nc; i++) { InnerClass ic = new InnerClass(readClassRef(), ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java -@@ -402,7 +402,7 @@ - private static Map codeMap; - - private static synchronized Coding of(int B, int H, int S, int del) { -- if (codeMap == null) codeMap = new HashMap<>(); -+ if (codeMap == null) codeMap = new HashMap(); - Coding x0 = new Coding(B, H, S, del); - Coding x1 = codeMap.get(x0); - if (x1 == null) codeMap.put(x0, x1 = x0); ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java 2012-03-22 11:28:14.047881492 +0000 @@ -743,9 +743,9 @@ // Steps 1/2/3 are interdependent, and may be iterated. // Steps 4 and 5 may be decided independently afterward. @@ -198,8 +191,21 @@ for (int i = start; i < end; i++) { if (popset.add(values[i])) popvals.add(values[i]); } ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Coding.java 2012-03-22 11:28:14.047881492 +0000 +@@ -402,7 +402,7 @@ + private static Map codeMap; + + private static synchronized Coding of(int B, int H, int S, int del) { +- if (codeMap == null) codeMap = new HashMap<>(); ++ if (codeMap == null) codeMap = new HashMap(); + Coding x0 = new Coding(B, H, S, del); + Coding x1 = codeMap.get(x0); + if (x1 == null) codeMap.put(x0, x1 = x0); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2012-03-22 11:28:14.047881492 +0000 @@ -915,7 +915,7 @@ public static Index[] partition(Index ix, int[] keys) { @@ -227,8 +233,9 @@ work.hasPrevious(); ) { Entry e = work.previous(); work.remove(); // pop stack ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2012-03-22 11:18:05.190037791 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2012-03-22 11:28:14.047881492 +0000 @@ -59,7 +59,7 @@ ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource"); @@ -265,8 +272,9 @@ loadOptmap: for (String optline : options.split("\n")) { String[] words = optline.split("\\p{Space}+"); ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2012-03-22 11:28:14.047881492 +0000 @@ -45,7 +45,7 @@ private final ArrayList flist; @@ -276,8 +284,9 @@ // initialize the list to null for (int i = 0 ; i < capacity ; i++) { flist.add(null); ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Fixups.java 2012-03-22 11:28:14.051881557 +0000 @@ -126,11 +126,11 @@ public void setBytes(byte[] newBytes) { if (bytes == newBytes) return; @@ -301,8 +310,9 @@ } static final int LOC_SHIFT = 1; ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2012-03-22 11:18:05.070035870 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2012-03-22 11:28:14.051881557 +0000 @@ -112,7 +112,7 @@ public static final Attribute.Layout attrSourceFileSpecial; public static final Map attrDefs; @@ -466,8 +476,9 @@ for (Class cls : classes) { // Add to the end of ths list: if (!fileSet.contains(cls.file)) ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2012-03-22 11:18:05.194037856 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2012-03-22 11:28:14.051881557 +0000 @@ -686,7 +686,7 @@ cp_Signature_classes.expectLength(getIntTotal(numSigClasses)); cp_Signature_classes.readFrom(in); @@ -580,8 +591,9 @@ ClassEntry thisClass = curClass.thisClass; ClassEntry superClass = curClass.superClass; ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2012-03-22 11:18:05.194037856 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2012-03-22 11:28:14.051881557 +0000 @@ -116,7 +116,7 @@ int[][] attrCounts; // count attr. occurences @@ -636,8 +648,9 @@ // First, collect a consistent global set. for (Class cls : pkg.classes) { if (!cls.hasInnerClasses()) continue; ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2012-03-22 11:28:14.051881557 +0000 @@ -181,8 +181,8 @@ final Map attrDefs; final Map attrCommands; @@ -667,8 +680,9 @@ try { for (JarEntry je : Collections.list(jf.entries())) { InFile inFile = new InFile(jf, je); ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2012-03-22 11:28:14.051881557 +0000 @@ -309,7 +309,7 @@ // As each new value is added, we assert that the value // was not already in the set. @@ -678,8 +692,9 @@ int fillp = 1; maxForDebug += fillp; int min = Integer.MIN_VALUE; // farthest from the center ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2012-03-22 11:18:05.194037856 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2012-03-22 11:28:14.051881557 +0000 @@ -47,8 +47,8 @@ */ @@ -700,8 +715,9 @@ res.addAll(values); while (res.remove(null)); return res; ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java.orig -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2012-03-21 17:09:55.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2012-03-22 11:28:14.051881557 +0000 @@ -58,12 +58,12 @@ private final Map memberEntries; @@ -721,8 +737,9 @@ props = new PropMap(); } ---- openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java.orig From bugzilla-daemon at icedtea.classpath.org Mon Mar 26 13:57:00 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 26 Mar 2012 20:57:00 +0000 Subject: [Bug 907] New: Exception launching the Eclipse Platform Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=907 Bug #: 907 Summary: Exception launching the Eclipse Platform Classification: Unclassified Product: IcedTea-Web Version: 1.1.3 Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: NetX (javaws) AssignedTo: omajid at redhat.com ReportedBy: icedtea-bugs at trk.nickurak.ca CC: unassigned at icedtea.classpath.org Failed to launch "java web start" application. Works fine with java 6.30-2 !SESSION Mon Mar 26 14:35:09 MDT 2012 ------------------------------------------ !ENTRY org.eclipse.equinox.launcher 4 0 2012-03-26 14:35:09.098 !MESSAGE Exception launching the Eclipse Platform: !STACK java.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:411) at org.eclipse.equinox.launcher.WebStartMain.basicRun(WebStartMain.java:78) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.WebStartMain.main(WebStartMain.java:57) 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 net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:590) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:887) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From mjw at icedtea.classpath.org Mon Mar 26 14:45:56 2012 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Mon, 26 Mar 2012 21:45:56 +0000 Subject: /hg/icedtea6: 4 new changesets Message-ID: changeset 55b21736fe19 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=55b21736fe19 author: Jon VanAlten date: Fri Mar 23 14:11:00 2012 +0100 Add tapset tests. * Makefile.am: Add target to run tapset tests. * tapset/hotspot_jni.stp.in: Add notes regarding required JVM option to GetField family of probe aliases. * test/tapset/ClassUnloadedProbeTester.java: Part of test coverage for hotspot.stp and hotspot_jni.stp tapsets. * test/tapset/JNIStapTest.c: Likewise. * test/tapset/JNITestClass.c: Likewise. * test/tapset/JNITestClass.h: Likewise. * test/tapset/JNITestClass.java: Likewise. * test/tapset/RunWrapper.java: Likewise. * test/tapset/StapJNIClassLoader.java: Likewise. * test/tapset/StapURLClassLoader.java: Likewise. * test/tapset/SystemtapTester.java: Likewise. * test/tapset/TestingRunner.java: Likewise. * test/tapset/jstaptest.pl: Wrapper script, compiles and runs tests for tapsets. changeset 393ad37b0c83 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=393ad37b0c83 author: Mark Wielaard date: Fri Mar 23 22:39:35 2012 +0100 Add jstack tests to test/tapset/jstaptest.pl. changeset 5491f5a5175a in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5491f5a5175a author: Mark Wielaard date: Mon Mar 26 22:07:22 2012 +0200 jstaptest.pl: thread_start and stop thread id can be any positive number. tid was hard coded as being '8', but newer hotspot might start more than 7 background threads before the first user thread is started. So allow tid to be any positive number. changeset e5b8981cf2ab in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=e5b8981cf2ab author: Mark Wielaard date: Mon Mar 26 23:45:05 2012 +0200 Merge diffstat: ChangeLog | 70 + Makefile.am | 33 +- NEWS | 1 + acinclude.m4 | 149 +- configure.ac | 2 +- patches/apache-xml-internal-fix-bug-38655.patch | 10 + patches/idresolver_fix.patch | 193 ++ tapset/hotspot_jni.stp.in | 20 +- test/tapset/ClassUnloadedProbeTester.java | 38 + test/tapset/JNIStapTest.c | 2107 +++++++++++++++++++++++ test/tapset/JNITestClass.c | 7 + test/tapset/JNITestClass.h | 21 + test/tapset/JNITestClass.java | 121 + test/tapset/RunWrapper.java | 21 + test/tapset/StapJNIClassLoader.java | 64 + test/tapset/StapURLClassLoader.java | 24 + test/tapset/SystemtapTester.java | 202 ++ test/tapset/TestingRunner.java | 82 + test/tapset/jstaptest.pl | 1009 +++++++++++ 19 files changed, 4110 insertions(+), 64 deletions(-) diffs (truncated from 4514 to 500 lines): diff -r 2ec767396557 -r e5b8981cf2ab ChangeLog --- a/ChangeLog Tue Mar 20 13:48:29 2012 +0100 +++ b/ChangeLog Mon Mar 26 23:45:05 2012 +0200 @@ -1,7 +1,77 @@ +2012-03-21 Pavel Tisnovsky + + * patches/apache-xml-internal-fix-bug-38655.patch: + Added patch which fixes the Apache XML security bug #38655 + * Makefile.am: Updated + +2012-03-21 Pavel Tisnovsky + + PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 + * Makefile.am: Updated + * patches/idresolver_fix.patch: added patch for a class + IdResolver. + +2012-03-26 Mark Wielaard + + * test/tapset/jstaptest.pl: thread_start and thread_stop thread id + can be any positive number. + +2012-03-23 Mark Wielaard + + * test/tapset/jstaptest.pl: Add jstack tests. + +2012-03-23 Jon VanAlten + + * Makefile.am: + Add target to run tapset tests. + * tapset/hotspot_jni.stp.in: + Add notes regarding required JVM option to GetField + family of probe aliases. + * test/tapset/ClassUnloadedProbeTester.java: + Part of test coverage for hotspot.stp and hotspot_jni.stp tapsets. + * test/tapset/JNIStapTest.c: + Likewise. + * test/tapset/JNITestClass.c: + Likewise. + * test/tapset/JNITestClass.h: + Likewise. + * test/tapset/JNITestClass.java: + Likewise. + * test/tapset/RunWrapper.java: + Likewise. + * test/tapset/StapJNIClassLoader.java: + Likewise. + * test/tapset/StapURLClassLoader.java: + Likewise. + * test/tapset/SystemtapTester.java: + Likewise. + * test/tapset/TestingRunner.java: + Likewise. + * test/tapset/jstaptest.pl: + Wrapper script, compiles and runs tests for tapsets. + 2012-03-20 Mark Wielaard * Makefile.am (clean-jtreg): Depend on clean-jtreg-reports. +2012-03-20 Andrew John Hughes + + * acinclude.m4: + (IT_FIND_COMPILER): Define only once and + rename from IT_FIND_JAVAC. + (IT_FIND_ECJ): Use same form as detection + for java, javah, jar and rmic. + (IT_FIND_JAVAC): Likewise. + (IT_CHECK_JAVA_AND_JAVAC_WORK): New macro to check + java and javac actually work together to compile code + before running other tests such as the dtdtype one. + (IT_CHECK_FOR_CLASS): Depend on java/javac working. + (IT_CHECK_IF_INSTANTIABLE): Likewise. + (IT_GETDTDTYPE_CHECK): Likewise. Add -target 5. + (IT_JAVAH): Depend on java/javac working. + * configure.ac: Invoke IT_FIND_COMPILER rather than + IT_FIND_JAVAC. + 2012-03-19 Andrew John Hughes * acinclude.m4: diff -r 2ec767396557 -r e5b8981cf2ab Makefile.am --- a/Makefile.am Tue Mar 20 13:48:29 2012 +0100 +++ b/Makefile.am Mon Mar 26 23:45:05 2012 +0200 @@ -422,7 +422,9 @@ patches/openjdk/remove-mimpure-option-to-gcc.patch \ patches/ScriptEngineManager-doc.patch \ patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch \ - patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch + patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch \ + patches/idresolver_fix.patch \ + patches/apache-xml-internal-fix-bug-38655.patch if WITH_RHINO ICEDTEA_PATCHES += \ @@ -654,9 +656,16 @@ all-local: icedtea-against-icedtea -check-local: jtregcheck +check-local: jtregcheck check-tapset -clean-local: clean-jtreg clean-jtreg-reports $(PULSE_JAVA_CLEAN_TARGET) \ +clean-tests: clean-jtreg clean-tapset-report + if [ $(abs_top_srcdir) != $(abs_top_builddir) ] ; then \ + if [ -e test ] ; then \ + rmdir test ; \ + fi \ + fi + +clean-local: clean-tests $(PULSE_JAVA_CLEAN_TARGET) \ clean-icedtea clean-icedtea-debug clean-icedtea-ecj clean-extract clean-ports \ clean-overlay clean-native-ecj clean-icedtea-against-icedtea clean-icedtea-debug-against-icedtea \ clean-icedtea-against-ecj clean-extract-ecj clean-generated clean-replace-hotspot \ @@ -700,7 +709,7 @@ clean-add-pulseaudio clean-add-pulseaudio-debug clean-add-nss clean-add-nss-debug \ clean-add-tzdata-support clean-add-tzdata-support-debug clean-add-systemtap-ecj \ clean-add-pulseaudio-ecj clean-add-nss-ecj clean-add-tzdata-support-ecj clean-fonts \ - clean-download-hotspot jtregcheck + clean-download-hotspot clean-tests clean-tapset-report jtregcheck env: @echo 'unset JAVA_HOME' @@ -2163,9 +2172,6 @@ rmdir test/jtreg ; \ fi rm -f test/jtreg.jar - if [ -e test ] ; then \ - rmdir test ; \ - fi rm -f stamps/jtreg.stamp check-hotspot: stamps/jtreg.stamp @@ -2246,6 +2252,19 @@ $(jtreg_processes); \ fi +check-tapset: +if ENABLE_SYSTEMTAP + $(abs_top_srcdir)/test/tapset/jstaptest.pl \ + -B $(BUILD_OUTPUT_DIR) -A $(BUILD_ARCH_DIR) \ + -S $(abs_top_srcdir)/test/tapset \ + -o test/check-stap.log +endif + +clean-tapset-report: +if ENABLE_SYSTEMTAP + rm -f test/check-stap.log +endif + # Support classes for non-OpenJDK bootstraps # rt.jar additional class files. diff -r 2ec767396557 -r e5b8981cf2ab NEWS --- a/NEWS Tue Mar 20 13:48:29 2012 +0100 +++ b/NEWS Mon Mar 26 23:45:05 2012 +0200 @@ -15,6 +15,7 @@ * Bug fixes - PR865: Patching fails with patches/ecj/jaxws-getdtdtype.patch - PR886: 6-1.11.1 fails to build CACAO on ppc + - PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 * Backports - S6706974: Add krb5 test infrastructure - S6764553: com.sun.org.apache.xml.internal.security.utils.IdResolver is not thread safe diff -r 2ec767396557 -r e5b8981cf2ab acinclude.m4 --- a/acinclude.m4 Tue Mar 20 13:48:29 2012 +0100 +++ b/acinclude.m4 Mon Mar 26 23:45:05 2012 +0200 @@ -129,49 +129,46 @@ AC_SUBST(OS_PATH) ]) -AC_DEFUN([IT_FIND_JAVAC], +AC_DEFUN_ONCE([IT_FIND_COMPILER], [ - JAVAC=${SYSTEM_JDK_DIR}/bin/javac IT_FIND_JAVAC IT_FIND_ECJ - AC_SUBST(JAVAC) -]) - -AC_DEFUN([IT_FIND_ECJ], -[ - AC_ARG_WITH([ecj], - [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)], - [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - IT_CHECK_ECJ(${withval}) - else - if test "x${withval}" != xno; then - IT_CHECK_ECJ - fi - fi - ], - [ - IT_CHECK_ECJ - ]) if test "x${JAVAC}" = "x"; then if test "x{ECJ}" != "x"; then JAVAC="${ECJ} -nowarn" fi fi + AC_SUBST(ECJ) + AC_SUBST(JAVAC) ]) -AC_DEFUN([IT_CHECK_ECJ], +AC_DEFUN_ONCE([IT_FIND_ECJ], [ - if test "x$1" != x; then - if test -f "$1"; then - AC_MSG_CHECKING(for ecj) - ECJ="$1" - AC_MSG_RESULT(${ECJ}) + ECJ_DEFAULT=/usr/bin/ecj + AC_MSG_CHECKING([if an ecj binary was specified]) + AC_ARG_WITH([ecj], + [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)], + [ + if test "x${withval}" = "xyes"; then + ECJ=no else - AC_PATH_PROG(ECJ, "$1") + ECJ="${withval}" fi + ], + [ + ECJ=no + ]) + AC_MSG_RESULT(${ECJ}) + if test "x${ECJ}" = "xno"; then + ECJ=${ECJ_DEFAULT} + fi + AC_MSG_CHECKING([if $ECJ is a valid executable file]) + if test -x "${ECJ}" && test -f "${ECJ}"; then + AC_MSG_RESULT([yes]) else + AC_MSG_RESULT([no]) + ECJ="" AC_PATH_PROG(ECJ, "ecj") if test -z "${ECJ}"; then AC_PATH_PROG(ECJ, "ecj-3.1") @@ -182,43 +179,45 @@ if test -z "${ECJ}"; then AC_PATH_PROG(ECJ, "ecj-3.3") fi + if test -z "${ECJ}"; then + AC_PATH_PROG(ECJ, "ecj-3.4") + fi fi ]) -AC_DEFUN([IT_FIND_JAVAC], +AC_DEFUN_ONCE([IT_FIND_JAVAC], [ + JAVAC_DEFAULT=${SYSTEM_JDK_DIR}/bin/javac + AC_MSG_CHECKING([if a javac binary was specified]) AC_ARG_WITH([javac], [AS_HELP_STRING(--with-javac,bytecode compilation with javac)], [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - IT_CHECK_JAVAC(${withval}) + if test "x${withval}" = "xyes"; then + JAVAC=no else - if test "x${withval}" != xno; then - IT_CHECK_JAVAC - fi + JAVAC="${withval}" fi ], - [ - IT_CHECK_JAVAC + [ + JAVAC=no + ]) + AC_MSG_RESULT(${JAVAC}) + if test "x${JAVAC}" = "xno"; then + JAVAC=${JAVAC_DEFAULT} + fi + AC_MSG_CHECKING([if $JAVAC is a valid executable file]) + if test -x "${JAVAC}" && test -f "${JAVAC}"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + JAVAC="" + AC_PATH_PROG(JAVAC, "javac") + fi + AC_SUBST(JAVAC) ]) ]) -AC_DEFUN([IT_CHECK_JAVAC], -[ - if test "x$1" != x; then - if test -f "$1"; then - AC_MSG_CHECKING(for javac) - JAVAC="$1" - AC_MSG_RESULT(${JAVAC}) - else - AC_PATH_PROG(JAVAC, "$1") - fi - else - AC_PATH_PROG(JAVAC, "javac") - fi -]) - -AC_DEFUN([IT_FIND_JAVA], +AC_DEFUN_ONCE([IT_FIND_JAVA], [ JAVA_DEFAULT=${SYSTEM_JDK_DIR}/bin/java AC_MSG_CHECKING([if a java binary was specified]) @@ -1241,6 +1240,44 @@ fi ]) +dnl check that javac and java work +AC_DEFUN_ONCE([IT_CHECK_JAVA_AND_JAVAC_WORK],[ + AC_REQUIRE([IT_FIND_JAVA]) + AC_REQUIRE([IT_FIND_COMPILER]) + AC_CACHE_CHECK([if the VM and compiler work together], it_cv_jdk_works, [ + CLASS=Test.java + BYTECODE=$(echo $CLASS|sed 's#\.java##') + mkdir tmp.$$ + cd tmp.$$ + cat << \EOF > $CLASS +[/* [#]line __oline__ "configure" */ + +public class Test +{ + public static void main(String[] args) + { + System.out.println("Hello World!"); + } +}] +EOF + if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then + it_cv_jdk_works=yes; + else + it_cv_jdk_works=no; + AC_MSG_ERROR([VM failed to run compiled class.]) + fi + else + it_cv_jdk_works=no; + AC_MSG_ERROR([Compiler failed to compile Java code.]) + fi + rm -f $CLASS *.class + cd .. + rmdir tmp.$$ + ]) +AC_PROVIDE([$0])dnl +]) + dnl Generic macro to check for a Java class dnl Takes two arguments: the name of the macro dnl and the name of the class. The macro name @@ -1248,6 +1285,7 @@ dnl replaced by '_' and all letters capitalised. dnl e.g. IT_CHECK_FOR_CLASS([JAVA_UTIL_SCANNER],[java.util.Scanner]) AC_DEFUN([IT_CHECK_FOR_CLASS],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if $2 is missing], it_cv_$1, [ CLASS=Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') @@ -1291,6 +1329,7 @@ dnl e.g. IT_CHECK_FOR_INSTANTIABLE_CLASS([JAVA_LANG_INTEGER], dnl [java.lang.Integer],[0],[./bin]) AC_DEFUN([IT_CHECK_IF_INSTANTIABLE],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if $2 is instantiable], it_cv_$1, [ CLASS=Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') @@ -1350,7 +1389,8 @@ AC_PROVIDE([$0])dnl ]) -AC_DEFUN([IT_GETDTDTYPE_CHECK],[ +AC_DEFUN_ONCE([IT_GETDTDTYPE_CHECK],[ + AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if javax.xml.stream.events.Attribute.getDTDType() wrongly returns a QName], it_cv_dtdtype, [ CLASS=Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') @@ -1407,7 +1447,7 @@ } }] EOF - if $JAVAC -cp . $JAVACFLAGS -source 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then it_cv_dtdtype=no; else @@ -1672,6 +1712,7 @@ ]) AC_DEFUN([IT_JAVAH],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if $JAVAH exhibits Classpath bug 39408], it_cv_cp39408_javah, [ SUPERCLASS=Test.java SUBCLASS=TestImpl.java diff -r 2ec767396557 -r e5b8981cf2ab configure.ac --- a/configure.ac Tue Mar 20 13:48:29 2012 +0100 +++ b/configure.ac Mon Mar 26 23:45:05 2012 +0200 @@ -144,7 +144,7 @@ IT_CHECK_IF_BOOTSTRAPPING IT_CHECK_FOR_JDK IT_FIND_JAVA -IT_FIND_JAVAC +IT_FIND_COMPILER IT_FIND_JAVAH IT_FIND_JAR IT_FIND_RMIC diff -r 2ec767396557 -r e5b8981cf2ab patches/apache-xml-internal-fix-bug-38655.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/apache-xml-internal-fix-bug-38655.patch Mon Mar 26 23:45:05 2012 +0200 @@ -0,0 +1,11 @@ +diff -u -r /jck/apache-xml/icedtea6/openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java security/c14n/implementations/NameSpaceSymbTable.java +--- openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java 2011-11-14 23:11:46.000000000 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java 2012-03-16 17:52:37.000000000 +0100 +@@ -370,6 +370,7 @@ + if (cur == null || (cur.equals( obj))) { + return index; + } ++ length=length-1; + do { + index=index==length? 0:++index; + cur = set[index]; diff -r 2ec767396557 -r e5b8981cf2ab patches/idresolver_fix.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/idresolver_fix.patch Mon Mar 26 23:45:05 2012 +0200 @@ -0,0 +1,194 @@ +--- openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/IdResolver.java 2012-03-20 20:29:30.000000000 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/IdResolver.java 2012-03-20 22:18:41.094309861 +0100 +@@ -26,6 +26,7 @@ + import org.w3c.dom.Attr; + import org.w3c.dom.Document; + import org.w3c.dom.Element; ++import org.w3c.dom.NamedNodeMap; + import org.w3c.dom.Node; + + import java.util.Arrays; +@@ -175,69 +176,124 @@ + return null; + } + ++ private static java.util.List names; ++ private static int namesLength; ++ static { ++ String namespaces[]={ ++ Constants.SignatureSpecNS, ++ EncryptionConstants.EncryptionSpecNS, ++ "http://schemas.xmlsoap.org/soap/security/2000-12", ++ "http://www.w3.org/2002/03/xkms#", ++ "urn:oasis:names:tc:SAML:1.0:assertion", ++ "urn:oasis:names:tc:SAML:1.0:protocol" ++ }; ++ names = Arrays.asList(namespaces); ++ namesLength = names.size(); ++ } + +- static java.util.List names; +- static { +- String namespaces[]={ Constants.SignatureSpecNS, +- EncryptionConstants.EncryptionSpecNS, +- "http://schemas.xmlsoap.org/soap/security/2000-12", +- "http://www.w3.org/2002/03/xkms#" +- }; +- names=Arrays.asList(namespaces); +- } + ++ private static Element getElementBySearching(Node root,String id) { ++ Element []els=new Element[namesLength + 1]; ++ getEl(root,id,els); ++ for (int i=0;i References: <4F6D7437.8010804@redhat.com> <4F70A806.8060108@redhat.com> <4F70ADA7.2060707@redhat.com> Message-ID: <4F716946.5060900@redhat.com> On 03/26/2012 07:55 PM, Omair Majid wrote: > Hi Jiri, > > On 03/26/2012 01:31 PM, Jiri Vanek wrote: >> On 03/24/2012 08:13 AM, Omair Majid wrote: >>> >>> The attached patch fixes the pac tests. With the patch applied, the >>> results change from: >>> >>> Test results: passed: 220; failed: 64; >>> >>> to: >>> >>> Test results: passed: 285; failed: 0; >>> >>> I have rewritten the testDateRange* tests so date wrapping is handled >>> correctly. I also discovered two bugs in pac-funcs.js (yes, tests help >>> find bugs!) and I have fixed those too. >>> >> Hi! The logic itself looks ok. The fullYear() fix can go inside >> immediately (as separate patch) > > Thanks for the review! > >> But fixes inside /tests/netx/pac/pac-funcs-test.js contains both >> cosmetic and functional fixes. Can you please separate them? (I think >> that cosmetic ones can go inside imidietly without nay more reviewing) > > I am not entirely clear on what you mean. I haven't added or removed any > tests. The test changes really are all cosmetic. As you know, the test > were not able to handle day/month wraps and some tests would fail on the > start or end of the month. The tests now handle these corner cases > properly so they should behave the same on any given day. The actual > cases they are testing (things like "is today within the date range > yesterday-tomorrow?") has not been changed. Unless I made a mistake, > that is. Please let me know if you see any such cases. no no nothing like this:) Among the wrapping and other fixing you did are several times just fixes of indentation. Do you mind to push those fixes separately and repost the fixes you did again? > >> /me hopes not to make you angry to much :( >> > > How would a patch review make me angry? I am going to thank you instead > for raising your concerns! Well I'm the last one who should do some criticism with indentations a co. But this particular changes made the patch strange to read. Thats why I apologised O:) > >> When I was checking this issue I wanted to fix it, but now when I have >> seen your change-set I'm very happy I did not so. Tyvm for very deep fix! > > No problem :) > > Cheers, > Omair J. From ahughes at redhat.com Tue Mar 27 02:38:35 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Tue, 27 Mar 2012 05:38:35 -0400 (EDT) Subject: [RFC] Spelling fixed In-Reply-To: <4F702DB0.3060608@redhat.com> Message-ID: <42472d3b-d0ac-495e-956d-c0e13e23e4ed@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On 03/24/2012 08:36 AM, Stefan Ring wrote: > > It seems you went only half of the way. > > > >> - * @return weather cached server is alive. If non singleton > >> instance is runnig, new is created. > >> + * @return weather cached server is alive. If non singleton > >> instance is running, new is created. > > > > Whether, not weather. > > > >> - * @throws IOException if connection cant be established or > >> resource do not exists > >> + * @throws IOException if connection can't be established or > >> resource do not exists > > > > does not exist. > > > >> - * wrapper arround Runtime.getRuntime().exec(...) which > >> ensures taht process is run inside its own, by us controlled, > >> thread. > >> - * Proces sbuilder caused som einexpected and wired > >> behaviour:/ > >> + * wrapper around Runtime.getRuntime().exec(...) which > >> ensures that process is run inside its own, by us controlled, > >> thread. > >> + * Process builder caused some unexpected and wired behavior > >> :/ > > > > Weird behavior. > > Guilty one thinks all those fixes really do not change any meanings > and are worthy and can go > inside without any harm (except on my (long ago broken) pride;( ) > > > Thanx! > J. > > Yes, things like this (obvious typos/spelling mistakes/grammar) come under trivial and can go in without review. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at redhat.com Tue Mar 27 03:22:29 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 27 Mar 2012 12:22:29 +0200 Subject: Reviewer needed: backport of "6792400: Avoid loading of Normalizer resources, for simple uses" into IcedTea6 HEAD In-Reply-To: <4F70A1E5.2040400@redhat.com> References: <4F7076DF.1060500@redhat.com> <4F70902A.1040405@redhat.com> <4F7096F1.8010806@redhat.com> <4F709788.70106@redhat.com> <4F709DB3.6010100@redhat.com> <4F70A1E5.2040400@redhat.com> Message-ID: <4F7194E5.1060308@redhat.com> Jiri Vanek wrote: > On 03/26/2012 06:47 PM, Pavel Tisnovsky wrote: >> Jiri Vanek wrote: >>> On 03/26/2012 06:18 PM, Pavel Tisnovsky wrote: >>>> Jiri Vanek wrote: >>>>> On 03/26/2012 04:02 PM, Pavel Tisnovsky wrote: >>>>>> Hi, >>>>>> >>>>>> I'd like to push following backport to IcedTea6 HEAD (and to OpenJDK6 >>>>>> too - will do parallel request): >>>>>> "6792400: Avoid loading of Normalizer resources, for simple uses". >>>>>> >>>>>> This backport fixes following IT6 bug: >>>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=882 >>>>>> >>>>>> hg diff created against recent IcedTea6 HEAD is stored in an >>>>>> attachment. >>>>>> >>>>>> ChangeLog entry: >>>>>> 2012-03-26 Pavel Tisnovsky >>>>>> >>>>>> * >>>>>> patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: >>>>>> Backport of: 6792400: Avoid loading of Normalizer >>>>>> resources >>>>>> for simple uses >>>>>> * NEWS: Mention backport. >>>>>> * Makefile.am: Updated >>>>>> >>>>>> This backport works correctly - passed all regular tests. >>>>>> >>>>>> Can anybody please review this change? >>>>>> >>>>>> Thank you in advance, >>>>>> Pavel >>>>> >>>>> Hi! >>>>> >>>>> I have walked across the change set and I have few questins: >>>> >>>> Thanks Jiri! >>>> >>>>> >>>>> -Sun bugzilla is mentioning, that it is "just" performance >>>>> improvement. >>>>> ? >>>>> -As far as I know, the Jira was falling _inside_ normalize >>>>> method(s), so >>>>> this fix looks like not fixing the issue, but just to walk-around for >>>>> just-ascii texts. >>>> >>>> The method for string normalization is called from the static block >>>> and it throws >>>> exception when called with ASCII-only string. There's nothing which >>>> should be >>>> normalized in such strings ;-) >>>> >>>>> Am I right? >>>>> Was the jira failures caused just-by-ascii input files? >>>> >>>> Yes. To be precise - it does not work with test files but only with >>>> text strings. >>>> >>>>> -I know that you have dig around to find "some fixing backport", so >>>>> there is none fixing just corrupted normalizer? >>>> >>>> It's not needed at all to fix bug #882 and as you know nobody were >>>> happy with >>>> 1MB patch ;-) I could try to find a fix for the normalizer, but it >>>> won't be >>>> immediate which will slows us down. >>>> >>>>> -Also I know that the reproducer was quite complicated, but still, can >>>>> you ssy little bit more about it? >>>> >>>> Hmm I could try to export a ST from the test reports. >>>> >>>>> >>>>> I do not believe there is direct fix for this issue, and unless >>>>> there is >>>>> one, and this is the last of backport for jira issue this should go in >>>>> no metter how much I dont like it :) >>>> >>>> Heh what's wrong with this patch. After all it'll make IcedTea6 quite >>>> quicker :-) >>>> >>>>> >>>>> Thanx for dooing it. >>>>> J. >>>> >>> >>> Ok... Last question: >>> >>> I have tried to reproduce.. Then I have seen the original reproducer.. >>> omg... >>> >>> Can you just explain what te reprodcuer is trying to do? >> >> The reproducer is trying to check if correct wsdl is generated from a >> Java >> file containing WS-related annotations. > > %-/ > > I have hoped for some simple reproducer which is sending corrupted > string to the method :(( Here's ST and before them is the string which caused the failure: *** normalize *** 'cn=red hat code signing ca' Exception in thread "main" java.lang.ExceptionInInitializerError at sun.text.normalizer.NormalizerBase.decompose(NormalizerBase.java:725) at sun.text.normalizer.NormalizerBase$NFKDMode.normalize(NormalizerBase.java:366) at sun.text.normalizer.NormalizerBase.normalize(NormalizerBase.java:1611) at sun.text.normalizer.NormalizerBase.normalize(NormalizerBase.java:1591) at java.text.Normalizer.normalize(Normalizer.java:164) at sun.security.x509.AVA.toRFC2253CanonicalString(AVA.java:1003) at sun.security.x509.RDN.toRFC2253StringInternal(RDN.java:447) at sun.security.x509.RDN.toRFC2253String(RDN.java:426) at sun.security.x509.X500Name.getRFC2253CanonicalName(X500Name.java:731) at sun.security.x509.X500Name.equals(X500Name.java:417) at sun.security.pkcs.PKCS7.getCertificate(PKCS7.java:626) at sun.security.pkcs.SignerInfo.getCertificate(SignerInfo.java:219) at sun.security.pkcs.SignerInfo.verify(SignerInfo.java:345) at sun.security.pkcs.PKCS7.verify(PKCS7.java:511) at sun.security.pkcs.PKCS7.verify(PKCS7.java:528) at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:216) at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:193) at java.util.jar.JarVerifier.processEntry(JarVerifier.java:251) at java.util.jar.JarVerifier.update(JarVerifier.java:205) at java.util.jar.JarFile.initializeVerifier(JarFile.java:338) at java.util.jar.JarFile.getInputStream(JarFile.java:403) at sun.misc.JarIndex.getJarIndex(JarIndex.java:116) at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:623) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:614) at sun.misc.URLClassPath$JarLoader.(URLClassPath.java:598) at sun.misc.URLClassPath$3.run(URLClassPath.java:348) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.URLClassPath.getLoader(URLClassPath.java:337) at sun.misc.URLClassPath.getLoader(URLClassPath.java:314) at sun.misc.URLClassPath.getResource(URLClassPath.java:184) at java.net.URLClassLoader$1.run(URLClassLoader.java:209) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) Caused by: java.lang.RuntimeException at sun.text.normalizer.NormalizerImpl.(NormalizerImpl.java:61) ... 37 more ~ > There exists nothing like that then? The patch looks ok now for me and > you can push to move this thing forward finally. > > However any more-direct reproducer from you or more explanations from > jboss guys will be more appreciated. > > btw - you must prepare patch for spec inclusion for this jira-big-patch > because I do not believe there will be 1.11 release because of this. > > Thanx and dont beat me for the questions :( > J >> >>> >>> After the explanation. Ok for... head and 1.11? >>> >>> >>> >>> J >> > From jvanek at redhat.com Tue Mar 27 03:36:51 2012 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 27 Mar 2012 12:36:51 +0200 Subject: Icedtea-web splashscreen implementation In-Reply-To: <4F6B6D8C.101@redhat.com> References: <4F50BE87.5070508@redhat.com> <4F6B6D8C.101@redhat.com> Message-ID: <4F719843.5010304@redhat.com> On 03/22/2012 07:21 PM, Omair Majid wrote: > Hi Jiri, > > On 03/02/2012 07:35 AM, Jiri Vanek wrote: >> > splasScreen-integration.diff > I have looked over this patch and posted my thoughts below. Yippee!-) > >> > 2012-03-02 Jiri Vanek >> > >> > Integrated splashscreen, added authors, added bitmap splash, >> > * AUTHORS: added Jan Kmetko as the person behind initial bitmap >> > splash design > I am not sure what's the requirement for adding an author; can we have > an author who did not provide code? I have no objections here. I guess any participant should be here (eg translators, correctors, testers...) However -behind my guess is no knowledge;) > >> > * Makefile.am: (edit_launcher_script) enriched for replacement >> > JAVAWS_SPLASH_LOCATION inside javaws.in by real >> > datadir/PACKAGE_NAME/javaws_splash.png value >> > (install-exec-local) enriched for installing javaws_splash.png from >> > NETX_SRCDIR to datadir/PACKAGE_NAME > IcedTea-Web contains a number of images already; they are under > netx/net/sourceforge/jnlp/resources. Any reason you want to have this > image outside of netx.jar? If we leave it in netx.jar, we wont have to > do these modifications to the makefiles. Yes this must be outside jar. It s the image used in "java -splash=image" Whole the work inside are pure vectors. I do not see any "sane" access from bash launcher script into jar. And bash launcher script the only place where this image is used. During your reviews I have noticed that you are not fan of "double splash" - the bitmap for java which will then swap to custom or internal vector one. Can I ask why? I think that can be useful to show that icedtea-web is launching. Eg for slowly downloaded jnlps or on systems where java needs to !page-fault some processes before its own launch it is quite essential. > >> > *NEWS: mentioned splash screen >> > * extra/net/sourceforge/javaws/about/resources/notes.html: added >> > Danesh, Saad, me and Jan as missing developers and artist > Please post a separate patch to add Danesh and Saad to the authors list; > don't do it here. sure > >> > * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: implemented >> > missing default splash screen with vector spalsh and with information's >> > element content >> > * netx/net/sourceforge/jnlp/JNLPSplashScreen.java: fixed to be able >> > to use custom image or (if not defined or broken) our vector one >> > * netx/net/sourceforge/jnlp/Launcher.java: added hooks which will >> > force applet to show error screen in case of error >> > change on lines @@ -696,22 +705,30 @@ probably does not work, and >> > it is the case when connection with server is interrupted in middle of >> > downloading jar >> > (createApplet) and (createAppletObject) were made synchronized to >> > prevent several applets lunched in one time to touch each other >> > * netx/net/sourceforge/jnlp/NetxPanel.java: added field, getter and >> > setter for its XEmbededFrame >> > * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: main >> > (createPanel)'s run is adding splash screen after start of >> > onitialization and removing it before init. >> > (framePanel) returns PluginAppletViewer and is creating sdplash >> > (removeSplash) new method to handle spalsh removing >> > (showErrorSplash) new method to be called by hooks to swap splash to >> > error state >> > * netx/net/sourceforge/jnlp/runtime/Boot.java): (name) and (version) >> > made public > More comments below, in-line. > >> > diff -r f058f21b9e99 launcher/javaws.in >> > --- a/launcher/javaws.in Wed Feb 22 10:18:45 2012 -0500 >> > +++ b/launcher/javaws.in Thu Mar 01 13:31:17 2012 +0100 >> > @@ -5,6 +5,7 @@ >> > LAUNCHER_FLAGS=-Xms8m >> > CLASSNAME=net.sourceforge.jnlp.runtime.Boot >> > BINARY_LOCATION=@JAVAWS_BIN_LOCATION@ >> > +SPLASH_LOCATION=@JAVAWS_SPLASH_LOCATION@ >> > PROGRAM_NAME=javaws >> > CP=@JRE@/lib/rt.jar >> > >> > @@ -15,6 +16,10 @@ >> > i=0 >> > j=0 >> > >> > +SPLASH="false" >> > +if [ "x$ICEDTEA_WEB_SPLASH" = "x" ] ; then >> > +SPLASH="true" >> > +fi; >> > while [ "$#" -gt "0" ]; do >> > case "$1" in >> > -J*) >> > @@ -24,6 +29,9 @@ >> > *) >> > ARGS[$j]="$1" >> > j=$((j+1)) >> > + if [ "$1" = "-headless" ] ; then >> > + SPLASH="false" >> > + fi > Are you sure this is actually needed? If we only show the splash screen > (in javaws) using the GuiLaunchhandler, and that isn't plugged-in in > headless mode, then we don't need there here. Not true - see comment little bit lower. > >> > ;; >> > esac >> > shift >> > @@ -32,6 +40,10 @@ >> > k=0 >> > COMMAND[k]="${JAVA}" >> > k=$((k+1)) >> > +if [ "$SPLASH" = "true" ] ; then >> > +COMMAND[k]="-splash:${SPLASH_LOCATION}" >> > +k=$((k+1)) >> > +fi; > Hm... so we just show a plain image and then later replace it with a > dynamic one? Exactly! the java-spalsh-image precede an vector netx's one. And image and "empty" (no watter in text) vectro one are identical. So swap is quite fluent. > >> > COMMAND[k]="${LAUNCHER_BOOTCLASSPATH}" >> > k=$((k+1)) >> > COMMAND[k]="${LAUNCHER_FLAGS}" >> > diff -r f058f21b9e99 netx/javaws_splash.png >> > Binary file netx/javaws_splash.png has changed >> > diff -r f058f21b9e99 netx/net/sourceforge/jnlp/GuiLaunchHandler.java >> > --- a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java Wed Feb 22 10:18:45 2012 -0500 >> > +++ b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java Thu Mar 01 13:31:17 2012 +0100 >> > @@ -1,5 +1,5 @@ > Currently, the launcher handler is for the enitre runtime. Perhaps we > should limit it to per Application/Applet? Wou! Interesting idea. I will dig around in next review round. > >> > /* GuiLaunchHandler.java >> > - Copyright (C) 2011 Red Hat, Inc. >> > + Copyright (C) 2012 Red Hat, Inc. >> > >> > This file is part of IcedTea. >> > >> > @@ -74,10 +74,13 @@ >> > } >> > >> > private void closeSplashScreen() { >> > - synchronized(mutex) { >> > + synchronized (mutex) { >> > if (splashScreen != null) { >> > if (splashScreen.isSplashScreenValid()) { >> > splashScreen.setVisible(false); >> > + if (splashScreen.isComponented()) { >> > + splashScreen.stopSpining(); >> > + } >> > } >> > splashScreen.dispose(); >> > } >> > @@ -96,40 +99,42 @@ >> > >> > @Override >> > public void launchInitialized(final JNLPFile file) { >> > - >> > + >> > int preferredWidth = 500; >> > int preferredHeight = 400; >> > >> > final URL splashImageURL = file.getInformation().getIconLocation( >> > IconDesc.SPLASH, preferredWidth, preferredHeight); >> > >> > + final ResourceTracker resourceTracker = new ResourceTracker(true); >> > if (splashImageURL != null) { >> > - final ResourceTracker resourceTracker = new ResourceTracker(true); >> > resourceTracker.addResource(splashImageURL, file.getFileVersion(), null, policy); >> > - synchronized(mutex) { >> > - try { >> > - SwingUtilities.invokeAndWait(new Runnable() { >> > - @Override >> > - public void run() { >> > - splashScreen = new JNLPSplashScreen(resourceTracker, null, null); >> > - } >> > - }); >> > - } catch (InterruptedException ie) { >> > - // Wait till splash screen is created >> > - while (splashScreen == null); >> > - } catch (InvocationTargetException ite) { >> > - ite.printStackTrace(); >> > - } >> > + } >> > + synchronized (mutex) { >> > + try { >> > + SwingUtilities.invokeAndWait(new Runnable() { >> > >> > - splashScreen.setSplashImageURL(splashImageURL); >> > + @Override >> > + public void run() { >> > + splashScreen = new JNLPSplashScreen(resourceTracker, file); >> > + } >> > + }); >> > + } catch (InterruptedException ie) { >> > + // Wait till splash screen is created >> > + while (splashScreen == null); > I see this problem was in the existing code too, but this loop may not > work too well. The variable splashScreen is not volatile, so changes to > it may not be propagated :( hmm So your idea is to remove whole synchronized block, invoke and wait and replace it with: voaltile splashScreen; .... splashScreen.setSplashImageURL(splashImageURL); plashScreen = new JNLPSplashScreen(resourceTracker, file); ? At least we will get rid of while (splashScreen == null); :) > >> > + } catch (InvocationTargetException ite) { >> > + ite.printStackTrace(); >> > } >> > + >> > + splashScreen.setSplashImageURL(splashImageURL); > If I am following the code right, this call in turn invokes setLayout() > on this swing container. This should be done in the EDT. > True. This was changed this way so EDT shoud be used. >> > } >> > - >> > + >> > SwingUtilities.invokeLater(new Runnable() { >> > + >> > @Override >> > public void run() { >> > - if (splashImageURL != null) { >> > - synchronized(mutex) { >> > + if (splashScreen != null) { >> > + synchronized (mutex) { >> > if (splashScreen.isSplashScreenValid()) { >> > splashScreen.setVisible(true); >> > } >> > diff -r f058f21b9e99 netx/net/sourceforge/jnlp/JNLPSplashScreen.java >> > --- a/netx/net/sourceforge/jnlp/JNLPSplashScreen.java Wed Feb 22 10:18:45 2012 -0500 >> > +++ b/netx/net/sourceforge/jnlp/JNLPSplashScreen.java Thu Mar 01 13:31:17 2012 +0100 >> > @@ -14,80 +52,107 @@ >> > >> > import net.sourceforge.jnlp.cache.ResourceTracker; >> > import net.sourceforge.jnlp.runtime.JNLPRuntime; >> > +import net.sourceforge.jnlp.splashscreen.SplashPanel; >> > +import net.sourceforge.jnlp.splashscreen.SplashUtils; >> > +import net.sourceforge.jnlp.splashscreen.parts.InformationElement; >> > >> > public class JNLPSplashScreen extends JDialog { >> > >> > - String applicationTitle; >> > - String applicationVendor; >> > + >> > >> > ResourceTracker resourceTracker; >> > >> > URL splashImageUrl; >> > Image splashImage; >> > + private final JNLPFile file; >> > + public static final int DEF_W=635; >> > + public static final int DEF_H=480; > DEFAULT_WIDTH/DEFAULT_HEIGHT ? This is testing class. But as you wish:) > >> > + private SplashPanel componetSplash; >> > >> > - public JNLPSplashScreen(ResourceTracker resourceTracker, >> > - String applicationTitle, String applicationVendor) { >> > + public JNLPSplashScreen(ResourceTracker resourceTracker,final JNLPFile file) { >> > >> > // If the JNLP file does not contain any icon images, the splash image >> > // will consist of the application's title and vendor, as taken from the >> > // JNLP file. >> > >> > this.resourceTracker = resourceTracker; >> > - this.applicationTitle = applicationTitle; >> > - this.applicationVendor = applicationVendor; >> > + this.file=file; >> > + >> > >> > } >> > >> > public void setSplashImageURL(URL url) { >> > - splashImageUrl = url; >> > - splashImage = null; >> > - try { >> > - splashImage = ImageIO.read(resourceTracker >> > - .getCacheFile(splashImageUrl)); >> > - if (splashImage == null) { >> > + if (url != null) { >> > + splashImageUrl = url; >> > + splashImage = null; >> > + try { >> > + splashImage = ImageIO.read(resourceTracker.getCacheFile(splashImageUrl)); > As an optimization, perhaps we can check if the image is already cached. > If it is cached, then we use it otherwise we cache the image in the > background while displaying the normal splash screen? I don't think so. This just javaws spalsh, so each application have its own JNLPSplashScreen. And caching itself is handled by resourceTracker, didn't it? This will not work (as it is now). Until the image is downloaded the java -splash is shown. Then it swap directly to custom one. However it is interesting idea. But I'm afraid it will look nasty to show "our" animated splash and then replace it with custom one. > >> > + if (splashImage == null) { >> > + if (JNLPRuntime.isDebug()) { >> > + System.err.println("Error loading splash image: " + url); >> > + } >> > + >> > + } >> > + } catch (IOException e) { >> > if (JNLPRuntime.isDebug()) { >> > System.err.println("Error loading splash image: " + url); >> > } >> > - return; >> > + splashImage = null; >> > + >> > + } catch (IllegalArgumentException argumentException) { >> > + if (JNLPRuntime.isDebug()) { >> > + System.err.println("Error loading splash image: " + url); >> > + } >> > + splashImage = null; >> > + >> > } >> > - } catch (IOException e) { >> > - if (JNLPRuntime.isDebug()) { >> > - System.err.println("Error loading splash image: " + url); >> > - } >> > - splashImage = null; >> > - return; >> > - } catch (IllegalArgumentException argumentException) { >> > - if (JNLPRuntime.isDebug()) { >> > - System.err.println("Error loading splash image: " + url); >> > - } >> > - splashImage = null; >> > - return; >> > } >> > >> > + if (splashImage == null) { >> > + this.setLayout(new BorderLayout()); >> > + SplashPanel splash = SplashUtils.getSplashScreen(DEF_W, DEF_H, SplashUtils.SplashReason.JAVAWS); > Does it really need to know a reason? Yah! The splash of javaws and applet ale little bit different (mostly by number of shown elements). But yes. From my current view is should be enough when "information" element will be set null, and then it will not be shown (as it does not exists in applet anyway) I will dig around it for next round. > >> > + if (splash != null) { >> > + splash.spin(); > Can we rename this to something more generic? A quick but bad example > would be start()? Definitely :) When I commit, I had some toughts you will not like this name. will be startAnimation() and stopAnimation() ok? or better setAnimated(boolean state)? > >> > + splash.setInformationContent(InformationElement.createFromJNLP(file)); > Can we use the InformationDesc from the jnlp file directly. Yes. My class is just wrapper around. It is handling i18n and selecting the best choice for description (and handling corner cases,and make dealing wit information easier for splash). > >> > + this.add(splash.getPanel()); > SplashPanel is a component that can be added to another swing component? > This I like! At least something :) > >> > + this.componetSplash = splash; >> > + } >> > + } >> > correctSize(); >> > } >> > >> > public boolean isSplashScreenValid() { >> > - return (splashImage != null); >> > + return (splashImage != null) || (componetSplash != null); >> > + >> > } >> > >> > private void correctSize() { >> > + int minimumWidth = DEF_W; >> > + int minimumHeight = DEF_H; >> > + if (splashImage != null) { >> > + Insets insets = getInsets(); >> > + minimumWidth = splashImage.getWidth(null) + insets.left >> > + + insets.right; >> > + minimumHeight = splashImage.getHeight(null) + insets.top >> > + + insets.bottom; >> > + } >> > + setMinimumSize(new Dimension(0, 0)); >> > + setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); >> > + setSize(new Dimension(minimumWidth, minimumHeight)); >> > + setPreferredSize(new Dimension(minimumWidth, minimumHeight)); >> > >> > - Insets insets = getInsets(); >> > - int minimumWidth = splashImage.getWidth(null) + insets.left >> > - + insets.right; >> > - int minimumHeight = splashImage.getHeight(null) + insets.top >> > - + insets.bottom; >> > - setMinimumSize(new Dimension(minimumWidth, minimumHeight)); >> > - >> > - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >> > - setLocation((screenSize.width - minimumWidth) / 2, >> > - (screenSize.height - minimumHeight) / 2); >> > + // Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >> > + // setLocation((screenSize.width - minimumWidth) / 2, >> > + // (screenSize.height - minimumHeight) / 2); >> > + //Above works always, but center only to middle of all monitors >> > + //below works on 1.4 and higher, and center to middle of primary monmtor >> > + setLocationRelativeTo(null); > Does this mean that it will center to the primary monitor instead of the > monitor where javaws was started in? hmmm. The javadoc is silent about concrete monitor used. Anyway - the splash splitted half on one monitor, half on second is really nasty. Also when i was testing it, it doesn't seem to behave as you are implying. > >> > } >> > >> > @Override >> > public void paint(Graphics g) { >> > if (splashImage == null) { >> > + super.paint(g); >> > return; >> > } >> > >> > @@ -96,4 +161,12 @@ >> > g2.drawImage(splashImage, getInsets().left, getInsets().top, null); >> > >> > } >> > + >> > + boolean isComponented() { >> > + return (componetSplash!=null); >> > + } > Whether this container contains components seems to be an implementation > detail. Can you rename this method to make the intention more obvious? > That is, when would I, an external developer, want to call this. sure. containsCustomImage() / composedOfInternalSpalshScreen() Can be? > >> > + >> > + void stopSpining() { >> > + if (isComponented()) componetSplash.stopSpinning(); >> > + } > Again, spinning seems to be an implementation detail. What if we change > the splash screen so it doesn't contain anything spinning? > >> > } >> > diff -r f058f21b9e99 netx/net/sourceforge/jnlp/Launcher.java >> > --- a/netx/net/sourceforge/jnlp/Launcher.java Wed Feb 22 10:18:45 2012 -0500 >> > +++ b/netx/net/sourceforge/jnlp/Launcher.java Thu Mar 01 13:31:17 2012 +0100 >> > @@ -649,18 +651,22 @@ >> > * @param enableCodeBase whether to add the codebase URL to the classloader >> > */ >> > protected ApplicationInstance launchApplet(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { >> > - if (!file.isApplet()) >> > + if (!file.isApplet()) { >> > throw launchError(new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LNotApplet"), R("LNotAppletInfo"))); >> > + } >> > >> > + AppletInstance applet = null; >> > try { >> > - AppletInstance applet = createApplet(file, enableCodeBase, cont); >> > + applet = createApplet(file, enableCodeBase, cont); >> > applet.initialize(); >> > >> > applet.getAppletEnvironment().startApplet(); // this should be a direct call to applet instance >> > return applet; >> > } catch (LaunchException lex) { >> > + SplashUtils.showErrorCaught(lex, applet); > Why not let the launch handler handle this isntead. It will avoid this > tight linking of SplashUtils with Launcher here. I'm afraid I did not get it. Can you tell little bit abut this proposal? > >> > @@ -742,7 +760,7 @@ >> > * @param file the PluginBridge to be used. >> > * @param enableCodeBase whether to add the code base URL to the classloader. >> > */ >> > - protected Applet createAppletObject(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { >> > + protected synchronized Applet createAppletObject(JNLPFile file, boolean enableCodeBase, Container cont) throws LaunchException { > Why the synchronized here? As told elsewhere, more applets on page *looks* like "race" for splashscreen. this *looks* like helping with issue. But I'm probably very wrong. For javaws you have mentioned that spalshscreen is for shared runtime. Can it be also this case? ( I don't think so) But jvm IS shared.... hmmm Im'm confused here. Also you are mentioning it little bit lower: > > >> > diff -r f058f21b9e99 netx/net/sourceforge/jnlp/NetxPanel.java >> > --- a/netx/net/sourceforge/jnlp/NetxPanel.java Wed Feb 22 10:18:45 2012 -0500 >> > +++ b/netx/net/sourceforge/jnlp/NetxPanel.java Thu Mar 01 13:31:17 2012 +0100 >> > @@ -232,4 +233,13 @@ >> > SunToolkit.createNewAppContext(); >> > } >> > } >> > + >> > + public XEmbeddedFrame getAppletViewerFrame() { >> > + return appletViewerFrame; >> > + } >> > + >> > + public void setAppletViewerFrame(XEmbeddedFrame appletViewerFrame) { >> > + this.appletViewerFrame = appletViewerFrame; >> > + } > Do we really need this to be an XEmbeddedFrame? Is an abstraction not > sufficent? It IS XEmbeddedFrame :) But yes. Both this and the reflection can be handled by set of interfaces. > >> > diff -r f058f21b9e99 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >> > --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Wed Feb 22 10:18:45 2012 -0500 >> > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Thu Mar 01 13:31:17 2012 +0100 > I am afraid of adding more swing dependencies to this class. > > I am not too familiar with this class, so I will let someone else (who > is more familiar) look over it for issues with . My main concern is that > we are tightly coupling applet loading code with splash screen code. We > should do this more generically so we can disable/remove/swap out the > splash screen with less hassle. I am considering making launchHandler > per-instance and slightly more generic to handle this sort of thing. I will try to focus to this for enxt round. > >> > @@ -517,6 +600,10 @@ >> > waitForAppletInit(applets.get(identifier).panel); >> > >> > // Should we proceed with reframing? >> > + //appletFrame.removeSplash(); >> > + //framePanel(identifier, oldFrame.statusMsgStream, handle, applets.get(identifier).panel); >> > + System.err.println("Init complete"); >> > + > The commented out code scares me. Is it needed or not? Why add it? Not. it ws moved to dfferent parts of class. It should be deleted. > >> > if (updateStatus(identifier, PAV_INIT_STATUS.REFRAME_COMPLETE).equals(PAV_INIT_STATUS.INACTIVE)) { >> > destroyApplet(identifier); >> > return; >> > @@ -656,6 +743,8 @@ >> > */ >> > public static void waitForAppletInit(NetxPanel panel) { >> > >> > + System.err.println("Waiting for applet init"); >> > + > Perhaps you mean plugin.debug() or something? > sure. > >> > + >> > + private class PluginAppletPanel extends JPanel { >> > + // Nothing to do . Yet.. >> > + } >> > > What's the purpose of this class? Sorry. It Have been forgotten :) > > Cheers, > Omair TYVM for deep-going review (as alwys ;)! J. From mjw at redhat.com Tue Mar 27 05:11:18 2012 From: mjw at redhat.com (Mark Wielaard) Date: Tue, 27 Mar 2012 14:11:18 +0200 Subject: systemtap support with USTD1 only (Was: [PATCH 0 of 2] Add systemtap tapset tests) In-Reply-To: <20120326202207.GA29561@toonder.wildebeest.org> References: <1fc89fee-e2e8-41f5-a76f-3729d5995a0e@zmail13.collab.prod.int.phx2.redhat.com> <20120326202207.GA29561@toonder.wildebeest.org> Message-ID: <1332850278.2824.17.camel@springer.wildebeest.org> Hi, On Mon, 2012-03-26 at 22:22 +0200, Mark Wielaard wrote: > I am happy the tests showed the hotspot update didn't break anything. > Next up is tweaking Andrew's introduction of USTD3 and try to just > do the same thing as Solaris (aka USDT1, Apple uses USDT2 but systemtap > should just support the SDTV1 source level). Then lets see if we can > just get any changes left directly into hotspot instead of carrying > them as a patch in the tree. And that is the attached patch. I got rid of USDT3 and just made GNU/Linux with systemtap USTD1 like Solaris with macros instead of functions for all DTRACE probes. All new tests PASS with this. I think everything still left in systemtap.patch can be pushed into hotspot directly since the diff is actually pretty small. After this gets in icedtea7 HEAD I'll propose it there next. Cheers, Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: systemtap_ustd1_only.patch Type: text/x-patch Size: 5389 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120327/ee672165/systemtap_ustd1_only.patch From ptisnovs at icedtea.classpath.org Tue Mar 27 05:31:10 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 27 Mar 2012 12:31:10 +0000 Subject: /hg/icedtea6: Backport of: 6792400: Avoid loading of Normalizer ... Message-ID: changeset 86fa5b8eb7a9 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=86fa5b8eb7a9 author: ptisnovs date: Tue Mar 27 15:30:53 2012 +0200 Backport of: 6792400: Avoid loading of Normalizer resources for simple uses * patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: Added new patch * NEWS: Mention backport. * Makefile.am: Updated diffstat: ChangeLog | 8 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch | 49 ++++++++++ 4 files changed, 60 insertions(+), 1 deletions(-) diffs (93 lines): diff -r e5b8981cf2ab -r 86fa5b8eb7a9 ChangeLog --- a/ChangeLog Mon Mar 26 23:45:05 2012 +0200 +++ b/ChangeLog Tue Mar 27 15:30:53 2012 +0200 @@ -1,3 +1,11 @@ +2012-03-27 Pavel Tisnovsky + + * patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: + Backport of: 6792400: Avoid loading of Normalizer resources + for simple uses + * NEWS: Mention backport. + * Makefile.am: Updated + 2012-03-21 Pavel Tisnovsky * patches/apache-xml-internal-fix-bug-38655.patch: diff -r e5b8981cf2ab -r 86fa5b8eb7a9 Makefile.am --- a/Makefile.am Mon Mar 26 23:45:05 2012 +0200 +++ b/Makefile.am Tue Mar 27 15:30:53 2012 +0200 @@ -424,7 +424,8 @@ patches/openjdk/6883983-JarVerifier_removed_dependency_sun_security_pkcs.patch \ patches/openjdk/4465490-Suspicious_double-check_locking_idiom.patch \ patches/idresolver_fix.patch \ - patches/apache-xml-internal-fix-bug-38655.patch + patches/apache-xml-internal-fix-bug-38655.patch \ + patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r e5b8981cf2ab -r 86fa5b8eb7a9 NEWS --- a/NEWS Mon Mar 26 23:45:05 2012 +0200 +++ b/NEWS Tue Mar 27 15:30:53 2012 +0200 @@ -22,6 +22,7 @@ - S6761072: new krb5 tests fail on multiple platforms - S6883983: JarVerifier dependency on sun.security.pkcs should be removed - S4465490: Suspicious about double-check locking idiom being used in the code + - S6792400: Avoid loading of Normalizer resources for simple uses New in release 1.10.6 (2012-02-14): diff -r e5b8981cf2ab -r 86fa5b8eb7a9 patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch Tue Mar 27 15:30:53 2012 +0200 @@ -0,0 +1,50 @@ +# HG changeset patch +# User peytoia +# Date 1245934539 -32400 +# Node ID e0707baa159364ff923bf901eab1b6c83d4cf092 +# Parent 4d54d6e7bcefd16bcc9a26b93937359f031389ca +6792400: Avoid loading of Normalizer resources for simple uses +Reviewed-by: okutsu + +diff -r 4d54d6e7bcef -r e0707baa1593 src/share/classes/sun/text/normalizer/NormalizerBase.java +--- openjdk/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java Thu Jun 25 02:42:26 2009 -0700 ++++ openjdk/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java Thu Jun 25 21:55:39 2009 +0900 +@@ -1598,15 +1598,34 @@ + * @param options the optional features to be enabled. + */ + public static String normalize(String str, Normalizer.Form form, int options) { ++ int len = str.length(); ++ boolean asciiOnly = true; ++ if (len < 80) { ++ for (int i = 0; i < len; i++) { ++ if (str.charAt(i) > 127) { ++ asciiOnly = false; ++ break; ++ } ++ } ++ } else { ++ char[] a = str.toCharArray(); ++ for (int i = 0; i < len; i++) { ++ if (a[i] > 127) { ++ asciiOnly = false; ++ break; ++ } ++ } ++ } ++ + switch (form) { + case NFC : +- return NFC.normalize(str, options); ++ return asciiOnly ? str : NFC.normalize(str, options); + case NFD : +- return NFD.normalize(str, options); ++ return asciiOnly ? str : NFD.normalize(str, options); + case NFKC : +- return NFKC.normalize(str, options); ++ return asciiOnly ? str : NFKC.normalize(str, options); + case NFKD : +- return NFKD.normalize(str, options); ++ return asciiOnly ? str : NFKD.normalize(str, options); + } + + throw new IllegalArgumentException("Unexpected normalization form: " + From omajid at redhat.com Tue Mar 27 08:25:20 2012 From: omajid at redhat.com (Omair Majid) Date: Tue, 27 Mar 2012 11:25:20 -0400 Subject: [icedtea-web] RFC: Fix pac tests In-Reply-To: <4F716946.5060900@redhat.com> References: <4F6D7437.8010804@redhat.com> <4F70A806.8060108@redhat.com> <4F70ADA7.2060707@redhat.com> <4F716946.5060900@redhat.com> Message-ID: <4F71DBE0.6040105@redhat.com> On 03/27/2012 03:16 AM, Jiri Vanek wrote: > Among the wrapping and other fixing you did are several times just > fixes of indentation. Do you mind to push those fixes separately and > repost the fixes you did again? Ah. Sorry for that. How does the new patch look? The file uses a really strange mix of tabs and spaces (both 4 and 2) for indentation, making it really hard to write code that fits in with the existing indentation. I hope I have the changes right this time. Thanks, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: fix-pac-tests-02.patch Type: text/x-patch Size: 26712 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120327/6585b6fe/fix-pac-tests-02.patch From jon.vanalten at redhat.com Tue Mar 27 15:28:39 2012 From: jon.vanalten at redhat.com (Jon VanAlten) Date: Tue, 27 Mar 2012 18:28:39 -0400 (EDT) Subject: systemtap support with USTD1 only (Was: [PATCH 0 of 2] Add systemtap tapset tests) In-Reply-To: <1332850278.2824.17.camel@springer.wildebeest.org> Message-ID: <076905c0-93b1-4811-8b48-2940a94516c6@zmail13.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > From: "Mark Wielaard" > To: "Jon VanAlten" > Cc: "IcedTea" , "Andrew Hughes" > Sent: Tuesday, March 27, 2012 8:11:18 AM > Subject: systemtap support with USTD1 only (Was: [PATCH 0 of 2] Add systemtap tapset tests) > > Hi, > > On Mon, 2012-03-26 at 22:22 +0200, Mark Wielaard wrote: > > I am happy the tests showed the hotspot update didn't break > > anything. > > Next up is tweaking Andrew's introduction of USTD3 and try to just > > do the same thing as Solaris (aka USDT1, Apple uses USDT2 but > > systemtap > > should just support the SDTV1 source level). Then lets see if we > > can > > just get any changes left directly into hotspot instead of carrying > > them as a patch in the tree. > > And that is the attached patch. I got rid of USDT3 and just made > GNU/Linux with systemtap USTD1 like Solaris with macros instead of > functions for all DTRACE probes. All new tests PASS with this. > > I think everything still left in systemtap.patch can be pushed into > hotspot directly since the diff is actually pretty small. After this > gets in icedtea7 HEAD I'll propose it there next. > > Cheers, > > Mark > > Sounds cool, but I am grossly unqualified to decide if this is likely to cause any issues. Hopefully Andrew will have more to say :) cheers, jon -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/x-patch Size: 5240 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120327/9e104647/attachment.bin From jgh at FreeBSD.org Tue Mar 27 22:52:07 2012 From: jgh at FreeBSD.org (Jason Helfman) Date: Tue, 27 Mar 2012 22:52:07 -0700 Subject: porting icedtea6 to FreeBSD Message-ID: Hi, I am trying to do a port of iceatea6 to FreeBSD, and am getting a failure when it is in the patching stage. I did have to patch the method of patching to include a "-R" as they were already seen as patched. I don't know if this something that I should be doing or not, however it did get past the initial patches, and fails at the end. Here is the error I receive: Checking patches/security/20110607/6213702.patch 5 out of 5 hunks failed--saving rejects to openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java.rej 2 out of 2 hunks failed--saving rejects to openjdk/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c.rej ERROR patch patches/security/20110607/6213702.patch FAILED! WARNING make clean-patch before retrying a fix *** Error code 2 Stop in /usr/local/workspace/jgh/icedtea6/work/icedtea6-1.10.6. *** Error code 1 Stop in /usr/local/workspace/jgh/icedtea6 The source for my port can be found here: http://svn.freebsd.org/base/user/jgh/icedtea6/ Thanks in advance, and I've attached the rejected files and the make log. Jason -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120327/56ee2803/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: WindowsSelectorImpl.c.rej Type: application/octet-stream Size: 1133 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120327/56ee2803/WindowsSelectorImpl.c.rej -------------- next part -------------- A non-text attachment was scrubbed... Name: WindowsSelectorImpl.java.rej Type: application/octet-stream Size: 4698 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120327/56ee2803/WindowsSelectorImpl.java.rej -------------- next part -------------- A non-text attachment was scrubbed... Name: make.log Type: application/octet-stream Size: 28452 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120327/56ee2803/make.log From aph at redhat.com Wed Mar 28 00:52:50 2012 From: aph at redhat.com (Andrew Haley) Date: Wed, 28 Mar 2012 08:52:50 +0100 Subject: porting icedtea6 to FreeBSD In-Reply-To: References: Message-ID: <4F72C352.2040608@redhat.com> On 03/28/2012 06:52 AM, Jason Helfman wrote: > I am trying to do a port of iceatea6 to FreeBSD, and am getting a failure > when it is in the patching stage. I did have to patch the method of > patching to include a "-R" as they were already seen as patched. I don't > know if this something that I should be doing or not, however it did get > past the initial patches, and fails at the end. They must have been patched twice. Does this even happen after "make clean" ? Andrew. From mark at icedtea.classpath.org Wed Mar 28 01:29:38 2012 From: mark at icedtea.classpath.org (mark at icedtea.classpath.org) Date: Wed, 28 Mar 2012 08:29:38 +0000 Subject: /hg/icedtea7: systemtap.patch: Rewrite using just USDT1 with mac... Message-ID: changeset 75954b8de67b in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=75954b8de67b author: Mark Wielaard date: Tue Mar 27 14:06:49 2012 +0200 systemtap.patch: Rewrite using just USDT1 with macros instead of functions. USDT3 is no more, USDT2 is Apple only. diffstat: ChangeLog | 6 ++++ patches/systemtap.patch | 72 +++++++++++++++++++++++++----------------------- 2 files changed, 44 insertions(+), 34 deletions(-) diffs (140 lines): diff -r 81ebf494d83d -r 75954b8de67b ChangeLog --- a/ChangeLog Mon Mar 26 22:07:22 2012 +0200 +++ b/ChangeLog Tue Mar 27 14:06:49 2012 +0200 @@ -1,3 +1,9 @@ +2012-03-27 Mark Wielaard + + * patches/systemtap.patch: Rewrite using just USDT1 with macros + instead of functions for systemtap support (USDT3 is no more, + USDT2 is Apple only). + 2012-03-26 Mark Wielaard * test/tapset/jstaptest.pl: thread_start and thread_stop thread id diff -r 81ebf494d83d -r 75954b8de67b patches/systemtap.patch --- a/patches/systemtap.patch Mon Mar 26 22:07:22 2012 +0200 +++ b/patches/systemtap.patch Tue Mar 27 14:06:49 2012 +0200 @@ -36,75 +36,78 @@ \ JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \ assert(id->is_static_field_id(), "invalid static field id"); \ -diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp openjdk/hotspot/src/share/vm/utilities/dtrace.hpp ---- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp 2012-02-22 14:54:31.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp 2012-03-18 19:05:33.266067964 +0000 +--- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp 2012-02-22 15:54:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp 2012-03-27 13:12:15.857491730 +0200 @@ -1,5 +1,6 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. -+ * Copyright 2009 Red Hat, Inc. ++ * Copyright (c) 2009, 2012 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -44,6 +45,8 @@ - #include "dtracefiles/hotspot.h" - #include "dtracefiles/hotspot_jni.h" - #include "dtracefiles/hs_private.h" +@@ -32,12 +33,15 @@ + #define DTRACE_ONLY(x) x + #define NOT_DTRACE(x) + ++#if defined(SOLARIS) + // Work around dtrace tail call bug 6672627 until it is fixed in solaris 10. + #define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() \ + do { volatile size_t dtrace_workaround_tail_call_bug = 1; } while (0) + +-#if defined(SOLARIS) + #define USDT1 1 +#elif defined(LINUX) -+#define USDT3 1 - #else - #error "dtrace enabled for unknown os" - #endif /* defined(SOLARIS) */ -@@ -64,6 +67,14 @@ ++#define USDT1 1 ++#define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() + #elif defined(__APPLE__) + #define USDT2 1 + #include +@@ -63,6 +67,11 @@ + #define DTRACE_PROBE3(a,b,c,d,e) {;} #define DTRACE_PROBE4(a,b,c,d,e,f) {;} #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;} - -+#ifdef USDT3 +#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;} +#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;} +#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;} +#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;} +#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;} -+#endif -+ + #else /* USDT2 */ - #include "dtrace_usdt2_disabled.hpp" -@@ -71,7 +82,7 @@ - - #endif /* defined(DTRACE_ENABLED) */ - --#ifndef USDT2 -+#ifdef USDT1 - +@@ -76,10 +85,19 @@ #define HS_DTRACE_PROBE_FN(provider,name)\ __dtrace_##provider##___##name -@@ -80,6 +91,11 @@ + ++#ifdef SOLARIS ++// Solaris dtrace needs actual extern function decls. + #define HS_DTRACE_PROBE_DECL_N(provider,name,args) \ DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args) #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \ DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args) -+#elif defined(USDT3) ++#elif defined(LINUX) +// Systemtap dtrace compatible probes on GNU/Linux don't. +#define HS_DTRACE_PROBE_DECL_N(provider,name,args) +#define HS_DTRACE_PROBE_CDECL_N(provider,name,args) -+#endif ++#else ++#error "USDT1 enabled for unknown os" ++#endif /* Dtrace probe declarations */ #define HS_DTRACE_PROBE_DECL(provider,name) \ -@@ -118,6 +134,8 @@ +@@ -118,6 +136,8 @@ uintptr_t,uintptr_t,uintptr_t)) /* Dtrace probe definitions */ -+#ifndef USDT3 ++#if defined(SOLARIS) +// Solaris dtrace uses actual function calls. #define HS_DTRACE_PROBE_N(provider,name, args) \ DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args) -@@ -153,7 +171,32 @@ +@@ -153,6 +173,34 @@ HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\ (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\ (uintptr_t)a8,(uintptr_t)a9)) -+#else ++#elif defined(LINUX) +// Systemtap dtrace compatible probes on GNU/Linux use direct macros. +#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name) +#define HS_DTRACE_PROBE0(provider,name)\ @@ -129,8 +132,9 @@ + DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) +#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ + DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) ++#else ++#error "USDT1 enabled for unknown os" ++#endif --#endif /* !USDT2 */ -+#endif /* !USDT3 */ + #endif /* !USDT2 */ - #endif // SHARE_VM_UTILITIES_DTRACE_HPP From mjw at redhat.com Wed Mar 28 01:30:24 2012 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 28 Mar 2012 10:30:24 +0200 Subject: systemtap support with USTD1 only (Was: [PATCH 0 of 2] Add systemtap tapset tests) In-Reply-To: <076905c0-93b1-4811-8b48-2940a94516c6@zmail13.collab.prod.int.phx2.redhat.com> References: <076905c0-93b1-4811-8b48-2940a94516c6@zmail13.collab.prod.int.phx2.redhat.com> Message-ID: <1332923424.2826.0.camel@springer.wildebeest.org> On Tue, 2012-03-27 at 18:28 -0400, Jon VanAlten wrote: > > And that is the attached patch. I got rid of USDT3 and just made > > GNU/Linux with systemtap USTD1 like Solaris with macros instead of > > functions for all DTRACE probes. All new tests PASS with this. > > > > I think everything still left in systemtap.patch can be pushed into > > hotspot directly since the diff is actually pretty small. After this > > gets in icedtea7 HEAD I'll propose it there next. > > Sounds cool, but I am grossly unqualified to decide if this is likely > to cause any issues. Hopefully Andrew will have more to say :) On irc Andrew said this looked fine, so I have pushed it. Thanks, Mark From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 04:46:44 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 11:46:44 +0000 Subject: [Bug 908] New: Plugin unsecure Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 Bug #: 908 Summary: Plugin unsecure Classification: Unclassified Product: IcedTea-Web Version: unspecified Platform: x86 OS/Version: Linux Status: NEW Severity: major Priority: P3 Component: Plugin AssignedTo: dbhole at redhat.com ReportedBy: jw at hotmail.cz CC: unassigned at icedtea.classpath.org Hi, Could you update internal plugin version of Java-JRE to latest 1.6.0.31 please? Thx -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 05:21:34 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 12:21:34 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xerxes at zafena.se Severity|major |normal --- Comment #1 from Xerxes R?nby 2012-03-28 12:21:34 UTC --- Please clarify what you mean. 1.6.0.31 are a version number of the closed source Oracle JavaSE product. The icedtea project do not ship any binary builds and have no influence over oracles builds. The icedtea-web code are not related to the the closed source plugin inside Oracle JavaSE. Which version of icedtea and icedtea-web are you using? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Wed Mar 28 05:30:35 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 28 Mar 2012 08:30:35 -0400 (EDT) Subject: systemtap support with USTD1 only (Was: [PATCH 0 of 2] Add systemtap tapset tests) In-Reply-To: <1332923424.2826.0.camel@springer.wildebeest.org> Message-ID: <4ef041f3-3458-4cf1-afa1-231457e0b2ee@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On Tue, 2012-03-27 at 18:28 -0400, Jon VanAlten wrote: > > > And that is the attached patch. I got rid of USDT3 and just made > > > GNU/Linux with systemtap USTD1 like Solaris with macros instead > > > of > > > functions for all DTRACE probes. All new tests PASS with this. > > > > > > I think everything still left in systemtap.patch can be pushed > > > into > > > hotspot directly since the diff is actually pretty small. After > > > this > > > gets in icedtea7 HEAD I'll propose it there next. > > > > Sounds cool, but I am grossly unqualified to decide if this is > > likely > > to cause any issues. Hopefully Andrew will have more to say :) > > On irc Andrew said this looked fine, so I have pushed it. > That's this Andrew... :-) I was going to reply here too, just to say that I originally did the most conservative changes to make sure everything worked, but I'm more than happy for you to change things to whatever you think works best. You maintain it, after all... Getting this upstream would be good. At the moment, this is conditional in IcedTea rather than being just an always-applied patch in the forest. Do you want to change this? It would make sense to me, especially now the upstream code has support for two DTrace implementations (Solaris and Mac OS) rather than just one. Conditional patches only tend to cause pain if a build run doesn't test them. > Thanks, > > Mark > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ahughes at redhat.com Wed Mar 28 05:34:55 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 28 Mar 2012 08:34:55 -0400 (EDT) Subject: porting icedtea6 to FreeBSD In-Reply-To: Message-ID: <7388b0be-4c25-404b-93dd-94e5b9212839@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Hi, > > I am trying to do a port of iceatea6 to FreeBSD, and am getting a > failure when it is in the patching stage. I did have to patch the > method of patching to include a "-R" as they were already seen as > patched. I don't know if this something that I should be doing or > not, however it did get past the initial patches, and fails at the > end. > > Here is the error I receive: > > Checking patches/security/20110607/6213702.patch > 5 out of 5 hunks failed--saving rejects to > openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java.rej > 2 out of 2 hunks failed--saving rejects to > openjdk/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c.rej > ERROR patch patches/security/20110607/6213702.patch FAILED! > WARNING make clean-patch before retrying a fix > *** Error code 2 > > Stop in /usr/local/workspace/jgh/icedtea6/work/icedtea6-1.10.6. > *** Error code 1 > > Stop in /usr/local/workspace/jgh/icedtea6 > > The source for my port can be found here: > http://svn.freebsd.org/base/user/jgh/icedtea6/ > > Thanks in advance, and I've attached the rejected files and the make > log. > Jason > > > It's hard to tell what's happening here without more details as to how you're building. Posting config.log would be very helpful. If you're building icedtea6 directly against an openjdk6 checkout, rather than the default of using release tarballs, this will happen as the security patches are already applied in OpenJDK6 upstream. For hg, you need the hg branch: http://icedtea.classpath.org/hg/icedtea6-hg Going forward, I doubt this will work as OpenJDK6 doesn't have the *BSD work that Oracle have integrated for Mac OS X. You might be better starting from 7. 6 is likely to end up having to be retired by the end of the year anyway, as Oracle intend to stop security support. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 05:40:30 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 12:40:30 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 thomas at m3y3r.de changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |thomas at m3y3r.de --- Comment #2 from thomas at m3y3r.de 2012-03-28 12:40:30 UTC --- $ /usr/lib/jvm/jre-1.6.0-openjdk/bin/java -version java version "1.6.0_24" OpenJDK Runtime Environment (IcedTea6 1.11.1) (fedora-65.1.11.1.fc16-i386) OpenJDK Client VM (build 20.0-b12, mixed mode) I guess the java version should be set to the suggested value. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From thomas at m3y3r.de Wed Mar 28 05:41:41 2012 From: thomas at m3y3r.de (Thomas Meyer) Date: Wed, 28 Mar 2012 14:41:41 +0200 Subject: [RFC] Fix IndexOutOfBoundException because of corrupted entry in recently_used file Message-ID: <1332938501.1397.15.camel@localhost.localdomain> # HG changeset patch # User Thomas Meyer # Date 1332937976 -7200 # Node ID f6540088f06f2d9962e1c5b7858c4212f045759e # Parent 093896b370d3ed3f1fc3527084133b8e388bf0ae Fix IndexOutOfBoundException because of corrupt "recently_used" index file of cached files. Better solution would be to do this validation in CacheLRUWrapper.load() diff -r 093896b370d3 -r f6540088f06f netx/net/sourceforge/jnlp/cache/CacheUtil.java --- a/netx/net/sourceforge/jnlp/cache/CacheUtil.java Wed Mar 28 12:08:10 2012 +0200 +++ b/netx/net/sourceforge/jnlp/cache/CacheUtil.java Wed Mar 28 14:32:56 2012 +0200 @@ -354,17 +354,22 @@ } } while (entries == null); + // Start searching from the most recent to least recent. for (Entry e : entries) { final String key = e.getKey(); - final String path = e.getValue(); + String path = e.getValue(); if (path != null) { - if (pathToURLPath(path).equals(urlPath.getPath())) { // Match found. - cacheFile = new File(path); - lruHandler.updateEntry(key); - break; // Stop searching since we got newest one already. - } + path=pathToURLPath(path); + if(path == null) + lruHandler.removeEntry(key); + else + if (path.equals(urlPath.getPath())) { // Match found. + cacheFile = new File(path); + lruHandler.updateEntry(key); + break; // Stop searching since we got newest one already. + } } } return cacheFile; @@ -377,6 +382,13 @@ private static String pathToURLPath(String path) { int len = cacheDir.length(); int index = path.indexOf(File.separatorChar, len + 1); + + /* + * somehow the lru entries got corrupt. ignore this entry and + * don't fail with an IndexOutOfBoundsException + */ + if(index < 0) + return null; return path.substring(index); } From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 05:46:25 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 12:46:25 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #3 from John Wanderman 2012-03-28 12:46:25 UTC --- operating system .... Ubuntu 12.04 beta 1 (Precise Pangolin) --- nearly in April 2012 will be 'stable' web browser ... Firefox 11.0 (as well using Opera, Chrome, SeaMonkey, Konqueror) in Firefox I have this one ... " IcedTea-Web Plugin (using IcedTea-Web 1.2 (1.2-1ubuntu1)" If this ("1.2-1") is the latest version of the plugin??? I could only see when testing here (http://java.com/en/download/installed.jsp?jre_version=1.6.0_24&vendor=Sun+Microsystems+Inc.&os=Linux&os_version=3.2.0-20-generic-pae), I am using version 1.6.0.24 thanks to IcedTea-Web plugin. The latest available on Java site is "Version 6 Update 31" and there is also available "Looking for Java 7" build for free. I was not successful to install origiinal Java-JRE to my system, so I am very thankful to this IcedTea plugin to help me running Java apps across the websites. My question is ... Is it possible to have IcedTea plugin based on version "6 Update 31" (or even "Java 7") ??? Thx. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 05:51:16 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 12:51:16 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #4 from Deepak Bhole 2012-03-28 12:51:16 UTC --- The comparison between the proprietary JDK update versions and IcedTea update versions is invalid. Please see: http://dbhole.wordpress.com/2011/05/27/why-do-xx-and-yy-in-jdk6-uxx-and-openjdk-byy-differ/ -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 05:52:05 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 12:52:05 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #5 from Deepak Bhole 2012-03-28 12:52:05 UTC --- (In reply to comment #4) > The comparison between the proprietary JDK update versions and IcedTea update s/IcedTea/OpenJDK -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 05:54:24 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 12:54:24 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |ahughes at redhat.com Resolution| |INVALID -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 06:09:59 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 13:09:59 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #6 from John Wanderman 2012-03-28 13:09:59 UTC --- (In reply to comment #5) > (In reply to comment #4) > > The comparison between the proprietary JDK update versions and IcedTea update > > s/IcedTea/OpenJDK What does it mean? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 06:28:07 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 13:28:07 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #7 from Deepak Bhole 2012-03-28 13:28:07 UTC --- (In reply to comment #6) > (In reply to comment #5) > > (In reply to comment #4) > > > The comparison between the proprietary JDK update versions and IcedTea update > > > > s/IcedTea/OpenJDK > > What does it mean? I meant that you should ignore what the applet is saying about you not having the latest version, or your browser not being secure, etc. That applet is only designed to work with the proprietary plug-in running on the proprietary VM. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 06:44:12 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 13:44:12 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #8 from Andrew John Hughes 2012-03-28 13:44:12 UTC --- Isn't this why we added JDK_UPDATE_VERSION? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 06:55:43 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 13:55:43 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #9 from Deepak Bhole 2012-03-28 13:55:43 UTC --- Yep, and it worked for a while but either their applet or something in our build seems to have changed as java.version now has _24. I don't think it is worth chasing since 6 will be EOLd soon and as this won't be an issue with 7 where the numbers would align. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 07:01:35 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 14:01:35 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 Omair Majid changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |omajid at redhat.com --- Comment #10 from Omair Majid 2012-03-28 14:01:35 UTC --- (In reply to comment #8) > Isn't this why we added JDK_UPDATE_VERSION? No. AFAIK, JDK_UPDATE_VERSION only affects the deployment toolkit's detection of the plugin. The applet itself uses the value of java.version (which icedtea-web doesn't touch). So that corresponds to whatever JDK/JRE icedtea-web is running against. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 07:04:50 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 14:04:50 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #11 from Deepak Bhole 2012-03-28 14:04:50 UTC --- Ah, I thought that at some point JDK_UPDATE_VERSION controlled java.version too. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 09:08:05 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 16:08:05 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #12 from John Wanderman 2012-03-28 16:08:05 UTC --- Thanks to all spectators here. I very appriciate that answers. IcedTea is very useful open implementation of Java applet for many end users and even developers. Keep it up! -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 09:31:02 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 16:31:02 +0000 Subject: [Bug 908] Plugin unsecure In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=908 --- Comment #13 from Andrew John Hughes 2012-03-28 16:31:02 UTC --- Deepak, it probably did before the IcedTea/IcedTea-Web split. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 09:35:10 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 16:35:10 +0000 Subject: [Bug 909] New: The Java applet at http://de.gosupermodel.com/games/wardrobegame.jsp fails. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=909 Bug #: 909 Summary: The Java applet at http://de.gosupermodel.com/games/wardrobegame.jsp fails. Classification: Unclassified Product: IcedTea-Web Version: 1.1.3 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: Plugin AssignedTo: dbhole at redhat.com ReportedBy: thomas.mertes at gmx.at CC: unassigned at icedtea.classpath.org Hello, when my daughter tries Java applets at http://de.gosupermodel.com/games/wardrobegame.jsp http://de.gosupermodel.com/games/dancer_menu.jsp http://de.gosupermodel.com/games/photoshoot.jsp nothing happens. She uses firefox 11.0 and the Java plugin is IcedTea-Web 1.1.3 (1.1.3-1ubuntu1.1) Since she confirms that, it works with competing Products (IE), I guess that she found a bug in IcedTea-Web. Btw. uname -a writes: Linux penguin 3.0.0-16-generic #29-Ubuntu SMP Tue Feb 14 12:49:42 UTC 2012 i686 i686 i386 GNU/Linux Hopefully my complaint helps to improve IcedTea-Web. Greetings Thomas Mertes -- Seed7 Homepage: http://seed7.sourceforge.net Seed7 - The extensible programming language: User defined statements and operators, abstract data types, templates without special syntax, OO with interfaces and multiple dispatch, statically typed, interpreted or compiled, portable, runs under linux/unix/windows. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Mar 28 09:52:08 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 28 Mar 2012 16:52:08 +0000 Subject: [Bug 909] The Java applet at http://de.gosupermodel.com/games/wardrobegame.jsp fails. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=909 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|dbhole at redhat.com |ddadacha at redhat.com --- Comment #1 from Deepak Bhole 2012-03-28 16:52:08 UTC --- Thanks for reporting this. It appears to be related to JNLP_HREF, which we are still in the process of adding support for. Re-assigning to Danesh. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From jgh at FreeBSD.org Wed Mar 28 12:45:42 2012 From: jgh at FreeBSD.org (Jason Helfman) Date: Wed, 28 Mar 2012 12:45:42 -0700 Subject: porting icedtea6 to FreeBSD In-Reply-To: <7388b0be-4c25-404b-93dd-94e5b9212839@zmail17.collab.prod.int.phx2.redhat.com> References: <7388b0be-4c25-404b-93dd-94e5b9212839@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <20120328194542.GC57013@dormouse.experts-exchange.com> On Wed, Mar 28, 2012 at 08:34:55AM -0400, Andrew Hughes thus spake: >----- Original Message ----- >> Hi, >> >> I am trying to do a port of iceatea6 to FreeBSD, and am getting a >> failure when it is in the patching stage. I did have to patch the >> method of patching to include a "-R" as they were already seen as >> patched. I don't know if this something that I should be doing or >> not, however it did get past the initial patches, and fails at the >> end. >> >> Here is the error I receive: >> >> Checking patches/security/20110607/6213702.patch >> 5 out of 5 hunks failed--saving rejects to >> openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java.rej >> 2 out of 2 hunks failed--saving rejects to >> openjdk/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c.rej >> ERROR patch patches/security/20110607/6213702.patch FAILED! >> WARNING make clean-patch before retrying a fix >> *** Error code 2 >> >> Stop in /usr/local/workspace/jgh/icedtea6/work/icedtea6-1.10.6. >> *** Error code 1 >> >> Stop in /usr/local/workspace/jgh/icedtea6 >> >> The source for my port can be found here: >> http://svn.freebsd.org/base/user/jgh/icedtea6/ >> >> Thanks in advance, and I've attached the rejected files and the make >> log. >> Jason >> >> >> > >It's hard to tell what's happening here without more details as to how >you're building. Posting config.log would be very helpful. I've attached this. > >If you're building icedtea6 directly against an openjdk6 checkout, rather >than the default of using release tarballs, this will happen as the security >patches are already applied in OpenJDK6 upstream. For hg, you >need the hg branch: I am building off of the release tarballs. I've updated the path of my development to this url: https://redports.org/browser/jgh/java/icedtea6/Makefile Please take note the files and locations where they are being downloaded from. > >http://icedtea.classpath.org/hg/icedtea6-hg > >Going forward, I doubt this will work as OpenJDK6 doesn't have the *BSD work >that Oracle have integrated for Mac OS X. You might be better starting from >7. 6 is likely to end up having to be retired by the end of the year anyway, >as Oracle intend to stop security support. If I can get this to work on 6 it would be great, however I can work on 7 as well. Is there anything I can not apply to get it to work on 6? Thanks! Jason -- Jason Helfman | FreeBSD Committer jgh at FreeBSD.org | http://people.freebsd.org/~jgh -------------- next part -------------- This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by icedtea6 configure 1.10.6, which was generated by GNU Autoconf 2.68. Invocation command line was $ ./configure --with-ecj-jar=/usr/local/share/java/classes/ecj-3.7.2.jar --with-xalan2-jar=/usr/local/share/java/classes/xalan.jar --with-xalan2-serializer-jar=/usr/local/share/java/classes/serializer.jar --with-xerces2-jar=/usr/local/share/java/classes/xercesImpl.jar --with-rhino=/usr/local/share/java/rhino/rhino.jar --with-jdk-home=/usr/local/openjdk6 --with-jaxp-drop-zip=/usr/ports/distfiles/jaxp144_01.zip --with-jaf-drop-zip=/usr/ports/distfiles/jdk6-jaf-b20.zip --with-jaxws-drop-zip=/usr/ports/distfiles/jdk6-jaxws-b20.zip --with-openjdk-src-zip=/usr/ports/distfiles/openjdk-6-src-b22-28_feb_2011.tar.gz --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/ --build=amd64-portbld-freebsd8.2 ## --------- ## ## Platform. ## ## --------- ## hostname = dormouse.experts-exchange.com uname -m = amd64 uname -r = 8.2-RELEASE uname -s = FreeBSD uname -v = FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011 root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC /usr/bin/uname -p = amd64 /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /home/jhelfman/bin PATH: /sbin PATH: /bin PATH: /usr/sbin PATH: /usr/bin PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /usr/local/ee/bin PATH: /usr/local/ee/perl/bin ## ----------- ## ## Core tests. ## ## ----------- ## configure:2773: checking for a BSD-compatible install configure:2841: result: /usr/bin/install -c -o root -g wheel configure:2852: checking whether build environment is sane configure:2902: result: yes configure:3043: checking for a thread-safe mkdir -p configure:3082: result: ./install-sh -c -d configure:3095: checking for gawk configure:3111: found /usr/local/bin/gawk configure:3122: result: gawk configure:3133: checking whether make sets $(MAKE) configure:3155: result: yes configure:3230: checking how to create a pax tar archive configure:3243: tar --version bsdtar 2.7.0 - libarchive 2.7.0 configure:3246: $? = 0 configure:3286: tardir=conftest.dir && eval tar --format=posix -chf - "$tardir" >conftest.tar configure:3289: $? = 0 configure:3293: tar -xf - &5 cc (GCC) 4.2.1 20070719 [FreeBSD] Copyright (C) 2007 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. configure:3726: $? = 0 configure:3715: cc -v >&5 Using built-in specs. Target: amd64-undermydesk-freebsd Configured with: FreeBSD/amd64 system compiler Thread model: posix gcc version 4.2.1 20070719 [FreeBSD] configure:3726: $? = 0 configure:3715: cc -V >&5 cc: '-V' option must have argument configure:3726: $? = 1 configure:3715: cc -qversion >&5 cc: unrecognized option '-qversion' cc: No input files specified configure:3726: $? = 1 configure:3746: checking whether the C compiler works configure:3768: cc -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include -L/usr/local/include -L/usr/local/lib conftest.c >&5 configure:3772: $? = 0 configure:3820: result: yes configure:3823: checking for C compiler default output file name configure:3825: result: a.out configure:3831: checking for suffix of executables configure:3838: cc -o conftest -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include -L/usr/local/include -L/usr/local/lib conftest.c >&5 configure:3842: $? = 0 configure:3864: result: configure:3886: checking whether we are cross compiling configure:3894: cc -o conftest -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include -L/usr/local/include -L/usr/local/lib conftest.c >&5 configure:3898: $? = 0 configure:3905: ./conftest configure:3909: $? = 0 configure:3924: result: no configure:3929: checking for suffix of object files configure:3951: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:3955: $? = 0 configure:3976: result: o configure:3980: checking whether we are using the GNU C compiler configure:3999: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:3999: $? = 0 configure:4008: result: yes configure:4017: checking whether cc accepts -g configure:4037: cc -c -g -I/usr/local/include conftest.c >&5 configure:4037: $? = 0 configure:4078: result: yes configure:4095: checking for cc option to accept ISO C89 configure:4159: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:4159: $? = 0 configure:4172: result: none needed configure:4203: checking for style of include used by make configure:4231: result: GNU configure:4257: checking dependency style of cc configure:4368: result: none configure:4495: checking for C++ compiler version configure:4504: c++ --version >&5 c++ (GCC) 4.2.1 20070719 [FreeBSD] Copyright (C) 2007 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. configure:4515: $? = 0 configure:4504: c++ -v >&5 Using built-in specs. Target: amd64-undermydesk-freebsd Configured with: FreeBSD/amd64 system compiler Thread model: posix gcc version 4.2.1 20070719 [FreeBSD] configure:4515: $? = 0 configure:4504: c++ -V >&5 c++: '-V' option must have argument configure:4515: $? = 1 configure:4504: c++ -qversion >&5 c++: unrecognized option '-qversion' c++: No input files specified configure:4515: $? = 1 configure:4519: checking whether we are using the GNU C++ compiler configure:4538: c++ -c -O2 -pipe -fno-strict-aliasing -I/usr/local/include conftest.cpp >&5 configure:4538: $? = 0 configure:4547: result: yes configure:4556: checking whether c++ accepts -g configure:4576: c++ -c -g -I/usr/local/include conftest.cpp >&5 configure:4576: $? = 0 configure:4617: result: yes configure:4642: checking dependency style of c++ configure:4753: result: none configure:4815: checking for make configure:4833: found /usr/bin/make configure:4845: result: /usr/bin/make configure:4918: checking for gzip configure:4936: found /usr/bin/gzip configure:4948: result: /usr/bin/gzip configure:5021: checking for ant configure:5039: found /usr/local/bin/ant configure:5051: result: /usr/local/bin/ant configure:5124: checking for find configure:5142: found /usr/bin/find configure:5154: result: /usr/bin/find configure:5227: checking for patch configure:5245: found /usr/bin/patch configure:5257: result: /usr/bin/patch configure:5330: checking for tar configure:5348: found /usr/bin/tar configure:5360: result: /usr/bin/tar configure:5433: checking for chmod configure:5451: found /bin/chmod configure:5463: result: /bin/chmod configure:5536: checking for md5sum configure:5566: result: /sbin/md5 configure:5639: checking for sha256sum configure:5669: result: /sbin/sha256 configure:5742: checking for wget configure:5760: found /usr/local/bin/wget configure:5772: result: /usr/local/bin/wget configure:5845: checking for zip configure:5863: found /usr/local/bin/zip configure:5875: result: /usr/local/bin/zip configure:5948: checking for unzip configure:5966: found /usr/local/bin/unzip configure:5978: result: /usr/local/bin/unzip configure:6051: checking for cpio configure:6069: found /usr/bin/cpio configure:6081: result: /usr/bin/cpio configure:6154: checking for file configure:6172: found /usr/bin/file configure:6184: result: /usr/bin/file configure:6260: checking for fastjar configure:6290: result: no configure:6260: checking for jar configure:6276: found /usr/local/bin/jar configure:6287: result: jar configure:6358: checking for ldd configure:6374: found /usr/bin/ldd configure:6385: result: ldd configure:6453: checking for gawk configure:6471: found /usr/local/bin/gawk configure:6483: result: /usr/local/bin/gawk configure:6557: checking for hg configure:6590: result: no configure:6613: checking for an OpenJDK source directory configure:6629: result: /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6/openjdk usage: which [-as] program ... configure:6777: checking for lsb_release configure:6810: result: no configure:6830: checking whether to compile ecj natively configure:6844: result: no configure:6952: checking which HotSpot build to use configure:6971: result: original configure:7029: checking for linux32 configure:7062: result: no configure:7082: checking version of GCC configure:7095: result: 4.2.1 (major version 4, minor version 2) configure:7145: checking for getconf configure:7163: found /usr/bin/getconf configure:7175: result: /usr/bin/getconf configure:7202: checking the number of online processors configure:7215: result: 2 configure:7221: checking how many parallel build jobs to execute configure:7241: result: 2 configure:7246: checking if cp supports --reflink cp: illegal option -- - usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file target_file cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file ... target_directory configure:7261: result: no configure:7273: checking if we can hard link rather than copy from /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6 configure:7287: result: yes configure:7299: checking if a PaX-enabled kernel is running grep: /proc/self/status: No such file or directory configure:7312: result: no configure:7324: checking for system library directory configure:7354: result: configure:7413: checking for pkg-config configure:7431: found /usr/local/bin/pkg-config configure:7443: result: /usr/local/bin/pkg-config configure:7468: checking pkg-config is at least version 0.9.0 configure:7471: result: yes configure:7483: checking for NSS configure:7490: $PKG_CONFIG --exists --print-errors "nss" configure:7493: $? = 0 configure:7507: $PKG_CONFIG --exists --print-errors "nss" configure:7510: $? = 0 configure:7548: result: yes configure:7573: checking for xvfb-run configure:7603: result: no configure:7610: checking for an Ant home directory configure:7630: result: /usr/share/ant configure:7633: checking whether to include PulseAudio support configure:7650: result: no configure:7653: checking whether to build documentation configure:7670: result: yes configure:7674: checking whether to enable experimental OpenJDK cross-compilation support configure:7691: result: no configure:7694: checking whether to include the XRender pipeline configure:7711: result: yes configure:7714: checking whether to include NIO2 support configure:7731: result: no configure:7734: checking whether to include SystemTap tracing support configure:7751: result: no configure:7754: checking whether to include the NSS-based security provider configure:7776: result: disabled by default (edit java.security to enable) configure:7781: checking for distribution package version configure:7795: result: none configure:7809: checking build identification configure:7823: result: Custom build (Wed Mar 28 12:39:17 PDT 2012) configure:7960: checking whether to build a bootstrap version first configure:7980: result: yes configure:7992: checking for a JDK home directory configure:8027: result: /usr/local/openjdk6 configure:8036: checking if a java binary was specified configure:8054: result: no configure:8059: checking if /usr/local/openjdk6/bin/java is a valid executable file configure:8062: result: yes configure:8450: checking for javac configure:8468: found /usr/local/bin/javac configure:8480: result: /usr/local/bin/javac configure:8496: checking if a javah binary was specified configure:8514: result: no configure:8519: checking if /usr/local/openjdk6/bin/javah is a valid executable file configure:8522: result: yes configure:8618: checking if a jar binary was specified configure:8636: result: no configure:8641: checking if /usr/local/openjdk6/bin/jar is a valid executable file configure:8644: result: yes configure:8736: checking whether jar supports @ argument configure:8744: result: yes configure:8751: checking whether jar supports stdin file arguments Illegal option: @ Usage: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ... Options: -c create new archive -t list table of contents for archive -x extract named (or all) files from archive -u update existing archive -v generate verbose output on standard output -f specify archive file name -m include manifest information from specified manifest file -e specify application entry point for stand-alone application bundled into an executable jar file -0 store only; use no ZIP compression -M do not create a manifest file for the entries -i generate index information for the specified jar files -C change to the specified directory and include the following file If any file is a directory then it is processed recursively. The manifest file name, the archive file name and the entry point name are specified in the same order as the 'm', 'f' and 'e' flags. Example 1: to archive two class files into an archive called classes.jar: jar cvf classes.jar Foo.class Bar.class Example 2: use an existing manifest file 'mymanifest' and archive all the files in the foo/ directory into 'classes.jar': jar cvfm classes.jar mymanifest -C foo/ . configure:8759: result: no configure:8763: checking whether jar supports -J options at the end configure:8767: result: yes configure:8782: checking if a rmic binary was specified configure:8800: result: no configure:8805: checking if /usr/local/openjdk6/bin/rmic is a valid executable file configure:8808: result: yes configure:8904: checking if a native2ascii binary was specified configure:8922: result: no configure:8927: checking if /usr/local/openjdk6/bin/native2ascii is a valid executable file configure:8930: result: yes configure:9026: checking for an ecj JAR file configure:9057: result: /usr/local/share/java/classes/ecj-3.7.2.jar configure:9065: checking for a xalan2 jar configure:9096: result: /usr/local/share/java/classes/xalan.jar configure:9101: checking for a xalan2 serializer jar configure:9132: result: /usr/local/share/java/classes/serializer.jar configure:9137: checking for a xerces2 jar configure:9170: result: /usr/local/share/java/classes/xercesImpl.jar configure:9181: checking whether to include Javascript support via Rhino configure:9225: result: /usr/local/share/java/rhino/rhino.jar configure:9241: checking for an OpenJDK source zip configure:9268: result: /usr/ports/distfiles/openjdk-6-src-b22-28_feb_2011.tar.gz configure:9273: checking for a HotSpot source zip configure:9300: result: not specified configure:9305: checking for an alternate jar command configure:9335: result: not specified configure:9340: checking for a JAXP drop zip configure:9367: result: /usr/ports/distfiles/jaxp144_01.zip configure:9372: checking for a JAF drop zip configure:9399: result: /usr/ports/distfiles/jdk6-jaf-b20.zip configure:9404: checking for a JAXWS drop zip configure:9431: result: /usr/ports/distfiles/jdk6-jaxws-b20.zip configure:9437: checking whether to use CACAO as VM configure:9451: result: no configure:9464: checking for a CACAO home directory configure:9501: result: $(abs_top_builddir)/cacao/install configure:9506: checking for a CACAO source zip configure:9533: result: not specified configure:9538: checking for a CACAO source directory configure:9568: result: not specified configure:9574: checking whether to use JamVM as VM configure:9588: result: no configure:9601: checking for a JamVM source zip configure:9628: result: not specified configure:9634: checking whether to disable optimizations and build with -O0 -g configure:9654: result: no configure:9666: checking whether to use the Shark JIT configure:9687: result: no configure:9705: checking how to run the C preprocessor configure:9775: result: cpp configure:9795: cpp -I/usr/local/include conftest.c configure:9795: $? = 0 configure:9809: cpp -I/usr/local/include conftest.c conftest.c:11:28: error: ac_nonexistent.h: No such file or directory configure:9809: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "icedtea6" | #define PACKAGE_TARNAME "icedtea6" | #define PACKAGE_VERSION "1.10.6" | #define PACKAGE_STRING "icedtea6 1.10.6" | #define PACKAGE_BUGREPORT "distro-pkg-dev at openjdk.java.net" | #define PACKAGE_URL "" | #define PACKAGE "icedtea6" | #define VERSION "1.10.6" | /* end confdefs.h. */ | #include configure:9838: checking for grep that handles long lines and -e configure:9896: result: /usr/bin/grep configure:9901: checking for egrep configure:9963: result: /usr/bin/grep -E configure:9968: checking for ANSI C header files configure:9988: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:9988: $? = 0 configure:10061: cc -o conftest -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include -L/usr/local/include -L/usr/local/lib conftest.c >&5 configure:10061: $? = 0 configure:10061: ./conftest configure:10061: $? = 0 configure:10072: result: yes configure:10085: checking for sys/types.h configure:10085: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10085: $? = 0 configure:10085: result: yes configure:10085: checking for sys/stat.h configure:10085: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10085: $? = 0 configure:10085: result: yes configure:10085: checking for stdlib.h configure:10085: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10085: $? = 0 configure:10085: result: yes configure:10085: checking for string.h configure:10085: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10085: $? = 0 configure:10085: result: yes configure:10085: checking for memory.h configure:10085: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10085: $? = 0 configure:10085: result: yes configure:10085: checking for strings.h configure:10085: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10085: $? = 0 configure:10085: result: yes configure:10085: checking for inttypes.h configure:10085: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10085: $? = 0 configure:10085: result: yes configure:10085: checking for stdint.h configure:10085: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10085: $? = 0 configure:10085: result: yes configure:10085: checking for unistd.h configure:10085: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10085: $? = 0 configure:10085: result: yes configure:10099: checking whether to use the zero-assembler port configure:10136: result: yes configure:10191: checking whether byte ordering is bigendian configure:10206: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 conftest.c:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'a' configure:10206: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "icedtea6" | #define PACKAGE_TARNAME "icedtea6" | #define PACKAGE_VERSION "1.10.6" | #define PACKAGE_STRING "icedtea6 1.10.6" | #define PACKAGE_BUGREPORT "distro-pkg-dev at openjdk.java.net" | #define PACKAGE_URL "" | #define PACKAGE "icedtea6" | #define VERSION "1.10.6" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | /* end confdefs.h. */ | #ifndef __APPLE_CC__ | not a universal capable compiler | #endif | typedef int dummy; | configure:10251: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10251: $? = 0 configure:10269: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 conftest.c: In function 'main': conftest.c:28: error: 'not' undeclared (first use in this function) conftest.c:28: error: (Each undeclared identifier is reported only once conftest.c:28: error: for each function it appears in.) conftest.c:28: error: expected ';' before 'big' configure:10269: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "icedtea6" | #define PACKAGE_TARNAME "icedtea6" | #define PACKAGE_VERSION "1.10.6" | #define PACKAGE_STRING "icedtea6 1.10.6" | #define PACKAGE_BUGREPORT "distro-pkg-dev at openjdk.java.net" | #define PACKAGE_URL "" | #define PACKAGE "icedtea6" | #define VERSION "1.10.6" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | /* end confdefs.h. */ | #include | #include | | int | main () | { | #if BYTE_ORDER != BIG_ENDIAN | not big endian | #endif | | ; | return 0; | } configure:10397: result: no configure:10440: checking for additional virtual machines to build configure:10464: result: none configure:10536: checking whether to retrieve the source code from Mercurial configure:10556: result: no configure:10568: checking which Mercurial revision to use configure:10581: result: tip configure:10598: checking which Java timezone data directory to use configure:10625: result: /usr/share/javazi configure:10641: checking if javax.xml.stream.events.Attribute.getDTDType() wrongly returns a QName configure:10716: result: no configure:10728: checking if /usr/local/openjdk6/bin/javah exhibits Classpath bug 39408 #undef TestImpl_POTATO #define TestImpl_POTATO 0L configure:10775: result: no configure:10777: checking if /usr/local/openjdk6/bin/javah exhibits Classpath bug 40188 #undef TestImpl_POTATO #define TestImpl_POTATO 0L configure:10792: result: no configure:10818: checking cups/cups.h usability configure:10818: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10818: $? = 0 configure:10818: result: yes configure:10818: checking cups/cups.h presence configure:10818: cpp -I/usr/local/include conftest.c configure:10818: $? = 0 configure:10818: result: yes configure:10818: checking for cups/cups.h configure:10818: result: yes configure:10818: checking cups/ppd.h usability configure:10818: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10818: $? = 0 configure:10818: result: yes configure:10818: checking cups/ppd.h presence configure:10818: cpp -I/usr/local/include conftest.c configure:10818: $? = 0 configure:10818: result: yes configure:10818: checking for cups/ppd.h configure:10818: result: yes configure:10834: checking X11/X.h usability configure:10834: cc -c -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include conftest.c >&5 configure:10834: $? = 0 configure:10834: result: yes configure:10834: checking X11/X.h presence configure:10834: cpp -I/usr/local/include conftest.c configure:10834: $? = 0 configure:10834: result: yes configure:10834: checking for X11/X.h configure:10834: result: yes configure:10848: checking for main in -ljpeg configure:10867: cc -o conftest -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include -L/usr/local/include -L/usr/local/lib conftest.c -ljpeg >&5 configure:10867: $? = 0 configure:10876: result: yes configure:10889: checking for main in -lgif configure:10908: cc -o conftest -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include -L/usr/local/include -L/usr/local/lib conftest.c -lgif -ljpeg >&5 configure:10908: $? = 0 configure:10917: result: yes configure:10930: checking for main in -lz configure:10949: cc -o conftest -O2 -pipe -fno-strict-aliasing -std=gnu89 -I/usr/local/include -L/usr/local/include -L/usr/local/lib conftest.c -lz -lgif -ljpeg >&5 configure:10949: $? = 0 configure:10958: result: yes configure:10974: checking for XPROTO configure:10981: $PKG_CONFIG --exists --print-errors "xproto" configure:10984: $? = 0 configure:10998: $PKG_CONFIG --exists --print-errors "xproto" configure:11001: $? = 0 configure:11039: result: yes configure:11053: checking for XT configure:11060: $PKG_CONFIG --exists --print-errors "xt" configure:11063: $? = 0 configure:11077: $PKG_CONFIG --exists --print-errors "xt" configure:11080: $? = 0 configure:11118: result: yes configure:11132: checking for XP configure:11139: $PKG_CONFIG --exists --print-errors "xp" configure:11142: $? = 0 configure:11156: $PKG_CONFIG --exists --print-errors "xp" configure:11159: $? = 0 configure:11197: result: yes configure:11211: checking for X11 configure:11218: $PKG_CONFIG --exists --print-errors "x11" configure:11221: $? = 0 configure:11235: $PKG_CONFIG --exists --print-errors "x11" configure:11238: $? = 0 configure:11276: result: yes configure:11290: checking for XINERAMA configure:11297: $PKG_CONFIG --exists --print-errors "xinerama" configure:11300: $? = 0 configure:11314: $PKG_CONFIG --exists --print-errors "xinerama" configure:11317: $? = 0 configure:11355: result: yes configure:11372: checking for XRENDER configure:11379: $PKG_CONFIG --exists --print-errors "xrender" configure:11382: $? = 0 configure:11396: $PKG_CONFIG --exists --print-errors "xrender" configure:11399: $? = 0 configure:11437: result: yes configure:11448: checking for absolute java home install dir configure:11462: result: /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6/openjdk.build/j2sdk-image configure:11561: checking for LIBPNG configure:11568: $PKG_CONFIG --exists --print-errors "libpng" configure:11571: $? = 0 configure:11585: $PKG_CONFIG --exists --print-errors "libpng" configure:11588: $? = 0 configure:11626: result: yes configure:11641: checking for XTST configure:11648: $PKG_CONFIG --exists --print-errors "xtst" configure:11651: $? = 0 configure:11665: $PKG_CONFIG --exists --print-errors "xtst" configure:11668: $? = 0 configure:11706: result: yes configure:11720: checking for FREETYPE2 configure:11727: $PKG_CONFIG --exists --print-errors "freetype2" configure:11730: $? = 0 configure:11744: $PKG_CONFIG --exists --print-errors "freetype2" configure:11747: $? = 0 configure:11785: result: yes configure:11966: checking for LIBFFI configure:11973: $PKG_CONFIG --exists --print-errors "libffi" configure:11976: $? = 0 configure:11990: $PKG_CONFIG --exists --print-errors "libffi" configure:11993: $? = 0 configure:12031: result: yes configure:12698: creating ./config.status ## ---------------------- ## ## Running config.status. ## ## ---------------------- ## This file was extended by icedtea6 config.status 1.10.6, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = CONFIG_HEADERS = CONFIG_LINKS = CONFIG_COMMANDS = $ ./config.status on dormouse.experts-exchange.com config.status:1027: creating Makefile config.status:1027: creating nss.cfg config.status:1027: creating javac config.status:1027: creating javap config.status:1027: creating jvm.cfg config.status:1027: creating ergo.c config.status:1027: creating tz.properties config.status:1027: creating jconsole.desktop config.status:1027: creating policytool.desktop config.status:1199: executing depfiles commands ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=amd64-portbld-freebsd8.2 ac_cv_c_bigendian=no ac_cv_c_compiler_gnu=yes ac_cv_cxx_compiler_gnu=yes ac_cv_env_ALSA_CFLAGS_set='' ac_cv_env_ALSA_CFLAGS_value='' ac_cv_env_ALSA_LIBS_set='' ac_cv_env_ALSA_LIBS_value='' ac_cv_env_CCC_set='' ac_cv_env_CCC_value='' ac_cv_env_CC_set=set ac_cv_env_CC_value=cc ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-O2 -pipe -fno-strict-aliasing -std=gnu89' ac_cv_env_CPPFLAGS_set=set ac_cv_env_CPPFLAGS_value=-I/usr/local/include ac_cv_env_CPP_set=set ac_cv_env_CPP_value=cpp ac_cv_env_CXXFLAGS_set=set ac_cv_env_CXXFLAGS_value='-O2 -pipe -fno-strict-aliasing' ac_cv_env_CXX_set=set ac_cv_env_CXX_value=c++ ac_cv_env_FREETYPE2_CFLAGS_set='' ac_cv_env_FREETYPE2_CFLAGS_value='' ac_cv_env_FREETYPE2_LIBS_set='' ac_cv_env_FREETYPE2_LIBS_value='' ac_cv_env_LDFLAGS_set=set ac_cv_env_LDFLAGS_value=' -L/usr/local/include -L/usr/local/lib' ac_cv_env_LIBFFI_CFLAGS_set='' ac_cv_env_LIBFFI_CFLAGS_value='' ac_cv_env_LIBFFI_LIBS_set='' ac_cv_env_LIBFFI_LIBS_value='' ac_cv_env_LIBPNG_CFLAGS_set='' ac_cv_env_LIBPNG_CFLAGS_value='' ac_cv_env_LIBPNG_LIBS_set='' ac_cv_env_LIBPNG_LIBS_value='' ac_cv_env_LIBPULSE_CFLAGS_set='' ac_cv_env_LIBPULSE_CFLAGS_value='' ac_cv_env_LIBPULSE_LIBS_set='' ac_cv_env_LIBPULSE_LIBS_value='' ac_cv_env_LIBS_set='' ac_cv_env_LIBS_value='' ac_cv_env_NSS_CFLAGS_set='' ac_cv_env_NSS_CFLAGS_value='' ac_cv_env_NSS_LIBS_set='' ac_cv_env_NSS_LIBS_value='' ac_cv_env_PKG_CONFIG_LIBDIR_set='' ac_cv_env_PKG_CONFIG_LIBDIR_value='' ac_cv_env_PKG_CONFIG_PATH_set='' ac_cv_env_PKG_CONFIG_PATH_value='' ac_cv_env_PKG_CONFIG_set='' ac_cv_env_PKG_CONFIG_value='' ac_cv_env_X11_CFLAGS_set='' ac_cv_env_X11_CFLAGS_value='' ac_cv_env_X11_LIBS_set='' ac_cv_env_X11_LIBS_value='' ac_cv_env_XINERAMA_CFLAGS_set='' ac_cv_env_XINERAMA_CFLAGS_value='' ac_cv_env_XINERAMA_LIBS_set='' ac_cv_env_XINERAMA_LIBS_value='' ac_cv_env_XPROTO_CFLAGS_set='' ac_cv_env_XPROTO_CFLAGS_value='' ac_cv_env_XPROTO_LIBS_set='' ac_cv_env_XPROTO_LIBS_value='' ac_cv_env_XP_CFLAGS_set='' ac_cv_env_XP_CFLAGS_value='' ac_cv_env_XP_LIBS_set='' ac_cv_env_XP_LIBS_value='' ac_cv_env_XRENDER_CFLAGS_set='' ac_cv_env_XRENDER_CFLAGS_value='' ac_cv_env_XRENDER_LIBS_set='' ac_cv_env_XRENDER_LIBS_value='' ac_cv_env_XTST_CFLAGS_set='' ac_cv_env_XTST_CFLAGS_value='' ac_cv_env_XTST_LIBS_set='' ac_cv_env_XTST_LIBS_value='' ac_cv_env_XT_CFLAGS_set='' ac_cv_env_XT_CFLAGS_value='' ac_cv_env_XT_LIBS_set='' ac_cv_env_XT_LIBS_value='' ac_cv_env_build_alias_set=set ac_cv_env_build_alias_value=amd64-portbld-freebsd8.2 ac_cv_env_host_alias_set='' ac_cv_env_host_alias_value='' ac_cv_env_target_alias_set='' ac_cv_env_target_alias_value='' ac_cv_header_X11_X_h=yes ac_cv_header_cups_cups_h=yes ac_cv_header_cups_ppd_h=yes ac_cv_header_inttypes_h=yes ac_cv_header_memory_h=yes ac_cv_header_stdc=yes ac_cv_header_stdint_h=yes ac_cv_header_stdlib_h=yes ac_cv_header_string_h=yes ac_cv_header_strings_h=yes ac_cv_header_sys_stat_h=yes ac_cv_header_sys_types_h=yes ac_cv_header_unistd_h=yes ac_cv_host=amd64-portbld-freebsd8.2 ac_cv_lib_gif_main=yes ac_cv_lib_jpeg_main=yes ac_cv_lib_z_main=yes ac_cv_objext=o ac_cv_path_EGREP='/usr/bin/grep -E' ac_cv_path_GREP=/usr/bin/grep ac_cv_path_JAVAC=/usr/local/bin/javac ac_cv_path_ac_pt_ANT=/usr/local/bin/ant ac_cv_path_ac_pt_CHMOD=/bin/chmod ac_cv_path_ac_pt_CPIO=/usr/bin/cpio ac_cv_path_ac_pt_FILE=/usr/bin/file ac_cv_path_ac_pt_FIND=/usr/bin/find ac_cv_path_ac_pt_GAWK=/usr/local/bin/gawk ac_cv_path_ac_pt_GETCONF=/usr/bin/getconf ac_cv_path_ac_pt_GZIP=/usr/bin/gzip ac_cv_path_ac_pt_MAKE=/usr/bin/make ac_cv_path_ac_pt_MD5SUM=/sbin/md5 ac_cv_path_ac_pt_PATCH=/usr/bin/patch ac_cv_path_ac_pt_PKG_CONFIG=/usr/local/bin/pkg-config ac_cv_path_ac_pt_SHA256SUM=/sbin/sha256 ac_cv_path_ac_pt_TAR=/usr/bin/tar ac_cv_path_ac_pt_UNZIP=/usr/local/bin/unzip ac_cv_path_ac_pt_WGET=/usr/local/bin/wget ac_cv_path_ac_pt_ZIP=/usr/local/bin/zip ac_cv_prog_AWK=gawk ac_cv_prog_CPP=cpp ac_cv_prog_ac_ct_CC=cc ac_cv_prog_ac_ct_FASTJAR=jar ac_cv_prog_ac_ct_LDD=ldd ac_cv_prog_cc_c89='' ac_cv_prog_cc_g=yes ac_cv_prog_cxx_g=yes ac_cv_prog_make_make_set=yes am_cv_CC_dependencies_compiler_type=none am_cv_CXX_dependencies_compiler_type=none am_cv_prog_tar_pax=gnutar it_cv_cp39408_javah=no it_cv_cp40188_javah=no it_cv_dtdtype=no it_cv_hardlink_src=yes it_cv_pax=no it_cv_proc=2 it_cv_reflink=no lt_cv_sys_max_cmd_len=262144 pkg_cv_FREETYPE2_CFLAGS='-I/usr/local/include/freetype2 -I/usr/local/include ' pkg_cv_FREETYPE2_LIBS='-L/usr/local/lib -lfreetype ' pkg_cv_LIBFFI_CFLAGS='-I/usr/local/lib/libffi-3.0.9/include ' pkg_cv_LIBFFI_LIBS='-L/usr/local/lib -lffi ' pkg_cv_LIBPNG_CFLAGS='-I/usr/local/include/libpng ' pkg_cv_LIBPNG_LIBS='-L/usr/local/lib -lpng -lz -lm ' pkg_cv_NSS_CFLAGS='-I/usr/local/include/nss -I/usr/local/include/nss/nss -I/usr/local/include/nspr ' pkg_cv_NSS_LIBS='-pthread -L/usr/local/lib/nss -L/usr/local/lib -lnss3 -lsmime3 -lssl3 -lnssutil3 -lplds4 -lplc4 -lnspr4 ' pkg_cv_X11_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' pkg_cv_X11_LIBS='-L/usr/local/lib -lX11 ' pkg_cv_XINERAMA_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' pkg_cv_XINERAMA_LIBS='-L/usr/local/lib -lXinerama ' pkg_cv_XPROTO_CFLAGS='-I/usr/local/include ' pkg_cv_XPROTO_LIBS=' ' pkg_cv_XP_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' pkg_cv_XP_LIBS='-L/usr/local/lib -lXp -lXau ' pkg_cv_XRENDER_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' pkg_cv_XRENDER_LIBS='-L/usr/local/lib -lXrender -lX11 ' pkg_cv_XTST_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' pkg_cv_XTST_LIBS='-L/usr/local/lib -lXtst ' pkg_cv_XT_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' pkg_cv_XT_LIBS='-L/usr/local/lib -lXt -lX11 ' ## ----------------- ## ## Output variables. ## ## ----------------- ## ABS_CLIENT_LIBJVM_SO='' ABS_JAVA_HOME_DIR='/usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6/openjdk.build/j2sdk-image' ABS_SERVER_LIBJVM_SO='' ACLOCAL='${SHELL} /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6/missing --run aclocal-1.11' ADD_CACAO_BUILD_FALSE='' ADD_CACAO_BUILD_TRUE='#' ADD_JAMVM_BUILD_FALSE='' ADD_JAMVM_BUILD_TRUE='#' ADD_SHARK_BUILD_FALSE='' ADD_SHARK_BUILD_TRUE='#' ADD_ZERO_BUILD_FALSE='' ADD_ZERO_BUILD_TRUE='#' ALSA_CFLAGS='' ALSA_LIBS='' ALT_CACAO_SRC_DIR='not specified' ALT_CACAO_SRC_ZIP='not specified' ALT_HOTSPOT_SRC_ZIP='not specified' ALT_JAF_DROP_ZIP='/usr/ports/distfiles/jdk6-jaf-b20.zip' ALT_JAMVM_SRC_ZIP='not specified' ALT_JAR_CMD='not specified' ALT_JAXP_DROP_ZIP='/usr/ports/distfiles/jaxp144_01.zip' ALT_JAXWS_DROP_ZIP='/usr/ports/distfiles/jdk6-jaxws-b20.zip' ALT_OPENJDK_SRC_ZIP='/usr/ports/distfiles/openjdk-6-src-b22-28_feb_2011.tar.gz' AMDEPBACKSLASH='\' AMDEP_FALSE='#' AMDEP_TRUE='' AMTAR='$${TAR-tar}' ANT='/usr/local/bin/ant' ARCHFLAG='' ARCH_PREFIX='' AUTOCONF='/usr/local/bin/autoconf-2.68' AUTOHEADER='/usr/local/bin/autoheader-2.68' AUTOMAKE='${SHELL} /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6/missing --run automake-1.11' AWK='gawk' BOOTSTRAPPING_FALSE='#' BOOTSTRAPPING_TRUE='' BUILD_ARCH_DIR='amd64' BUILD_CACAO_FALSE='' BUILD_CACAO_TRUE='#' BUILD_JAMVM_FALSE='' BUILD_JAMVM_TRUE='#' BUILD_OS_DIR='bsd' CACAO_IMPORT_PATH='$(abs_top_builddir)/cacao/install' CC='cc' CCDEPMODE='depmode=none' CFLAGS='-O2 -pipe -fno-strict-aliasing -std=gnu89' CHMOD='/bin/chmod' CONFIGURE_ARGS=' '\''--with-ecj-jar=/usr/local/share/java/classes/ecj-3.7.2.jar'\'' '\''--with-xalan2-jar=/usr/local/share/java/classes/xalan.jar'\'' '\''--with-xalan2-serializer-jar=/usr/local/share/java/classes/serializer.jar'\'' '\''--with-xerces2-jar=/usr/local/share/java/classes/xercesImpl.jar'\'' '\''--with-rhino=/usr/local/share/java/rhino/rhino.jar'\'' '\''--with-jdk-home=/usr/local/openjdk6'\'' '\''--with-jaxp-drop-zip=/usr/ports/distfiles/jaxp144_01.zip'\'' '\''--with-jaf-drop-zip=/usr/ports/distfiles/jdk6-jaf-b20.zip'\'' '\''--with-jaxws-drop-zip=/usr/ports/distfiles/jdk6-jaxws-b20.zip'\'' '\''--with-openjdk-src-zip=/usr/ports/distfiles/openjdk-6-src-b22-28_feb_2011.tar.gz'\'' '\''--prefix=/usr/local'\'' '\''--mandir=/usr/local/man'\'' '\''--infodir=/usr/local/info/'\'' '\''--build=amd64-portbld-freebsd8.2'\'' '\''build_alias=amd64-portbld-freebsd8.2'\'' '\''CC=cc'\'' '\''CFLAGS=-O2 -pipe -fno-strict-aliasing -std=gnu89'\'' '\''LDFLAGS= -L/usr/local/include -L/usr/local/lib'\'' '\''CPPFLAGS=-I/usr/local/include'\'' '\''CXX=c++'\'' '\''CXXFLAGS=-O2 -pipe -fno-strict-aliasing'\'' '\''CPP=cpp'\''' CP39408_JAVAH_FALSE='' CP39408_JAVAH_TRUE='#' CP40188_JAVAH_FALSE='' CP40188_JAVAH_TRUE='#' CPIO='/usr/bin/cpio' CPP='cpp' CPPFLAGS='-I/usr/local/include' CP_SUPPORTS_REFLINK_FALSE='' CP_SUPPORTS_REFLINK_TRUE='#' CROSS_TARGET_ARCH='amd64' CXX='c++' CXXDEPMODE='depmode=none' CXXFLAGS='-O2 -pipe -fno-strict-aliasing' CYGPATH_W='echo' DEFAULT_LIBDIR='' DEFS='-DPACKAGE_NAME=\"icedtea6\" -DPACKAGE_TARNAME=\"icedtea6\" -DPACKAGE_VERSION=\"1.10.6\" -DPACKAGE_STRING=\"icedtea6\ 1.10.6\" -DPACKAGE_BUGREPORT=\"distro-pkg-dev at openjdk.java.net\" -DPACKAGE_URL=\"\" -DPACKAGE=\"icedtea6\" -DVERSION=\"1.10.6\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_CUPS_CUPS_H=1 -DHAVE_CUPS_PPD_H=1 -DHAVE_X11_X_H=1 -DHAVE_LIBJPEG=1 -DHAVE_LIBGIF=1 -DHAVE_LIBZ=1' DEPDIR='.deps' DISABLE_OPTIMIZATIONS_FALSE='' DISABLE_OPTIMIZATIONS_TRUE='#' DIST_ID='Custom build (Wed Mar 28 12:39:17 PDT 2012)' DIST_NAME='freebsd8.2' DTDTYPE_QNAME_FALSE='' DTDTYPE_QNAME_TRUE='#' ECHO_C='' ECHO_N='-n' ECHO_T='' ECJ_JAR='/usr/local/share/java/classes/ecj-3.7.2.jar' EGREP='/usr/bin/grep -E' ENABLE_CACAO='no' ENABLE_CACAO_FALSE='' ENABLE_CACAO_TRUE='#' ENABLE_CROSS_COMPILATION_FALSE='' ENABLE_CROSS_COMPILATION_TRUE='#' ENABLE_DOCS_FALSE='#' ENABLE_DOCS_TRUE='' ENABLE_JAMVM='no' ENABLE_JAMVM_FALSE='' ENABLE_JAMVM_TRUE='#' ENABLE_NIO2_FALSE='' ENABLE_NIO2_TRUE='#' ENABLE_NSS_FALSE='' ENABLE_NSS_TRUE='#' ENABLE_PULSE_JAVA_FALSE='' ENABLE_PULSE_JAVA_TRUE='#' ENABLE_SYSTEMTAP_FALSE='' ENABLE_SYSTEMTAP_TRUE='#' ENABLE_XRENDER_FALSE='#' ENABLE_XRENDER_TRUE='' EXEEXT='' FASTJAR='jar' FILE='/usr/bin/file' FIND='/usr/bin/find' FREETYPE2_CFLAGS='-I/usr/local/include/freetype2 -I/usr/local/include ' FREETYPE2_LIBS='-L/usr/local/lib -lfreetype ' GAWK='/usr/local/bin/gawk' GCC_OLD_FALSE='' GCC_OLD_TRUE='#' GCJ='no' GETCONF='/usr/bin/getconf' GREP='/usr/bin/grep' GZIP='/usr/bin/gzip' HAS_HOTSPOT_REVISION_FALSE='' HAS_HOTSPOT_REVISION_TRUE='#' HAS_ICEDTEA_REVISION_FALSE='' HAS_ICEDTEA_REVISION_TRUE='#' HAS_JDK_REVISION_FALSE='' HAS_JDK_REVISION_TRUE='#' HAS_PAX_FALSE='' HAS_PAX_TRUE='#' HAS_PKGVERSION_FALSE='' HAS_PKGVERSION_TRUE='#' HG='' HGREV='' HOTSPOT_REVISION='none' HSBUILD='original' ICEDTEA_REVISION='none' INSTALL_ARCH_DIR='amd64' INSTALL_DATA='install -o root -g wheel -m 444' INSTALL_PROGRAM='install -s -o root -g wheel -m 555' INSTALL_SCRIPT='install -o root -g wheel -m 555' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' JAR='/usr/local/openjdk6/bin/jar' JAR_ACCEPTS_STDIN_LIST='' JAR_KNOWS_ATFILE='1' JAR_KNOWS_J_OPTIONS='1' JAVA='/usr/local/openjdk6/bin/java' JAVAC='/usr/local/bin/javac' JAVAH='/usr/local/openjdk6/bin/javah' JDK_REVISION='none' JRE_ARCH_DIR='amd64' LDD='ldd' LDFLAGS=' -L/usr/local/include -L/usr/local/lib' LIBFFI_CFLAGS='-I/usr/local/lib/libffi-3.0.9/include ' LIBFFI_LIBS='-L/usr/local/lib -lffi ' LIBOBJS='' LIBPNG_CFLAGS='-I/usr/local/include/libpng ' LIBPNG_LIBS='-L/usr/local/lib -lpng -lz -lm ' LIBPULSE_CFLAGS='' LIBPULSE_LIBS='' LIBS='-lz -lgif -ljpeg ' LINUX32='' LLVM_CFLAGS='' LLVM_CONFIG='' LLVM_LDFLAGS='' LLVM_LIBS='' LSB_RELEASE='' LTLIBOBJS='' MAKE='/usr/bin/make' MAKEINFO='${SHELL} /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6/missing --run makeinfo' MD5SUM='/sbin/md5' MKDIR_P='./install-sh -c -d' NATIVE2ASCII='/usr/local/openjdk6/bin/native2ascii' NSS_CFLAGS='-I/usr/local/include/nss -I/usr/local/include/nss/nss -I/usr/local/include/nspr ' NSS_LIBDIR='/usr/local/lib/nss' NSS_LIBS='-pthread -L/usr/local/lib/nss -L/usr/local/lib -lnss3 -lsmime3 -lssl3 -lnssutil3 -lplds4 -lplc4 -lnspr4 ' OBJEXT='o' OPENJDK_BUILD_DIR='openjdk.build' OPENJDK_SRC_DIR='/usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6/openjdk' OPENJDK_SRC_DIR_FOUND_FALSE='' OPENJDK_SRC_DIR_FOUND_TRUE='#' OPENJDK_SRC_DIR_HARDLINKABLE_FALSE='' OPENJDK_SRC_DIR_HARDLINKABLE_TRUE='#' OS_PATH='' PACKAGE='icedtea6' PACKAGE_BUGREPORT='distro-pkg-dev at openjdk.java.net' PACKAGE_NAME='icedtea6' PACKAGE_STRING='icedtea6 1.10.6' PACKAGE_TARNAME='icedtea6' PACKAGE_URL='' PACKAGE_VERSION='1.10.6' PARALLEL_JOBS='2' PATCH='/usr/bin/patch' PATH_SEPARATOR=':' PKGVERSION='none' PKG_CONFIG='/usr/local/bin/pkg-config' PKG_CONFIG_LIBDIR='' PKG_CONFIG_PATH='' RHINO_JAR='/usr/local/share/java/rhino/rhino.jar' RMIC='/usr/local/openjdk6/bin/rmic' SET_MAKE='' SHA256SUM='/sbin/sha256' SHARK_BUILD_FALSE='' SHARK_BUILD_TRUE='#' SHELL='/bin/sh' SRC_DIR_HARDLINKABLE_FALSE='#' SRC_DIR_HARDLINKABLE_TRUE='' STRIP='' SYSTEM_ANT_DIR='/usr/share/ant' SYSTEM_JDK_DIR='/usr/local/openjdk6' TAR='/usr/bin/tar' TZDATA_DIR='/usr/share/javazi' UNZIP='/usr/local/bin/unzip' USE_ALT_CACAO_SRC_DIR_FALSE='' USE_ALT_CACAO_SRC_DIR_TRUE='#' USE_ALT_CACAO_SRC_ZIP_FALSE='' USE_ALT_CACAO_SRC_ZIP_TRUE='#' USE_ALT_HOTSPOT_SRC_ZIP_FALSE='' USE_ALT_HOTSPOT_SRC_ZIP_TRUE='#' USE_ALT_JAF_DROP_ZIP_FALSE='#' USE_ALT_JAF_DROP_ZIP_TRUE='' USE_ALT_JAMVM_SRC_ZIP_FALSE='' USE_ALT_JAMVM_SRC_ZIP_TRUE='#' USE_ALT_JAR_FALSE='' USE_ALT_JAR_TRUE='#' USE_ALT_JAXP_DROP_ZIP_FALSE='#' USE_ALT_JAXP_DROP_ZIP_TRUE='' USE_ALT_JAXWS_DROP_ZIP_FALSE='#' USE_ALT_JAXWS_DROP_ZIP_TRUE='' USE_ALT_OPENJDK_SRC_ZIP_FALSE='#' USE_ALT_OPENJDK_SRC_ZIP_TRUE='' USE_HG_FALSE='' USE_HG_TRUE='#' USE_SYSTEM_CACAO_FALSE='' USE_SYSTEM_CACAO_TRUE='#' VERSION='1.10.6' WGET='/usr/local/bin/wget' WITH_ALT_HSBUILD_FALSE='' WITH_ALT_HSBUILD_TRUE='#' WITH_HGREV_FALSE='' WITH_HGREV_TRUE='#' WITH_RHINO_FALSE='#' WITH_RHINO_TRUE='' WITH_TZDATA_DIR_FALSE='#' WITH_TZDATA_DIR_TRUE='' X11_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' X11_LIBS='-L/usr/local/lib -lX11 ' XALAN2_JAR='/usr/local/share/java/classes/xalan.jar' XALAN2_SERIALIZER_JAR='/usr/local/share/java/classes/serializer.jar' XERCES2_JAR='/usr/local/share/java/classes/xercesImpl.jar' XINERAMA_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' XINERAMA_LIBS='-L/usr/local/lib -lXinerama ' XPROTO_CFLAGS='-I/usr/local/include ' XPROTO_LIBS=' ' XP_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' XP_LIBS='-L/usr/local/lib -lXp -lXau ' XRENDER_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' XRENDER_LIBS='-L/usr/local/lib -lXrender -lX11 ' XTST_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' XTST_LIBS='-L/usr/local/lib -lXtst ' XT_CFLAGS='-D_THREAD_SAFE -I/usr/local/include ' XT_LIBS='-L/usr/local/lib -lXt -lX11 ' XVFB_RUN_CMD='' ZERO_ARCHDEF='AMD64' ZERO_BITSPERWORD='64' ZERO_BUILD_FALSE='#' ZERO_BUILD_TRUE='' ZERO_ENDIANNESS='little' ZERO_LIBARCH='amd64' ZIP='/usr/local/bin/zip' abs_top_builddir='/usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6' abs_top_srcdir='/usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6' ac_ct_CC='cc' ac_ct_CXX='' ac_ct_FASTJAR='jar' am__EXEEXT_FALSE='' am__EXEEXT_TRUE='#' am__fastdepCC_FALSE='' am__fastdepCC_TRUE='#' am__fastdepCXX_FALSE='' am__fastdepCXX_TRUE='#' am__include='include' am__isrc='' am__leading_dot='.' am__nodep='_no' am__quote='' am__tar='tar --format=posix -chf - "$$tardir"' am__untar='tar -xf -' bindir='${exec_prefix}/bin' build='amd64-portbld-freebsd8.2' build_alias='amd64-portbld-freebsd8.2' build_cpu='amd64' build_os='freebsd8.2' build_vendor='portbld' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' exec_prefix='${prefix}' host='amd64-portbld-freebsd8.2' host_alias='' host_cpu='amd64' host_os='freebsd8.2' host_vendor='portbld' htmldir='${docdir}' includedir='${prefix}/include' infodir='/usr/local/info' install_sh='${SHELL} /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.10.6/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='/usr/local/man' mkdir_p='$(top_builddir)/./install-sh -c -d' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='/usr/local' program_transform_name='s,x,x,' psdir='${docdir}' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias='' ## ----------- ## ## confdefs.h. ## ## ----------- ## /* confdefs.h */ #define PACKAGE_NAME "icedtea6" #define PACKAGE_TARNAME "icedtea6" #define PACKAGE_VERSION "1.10.6" #define PACKAGE_STRING "icedtea6 1.10.6" #define PACKAGE_BUGREPORT "distro-pkg-dev at openjdk.java.net" #define PACKAGE_URL "" #define PACKAGE "icedtea6" #define VERSION "1.10.6" #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STRINGS_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_STDINT_H 1 #define HAVE_UNISTD_H 1 #define HAVE_CUPS_CUPS_H 1 #define HAVE_CUPS_PPD_H 1 #define HAVE_X11_X_H 1 #define HAVE_LIBJPEG 1 #define HAVE_LIBGIF 1 #define HAVE_LIBZ 1 configure: exit 0 From ahughes at redhat.com Wed Mar 28 15:09:22 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Wed, 28 Mar 2012 18:09:22 -0400 (EDT) Subject: porting icedtea6 to FreeBSD In-Reply-To: <20120328194542.GC57013@dormouse.experts-exchange.com> Message-ID: <5d82a7b6-721c-494f-b9ef-e044c1f55740@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On Wed, Mar 28, 2012 at 08:34:55AM -0400, Andrew Hughes thus spake: > >----- Original Message ----- > >> Hi, > >> > >> I am trying to do a port of iceatea6 to FreeBSD, and am getting a > >> failure when it is in the patching stage. I did have to patch the > >> method of patching to include a "-R" as they were already seen as > >> patched. I don't know if this something that I should be doing or > >> not, however it did get past the initial patches, and fails at the > >> end. > >> > >> Here is the error I receive: > >> > >> Checking patches/security/20110607/6213702.patch > >> 5 out of 5 hunks failed--saving rejects to > >> openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java.rej > >> 2 out of 2 hunks failed--saving rejects to > >> openjdk/jdk/src/windows/native/sun/nio/ch/WindowsSelectorImpl.c.rej > >> ERROR patch patches/security/20110607/6213702.patch FAILED! > >> WARNING make clean-patch before retrying a fix > >> *** Error code 2 > >> > >> Stop in /usr/local/workspace/jgh/icedtea6/work/icedtea6-1.10.6. > >> *** Error code 1 > >> > >> Stop in /usr/local/workspace/jgh/icedtea6 > >> > >> The source for my port can be found here: > >> http://svn.freebsd.org/base/user/jgh/icedtea6/ > >> > >> Thanks in advance, and I've attached the rejected files and the > >> make > >> log. > >> Jason > >> > >> > >> > > > >It's hard to tell what's happening here without more details as to > >how > >you're building. Posting config.log would be very helpful. > > I've attached this. > Ok, seems sane enough. I do wonder what /usr/local/openjdk6 is though. That may cause problems further down the line. You don't seem to be using the latest; that would be 1.11.1. If you want to get the end result into IcedTea, you may be better working with the Mercurial version: http://icedtea.classpath.org/hg/icedtea6 Then you can see what changes have been made via hg status/diff. > > > >If you're building icedtea6 directly against an openjdk6 checkout, > >rather > >than the default of using release tarballs, this will happen as the > >security > >patches are already applied in OpenJDK6 upstream. For hg, you > >need the hg branch: > > I am building off of the release tarballs. > I've updated the path of my development to this url: > https://redports.org/browser/jgh/java/icedtea6/Makefile > The patch issue is rather odd. Are you rerunning a build over an existing OpenJDK tree as Andrew said? What I'd recommend for ease of debugging is to build in a separate directory: $ mkdir icedtea6-build $ cd icedtea6-build $ ../icedtea6-1.11.1/configure which you can then just rm -rf if it doesn't work. make clean works too, but this is usually quicker and more guaranteed to work. You mention something about having to fix up patches? Can you give more details? > Please take note the files and locations where they are being > downloaded from. > > > >http://icedtea.classpath.org/hg/icedtea6-hg > > > >Going forward, I doubt this will work as OpenJDK6 doesn't have the > >*BSD work > >that Oracle have integrated for Mac OS X. You might be better > >starting from > >7. 6 is likely to end up having to be retired by the end of the > >year anyway, > >as Oracle intend to stop security support. > > If I can get this to work on 6 it would be great, however I can work > on 7 as > well. Is there anything I can not apply to get it to work on 6? > You're more than welcome to try and don't get me wrong - I love to see FreeBSD support for OpenJDK6. I just worry that it'll be a lot of work for something that may be decommissioned a few months after you finish. There won't be *BSD support for a lot of things in OpenJDK6 as it stands, so it'll need backporting from 7. That may have been feasible a few years ago, but today there doesn't seem much point. > Thanks! > Jason > > -- > Jason Helfman | FreeBSD Committer > jgh at FreeBSD.org | http://people.freebsd.org/~jgh > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From jgh at FreeBSD.org Wed Mar 28 20:25:32 2012 From: jgh at FreeBSD.org (Jason Helfman) Date: Wed, 28 Mar 2012 20:25:32 -0700 Subject: porting icedtea6 to FreeBSD In-Reply-To: <5d82a7b6-721c-494f-b9ef-e044c1f55740@zmail17.collab.prod.int.phx2.redhat.com> References: <20120328194542.GC57013@dormouse.experts-exchange.com> <5d82a7b6-721c-494f-b9ef-e044c1f55740@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <20120329032532.GA24690@dormouse.experts-exchange.com> Hi, On Wed, Mar 28, 2012 at 06:09:22PM -0400, Andrew Hughes thus spake: >> >It's hard to tell what's happening here without more details as to >> >how >> >you're building. Posting config.log would be very helpful. >> >> I've attached this. >> > >Ok, seems sane enough. I do wonder what /usr/local/openjdk6 is though. >That may cause problems further down the line. This is my installation of OpenJDK6. It has been ported to FreeBSD for sometime now. Do I need to specify a different jdk for building? I am specifying this for --with-jdk-home > >You don't seem to be using the latest; that would be 1.11.1. If you want >to get the end result into IcedTea, you may be better working with the >Mercurial version: I really would rather work with the released tarballs to support FreeBSD, unless something comes up where that can't be done. I'm really not convinced that I'm doing things right at this point to warrant a different path :) I'm still trying to find out what icedtea does with openjdk :) > >The patch issue is rather odd. Are you rerunning a build over an existing >OpenJDK tree as Andrew said? What I'd recommend for ease of debugging is >to build in a separate directory: I believe I am doing that, with the above specified. Do I need to be running against a different jdk home? There are several to choose from for FreeBSD. I wonder if this is the issue. However, I switched to use jdk1.6 and had the same patch related issue. The text leading up to this was: -------------------------- |# HG changeset patch |# User robm |# Date 1322691030 0 |# Node ID ee0f12b18cb8d20c3fb61e96817bde6318a29221 |# Parent dd8956e41b892ed7102e1d5668781f2c68ea9ac5 |7082299: AtomicReferenceArray should ensure that array is Object[] |Summary: java.util.concurrent.AtomicReferenceArray needs to ensure that internal array is always Object[]. |Reviewed-by: chegar, coffeys | |diff --git a/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java b/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java |--- openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java |+++ openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java -------------------------- Patching file openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java using Plan A... Reversed (or previously applied) patch detected! Assume -R? [y] > >$ mkdir icedtea6-build >$ cd icedtea6-build >$ ../icedtea6-1.11.1/configure This may partly my issue. I'm basically guessing what the correct options are to use. Here is what I am using currently: (LOCALBASE=/usr/local) --with-ecj-jar=${LOCALBASE}/share/java/classes/ecj-3.7.2.jar \ --with-rhino=${LOCALBASE}/share/java/rhino/rhino.jar \ --with-jdk-home=/usr/local/openjdk6 \ --with-jaxp-drop-zip=${DISTDIR}/jaxp144_03.zip \ --with-jaf-drop-zip=${DISTDIR}/jdk6-jaf-b20.zip \ --with-jaxws-drop-zip=${DISTDIR}/jdk6-jaxws2_1_6-2011_06_13.zip \ --with-openjdk-src-zip=${DISTDIR}/openjdk-6-src-b24-14_nov_2011.tar.gz >which you can then just rm -rf if it doesn't work. make clean works too, >but this is usually quicker and more guaranteed to work. > >You mention something about having to fix up patches? Can you give more >details? This has been resolved with later releases, and the patching is probably a result of misconfigured configured options. > >> Please take note the files and locations where they are being >> downloaded from. >> > >> >http://icedtea.classpath.org/hg/icedtea6-hg >> > >> >Going forward, I doubt this will work as OpenJDK6 doesn't have the >> >*BSD work >> >that Oracle have integrated for Mac OS X. You might be better >> >starting from >> >7. 6 is likely to end up having to be retired by the end of the >> >year anyway, >> >as Oracle intend to stop security support. >> >> If I can get this to work on 6 it would be great, however I can work >> on 7 as >> well. Is there anything I can not apply to get it to work on 6? >> > >You're more than welcome to try and don't get me wrong - I love to see >FreeBSD support for OpenJDK6. I just worry that it'll be a lot of work >for something that may be decommissioned a few months after you finish. >There won't be *BSD support for a lot of things in OpenJDK6 as it stands, >so it'll need backporting from 7. That may have been feasible a few years >ago, but today there doesn't seem much point. OpenJDK6/7 are both in the FreeBSD tree. :) Getting this working on 6, should at least give me the insight to get it working on 7. And thank you for the head's up. > > Thanks! -jgh -- Jason Helfman | FreeBSD Committer jgh at FreeBSD.org | http://people.freebsd.org/~jgh From bugzilla-daemon at icedtea.classpath.org Thu Mar 29 01:24:03 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 29 Mar 2012 08:24:03 +0000 Subject: [Bug 910] New: IcedTea-web browser plugin doesn't connect when i launch Oanda forex trading applet. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=910 Bug #: 910 Summary: IcedTea-web browser plugin doesn't connect when i launch Oanda forex trading applet. Classification: Unclassified Product: IcedTea-Web Version: 1.2 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P3 Component: Plugin AssignedTo: dbhole at redhat.com ReportedBy: charbel.freax at gmail.com CC: unassigned at icedtea.classpath.org after i launch Oanda fxTradePractice web-based platform in firefox 11.0 the loading bar always stops on "40%..." and when i converted my system from OpenJDK to Java SE JDK the same web applet worked fine with Java SE plugin ICEDTEAPLUGIN_DEBUG=true firefox 2>&1 | tee plugin.log http://paste.pocoo.org/show/572638/ Java SE plugin logs http://paste.pocoo.org/show/572718/ -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Thu Mar 29 02:36:14 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 29 Mar 2012 05:36:14 -0400 (EDT) Subject: porting icedtea6 to FreeBSD In-Reply-To: <20120329032532.GA24690@dormouse.experts-exchange.com> Message-ID: <33c26e23-17f2-4c60-8b8e-eed23724e25b@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > Hi, > On Wed, Mar 28, 2012 at 06:09:22PM -0400, Andrew Hughes thus spake: > >> >It's hard to tell what's happening here without more details as > >> >to > >> >how > >> >you're building. Posting config.log would be very helpful. > >> > >> I've attached this. > >> > > > >Ok, seems sane enough. I do wonder what /usr/local/openjdk6 is > >though. > >That may cause problems further down the line. > > This is my installation of OpenJDK6. It has been ported to FreeBSD > for > sometime now. Do I need to specify a different jdk for building? > So what's the basis for that? Wouldn't it be better to use that source code rather than OpenJDK6? > I am specifying this for --with-jdk-home > > > >You don't seem to be using the latest; that would be 1.11.1. If you > >want > >to get the end result into IcedTea, you may be better working with > >the > >Mercurial version: > > I really would rather work with the released tarballs to support > FreeBSD, > unless something comes up where that can't be done. I'm really not > convinced > that I'm doing things right at this point to warrant a different path > :) > There just doesn't seem much point in working on an old release with issues that may have already been fixed. Also, to accept any patches you may have, we'll need them against HEAD not an old release. > I'm still trying to find out what icedtea does with openjdk :) Patches and builds it. > > > >The patch issue is rather odd. Are you rerunning a build over an > >existing > >OpenJDK tree as Andrew said? What I'd recommend for ease of > >debugging is > >to build in a separate directory: > > I believe I am doing that, with the above specified. Do I need to be > running > against a different jdk home? There are several to choose from for > FreeBSD. > I wonder if this is the issue. However, I switched to use jdk1.6 and > had the > same patch related issue. The JDK isn't an issue with patching. I just mentioned it because it may affect things when we actually get to building. > > The text leading up to this was: > -------------------------- > |# HG changeset patch > |# User robm > |# Date 1322691030 0 > |# Node ID ee0f12b18cb8d20c3fb61e96817bde6318a29221 > |# Parent dd8956e41b892ed7102e1d5668781f2c68ea9ac5 > |7082299: AtomicReferenceArray should ensure that array is Object[] > |Summary: java.util.concurrent.AtomicReferenceArray needs to ensure > |that internal array is always Object[]. > |Reviewed-by: chegar, coffeys > | > |diff --git > |a/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > |b/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > |--- > |openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > |+++ > |openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > -------------------------- > Patching file > openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > using Plan A... > Reversed (or previously applied) patch detected! Assume -R? [y] > > > > >$ mkdir icedtea6-build > >$ cd icedtea6-build > >$ ../icedtea6-1.11.1/configure > > This may partly my issue. I'm basically guessing what the correct > options > are to use. > > Here is what I am using currently: > (LOCALBASE=/usr/local) > > --with-ecj-jar=${LOCALBASE}/share/java/classes/ecj-3.7.2.jar \ > --with-rhino=${LOCALBASE}/share/java/rhino/rhino.jar \ > --with-jdk-home=/usr/local/openjdk6 \ > --with-jaxp-drop-zip=${DISTDIR}/jaxp144_03.zip \ > --with-jaf-drop-zip=${DISTDIR}/jdk6-jaf-b20.zip \ > --with-jaxws-drop-zip=${DISTDIR}/jdk6-jaxws2_1_6-2011_06_13.zip \ > --with-openjdk-src-zip=${DISTDIR}/openjdk-6-src-b24-14_nov_2011.tar.gz Yes I saw this. All looks fine to me. Moving to 1.11 would allow the xerces/xalan dependencies to be dropped (this change will also be in 1.10.7) > > >which you can then just rm -rf if it doesn't work. make clean works > >too, > >but this is usually quicker and more guaranteed to work. > > > >You mention something about having to fix up patches? Can you give > >more > >details? > > This has been resolved with later releases, and the patching is > probably a > result of misconfigured configured options. I doubt it from what I've seen of what you're doing. The issue seems to be that your OpenJDK sources are not in the expected state. > > > >> Please take note the files and locations where they are being > >> downloaded from. > >> > > >> >http://icedtea.classpath.org/hg/icedtea6-hg > >> > > >> >Going forward, I doubt this will work as OpenJDK6 doesn't have > >> >the > >> >*BSD work > >> >that Oracle have integrated for Mac OS X. You might be better > >> >starting from > >> >7. 6 is likely to end up having to be retired by the end of the > >> >year anyway, > >> >as Oracle intend to stop security support. > >> > >> If I can get this to work on 6 it would be great, however I can > >> work > >> on 7 as > >> well. Is there anything I can not apply to get it to work on 6? > >> > > > >You're more than welcome to try and don't get me wrong - I love to > >see > >FreeBSD support for OpenJDK6. I just worry that it'll be a lot of > >work > >for something that may be decommissioned a few months after you > >finish. > >There won't be *BSD support for a lot of things in OpenJDK6 as it > >stands, > >so it'll need backporting from 7. That may have been feasible a few > >years > >ago, but today there doesn't seem much point. > > OpenJDK6/7 are both in the FreeBSD tree. :) Getting this working on > 6, > should at least give me the insight to get it working on 7. And thank > you > for the head's up. > > > > > Thanks! > -jgh > > -- > Jason Helfman | FreeBSD Committer > jgh at FreeBSD.org | http://people.freebsd.org/~jgh > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From svelusa at ncsu.edu Thu Mar 29 01:20:51 2012 From: svelusa at ncsu.edu (Saravanaraj Velusamy) Date: Thu, 29 Mar 2012 04:20:51 -0400 Subject: Questions on jvm interpreter Message-ID: Hi All, We are trying to alter the branch conditions taken by a java program at run time. For example if a Java code has conditions like this if( var == value1) PATH1; else PATH2; Lets say we want to it take PATH2 (even though var might be equal to value1). We might not change all branch statements in the class file and we can assume there is another source (say a text file) which contains what conditions needs to be changed. We have two ideas to do the same. 1) To change the bytecode at that point during execution (like changing if_icmpeq to if_icmpne) 2) Find the place which contains the result of the first comparison and complement the result of the comparison. The example has a simple conditional statement. We would also want to consider loops, switch cases later. We would like to know what is the best way to go about and pointers in the code related to this. We are currently looking into bytecodeInterpreter.cpp of Zero instead of hotspot to avoid generated assembly for interpreter. Is there any way to find out the class file belonging to the current opcode ? Since we are not interested in the standard Java class files like String, Integer etc and focus on the ones from the User written classes and methods. We have looked into BCEL, ASM, JVMTI and found out that we cannot change the behavior at run time. Thanks in advance. - Saravanaraj -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120329/61eeafcf/attachment.html From fweimer at bfk.de Thu Mar 29 05:31:16 2012 From: fweimer at bfk.de (Florian Weimer) Date: Thu, 29 Mar 2012 12:31:16 +0000 Subject: Questions on jvm interpreter In-Reply-To: (Saravanaraj Velusamy's message of "Thu, 29 Mar 2012 04:20:51 -0400") References: Message-ID: <82ehsbbncb.fsf@mid.bfk.de> * Saravanaraj Velusamy: > We have looked into BCEL, ASM, JVMTI and found out that we cannot change > the behavior at run time. Why can't you rewrite the class in a suitable class loader? This should be fairly straightforward, unless you want to change platform classes. -- Florian Weimer BFK edv-consulting GmbH http://www.bfk.de/ Kriegsstra?e 100 tel: +49-721-96201-1 D-76133 Karlsruhe fax: +49-721-96201-99 From ptisnovs at redhat.com Thu Mar 29 06:32:32 2012 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 29 Mar 2012 15:32:32 +0200 Subject: Reviewer needed: fix RH bug #789154 in IcedTea6 HEAD and IcedTea6-1.11 Message-ID: <4F746470.2030104@redhat.com> Hi, I'd like to push a fix for RH bug Bug 789154 - javac error messages no longer contain the full path to the offending file (https://bugzilla.redhat.com/show_bug.cgi?id=789154) to IcedTea6 HEAD and IcedTea6-1.11 This fix removes the patch "revert-6885123.patch" which - as its name suggests - reverts some changes done in OpenJDK6 in 6885123 fix (sound complicated). By removing this patch the compiler is changed to write path name for compiled sources: $ ./javac test/test.java test/test.java:1: reached end of file while parsing fdsafdsafds ^ 1 error ChangeLog entry: 2012-03-29 Pavel Tisnovsky * patches/revert-6885123.patch: Removed to fix RH bug #789154 - javac error messages no longer contain the full path to the offending file. * NEWS: Mention bugfix. * Makefile.am: Updated. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6_11.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120329/ad9cde0d/6_11.diff -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: head.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120329/ad9cde0d/head.diff From adinn at redhat.com Thu Mar 29 07:03:12 2012 From: adinn at redhat.com (Andrew Dinn) Date: Thu, 29 Mar 2012 15:03:12 +0100 Subject: Questions on jvm interpreter Message-ID: <4F746BA0.80003@redhat.com> Hi Saravanaraj, > We are trying to alter the branch conditions taken by a java program at run > time. > > For example if a Java code has conditions like this > > if( var == value1) > PATH1; > else > PATH2; > > Lets say we want to it take PATH2 (even though var might be equal to > value1). We might not change all branch statements in the class file and we > can assume there is another source (say a text file) which contains what > conditions needs to be changed. JBoss project Byteman provides a relatively easy way to redefine behaviour of Java code at runtime. It allows you to specify modifications to the program as Java source code and performs all the necessary type-checking, linking and rewriting of the bytecode automatically. If you want to read about it or try it out everything you will need is available via the homepage http://www.jboss.org/byteman If you have any questions about Byteman please post them to the User Forum (accessible from the home page) so that other users can benefit from the replies provided. Thanks. regards, Andrew Dinn ----------- From ahughes at redhat.com Thu Mar 29 07:12:46 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 29 Mar 2012 10:12:46 -0400 (EDT) Subject: Reviewer needed: fix RH bug #789154 in IcedTea6 HEAD and IcedTea6-1.11 In-Reply-To: <4F746470.2030104@redhat.com> Message-ID: ----- Original Message ----- > Hi, > > I'd like to push a fix for RH bug > Bug 789154 - javac error messages no longer contain the full path to > the offending file > (https://bugzilla.redhat.com/show_bug.cgi?id=789154) > > to IcedTea6 HEAD and IcedTea6-1.11 > > This fix removes the patch "revert-6885123.patch" which - as its name > suggests - > reverts some changes done in OpenJDK6 in 6885123 fix (sound > complicated). > > By removing this patch the compiler is changed to write path name for > compiled sources: > $ ./javac test/test.java > test/test.java:1: reached end of file while parsing > fdsafdsafds > ^ > 1 error > > ChangeLog entry: > > 2012-03-29 Pavel Tisnovsky > > * patches/revert-6885123.patch: Removed to fix > RH bug #789154 - javac error messages no longer > contain the full path to the offending file. > * NEWS: Mention bugfix. > * Makefile.am: Updated. > > Can anybody please review this change? > > Thank you in advance, > Pavel > > > [Text File:6_11.diff] > > > [Text File:head.diff] > Approved for HEAD and 1.11. It was originally thought that 6885123 changed earlier behaviour, but this wasn't backed up by my testing on 1.8, 1.9 and 1.10. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at icedtea.classpath.org Thu Mar 29 08:18:39 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 29 Mar 2012 15:18:39 +0000 Subject: /hg/icedtea6: Removed revert-6885123.patch to fix RH bug #789154... Message-ID: changeset 4826fae07d72 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=4826fae07d72 author: ptisnovs date: Thu Mar 29 18:18:31 2012 +0200 Removed revert-6885123.patch to fix RH bug #789154 - javac error messages no longer contain the full path to the offending file. diffstat: ChangeLog | 8 + Makefile.am | 1 - NEWS | 1 + patches/revert-6885123.patch | 560 ------------------------------------------- 4 files changed, 9 insertions(+), 561 deletions(-) diffs (truncated from 608 to 500 lines): diff -r 86fa5b8eb7a9 -r 4826fae07d72 ChangeLog --- a/ChangeLog Tue Mar 27 15:30:53 2012 +0200 +++ b/ChangeLog Thu Mar 29 18:18:31 2012 +0200 @@ -1,3 +1,11 @@ +2012-03-29 Pavel Tisnovsky + + * patches/revert-6885123.patch: Removed to fix + RH bug #789154 - javac error messages no longer + contain the full path to the offending file. + * NEWS: Mention bugfix. + * Makefile.am: Updated. + 2012-03-27 Pavel Tisnovsky * patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch: diff -r 86fa5b8eb7a9 -r 4826fae07d72 Makefile.am --- a/Makefile.am Tue Mar 27 15:30:53 2012 +0200 +++ b/Makefile.am Thu Mar 29 18:18:31 2012 +0200 @@ -345,7 +345,6 @@ patches/openjdk/7027667-AAShapePipeRegTest.patch \ patches/openjdk/7019861-AA-regression-fix.patch \ patches/g356743-libpng-1.5.patch \ - patches/revert-6885123.patch \ patches/openjdk/7032388-work_without_cmov_instruction.patch \ patches/openjdk/7031385-gcc-register-allocation-fix.patch \ patches/openjdk/6986968-crash_on_xim_restart.patch \ diff -r 86fa5b8eb7a9 -r 4826fae07d72 NEWS --- a/NEWS Tue Mar 27 15:30:53 2012 +0200 +++ b/NEWS Thu Mar 29 18:18:31 2012 +0200 @@ -16,6 +16,7 @@ - PR865: Patching fails with patches/ecj/jaxws-getdtdtype.patch - PR886: 6-1.11.1 fails to build CACAO on ppc - PR881: Sign tests (wsse.policy.basic) failures with OpenJDK6 + - RH789154: javac error messages no longer contain the full path to the offending file: * Backports - S6706974: Add krb5 test infrastructure - S6764553: com.sun.org.apache.xml.internal.security.utils.IdResolver is not thread safe diff -r 86fa5b8eb7a9 -r 4826fae07d72 patches/revert-6885123.patch --- a/patches/revert-6885123.patch Tue Mar 27 15:30:53 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,567 +0,0 @@ ---- openjdk.old/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java 2011-02-28 17:07:28.000000000 +0100 -+++ openjdk/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java 2011-03-25 10:16:13.646180000 +0100 -@@ -78,7 +78,7 @@ - - //@Override - public String getName() { -- return file.getPath(); -+ return this.name; - } - - //@Override ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/JavaFileManagerTest.java 2011-03-28 15:51:43.000000000 +0200 -@@ -0,0 +1,119 @@ -+/* -+ * Copyright 2011 Red Hat, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ */ -+ -+ -+import java.util.*; -+import java.io.*; -+import java.nio.charset.*; -+ -+import javax.tools.*; -+import javax.tools.JavaFileManager.*; -+import javax.tools.JavaFileObject.*; -+ -+public class JavaFileManagerTest { -+ -+ /** -+ * Test data files are stored in a subdirectory named "test_data". -+ */ -+ private static final String TEST_DATA_DIRECTORY = "test_data"; -+ -+ /** -+ * Charset used by JavaFileManager. -+ */ -+ private static final Charset FILE_MANAGER_CHARSET = Charset.forName("US-ASCII"); -+ -+ /** -+ * Locale used by JavaFileManager. -+ */ -+ private static final Locale FILE_MANAGER_LOCALE = (java.util.Locale)null; -+ -+ /** -+ * Location of file objects being tested. -+ */ -+ private static final Location FILE_OBJECTS_LOCATION = javax.tools.StandardLocation.SOURCE_PATH; -+ -+ public static DiagnosticListener listener = new DiagnosticCollector(); -+ -+ private void doTest() throws IOException { -+ StandardJavaFileManager fileManager = getStandardFileManager(); -+ fileManager.setLocation(FILE_OBJECTS_LOCATION, Collections.singleton(getSourceDirPathFile())); -+ -+ checkFileManagerLocation(fileManager.getLocation(FILE_OBJECTS_LOCATION)); -+ checkFileManagerGetName(fileManager); -+ } -+ -+ private StandardJavaFileManager getStandardFileManager() { -+ return ToolProvider.getSystemJavaCompiler().getStandardFileManager( -+ listener, FILE_MANAGER_LOCALE, FILE_MANAGER_CHARSET); -+ } -+ -+ public static File getSourceDirPathFile() { -+ return new File(new File("."), TEST_DATA_DIRECTORY); -+ } -+ -+ /** -+ * Check if there's "./test_data" location included in a locations argument. -+ * @param locations set of locations returned by fileManager.getLocation() -+ */ -+ private void checkFileManagerLocation(Iterable locations) { -+ for (File file : locations) { -+ if (".".equals(file.getParent()) && TEST_DATA_DIRECTORY.equals(file.getName())) { -+ System.out.println("checkFileManagerLocation: ok"); -+ return; -+ } -+ } -+ throw new RuntimeException("fileManager.getLocation() returns wrong locations! " + locations.toString()); -+ } -+ -+ /** -+ * Check if method JavaFileManager.getName() returns correct file name. -+ * @param fileManager -+ * @throws IOException -+ */ -+ private void checkFileManagerGetName(JavaFileManager fileManager) throws IOException { -+ Map kinds = new HashMap(); -+ kinds.put(Kind.SOURCE, "Test.java"); -+ kinds.put(Kind.CLASS, "Test.class"); -+ kinds.put(Kind.HTML, "Test.html"); -+ kinds.put(Kind.OTHER, "Test.txt"); -+ for (Map.Entry kind : kinds.entrySet()) { -+ System.out.println("Testing JavaFileManager for kind " + kind.getKey()); -+ Iterable fileObjects = fileManager.list( -+ FILE_OBJECTS_LOCATION, "", Collections.singleton(kind.getKey()), false); -+ checkIfFileObjectsContainName(fileObjects, kind.getValue()); -+ } -+ } -+ -+ private void checkIfFileObjectsContainName(Iterable fileObjects, String name) { -+ //System.out.println(fileObjects); -+ for (JavaFileObject fileObject : fileObjects) { -+ //System.out.println(fileObject.getName()); -+ if (name.equals(fileObject.getName())) { -+ System.out.println("JavaFileObject.getName(): ok ('" + fileObject.getName() + "')"); -+ return; -+ } -+ } -+ throw new RuntimeException("JavaFileObject.getName() returns wrong name!"); -+ } -+ -+ public static void main(String argv[]) throws IOException { -+ new JavaFileManagerTest().doTest(); -+ } -+ -+} ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/JavaFileManagerTest.sh 2011-03-28 15:47:23.000000000 +0200 -@@ -0,0 +1,153 @@ -+#!/bin/sh -+ -+# -+# Copyright 2011 Red Hat, Inc. All Rights Reserved. -+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+# -+# This code is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License version 2 only, as -+# published by the Free Software Foundation. -+# -+# This code is distributed in the hope that it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+# version 2 for more details (a copy is included in the LICENSE file that -+# accompanied this code). -+# -+# You should have received a copy of the GNU General Public License version -+# 2 along with this work; if not, write to the Free Software Foundation, -+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ -+# -+# This script is the actual launcher of JavaFileManagerTest.java -+# -+ -+# @test -+# @summary Test that check proper behaviour of JavaFileManager and -+# JavaFileObject classes. -+ -+ -+ -+# check arguments set by JTreg -+checkArgs() { -+ if [ "${TESTSRC}" = "" ] -+ then -+ echo "TESTSRC not set. Test cannot execute. Failed." -+ exit 1 -+ fi -+ echo "TESTSRC=${TESTSRC}" -+ if [ "${TESTJAVA}" = "" ] -+ then -+ echo "TESTJAVA not set. Test cannot execute. Failed." -+ exit 1 -+ fi -+ echo "TESTJAVA=${TESTJAVA}" -+ if [ "${TESTCLASSES}" = "" ] -+ then -+ echo "TESTCLASSES not set. Test cannot execute. Failed." -+ exit 1 -+ fi -+} -+ -+ -+ -+# print paths to test sources and test classes -+printPaths() { -+ echo "TESTCLASSES=${TESTCLASSES}" -+ echo "CLASSPATH=${CLASSPATH}" -+} -+ -+ -+ -+# copy of all necessarry files into work directory -+copyWorkFiles() { -+ cp -r "${TESTSRC}/test_data" "${TESTCLASSES}/" -+ result=$? -+ if [ $result -eq 0 ] -+ then -+ echo "Copy of work files was successful." -+ else -+ echo "copy of work files have failed." -+ exit $result -+ fi -+ -+ cp "${TESTSRC}/JavaFileManagerTest.java" "${TESTCLASSES}" -+ result=$? -+ if [ $result -eq 0 ] -+ then -+ echo "Copy of work files was successful." -+ else -+ echo "copy of work files have failed." -+ exit $result -+ fi -+} -+ -+ -+ -+# compilation of Test class which is stored in test_data subdirectory -+compileTestClass() { -+ COMPILE="${TESTJAVA}/bin/javac ${TESTCLASSES}/test_data/Test.java" -+ echo ${COMPILE} -+ ${COMPILE} -+ result=$? -+ -+ if [ $result -eq 0 ] -+ then -+ echo "Compilation of the test class was successful." -+ else -+ echo "Compilation of the test class have failed." -+ # Cleanup -+ rm -rf ${TESTCLASSES}/ -+ exit $result -+ fi -+} -+ -+ -+ -+# compilation of the Test itself -+compileTest() { -+ COMPILE="${TESTJAVA}/bin/javac ${TESTCLASSES}/JavaFileManagerTest.java" -+ echo ${COMPILE} -+ ${COMPILE} -+ result=$? -+ -+ if [ $result -eq 0 ] -+ then -+ echo "Compilation of the test case was successful." -+ else -+ echo "Compilation of the test case failed." -+ # Cleanup -+ rm -rf ${TESTCLASSES}/ -+ exit $result -+ fi -+} -+ -+ -+ -+# run the test -+runTest() { -+ cd ${TESTCLASSES} -+ RUNCMD="${TESTJAVA}/bin/java JavaFileManagerTest" -+ echo ${RUNCMD} -+ ${RUNCMD} -+ result=$? -+ -+ if [ $result -eq 0 ] -+ then -+ echo "Execution successful" -+ else -+ echo "Execution of the test case failed." -+ fi -+ rm -rf ${TESTCLASSES}/ -+ exit $result -+} -+ -+ -+ -+checkArgs -+printPaths -+copyWorkFiles -+compileTestClass -+compileTest -+runTest -+ ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/test_data/Test.html 2011-03-25 18:19:45.000000000 +0100 -@@ -0,0 +1,5 @@ -+ -+ -+42 -+ -+ ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/test_data/Test.java 2011-03-28 14:53:50.000000000 +0200 -@@ -0,0 +1,5 @@ -+package test_data; -+ -+public class Test { -+ // nothing here -+} ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/test_data/Test.txt 2011-03-28 16:15:09.000000000 +0200 -@@ -0,0 +1,2 @@ -+42 -+ ---- openjdk/langtools/test/tools/javac/api/6411310/Test.java 2011-02-28 17:07:32.000000000 +0100 -+++ /dev/null 2011-03-27 16:20:13.277479669 +0200 -@@ -1,254 +0,0 @@ --/* -- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. -- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -- * -- * This code is free software; you can redistribute it and/or modify it -- * under the terms of the GNU General Public License version 2 only, as -- * published by the Free Software Foundation. -- * -- * This code is distributed in the hope that it will be useful, but WITHOUT -- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- * version 2 for more details (a copy is included in the LICENSE file that -- * accompanied this code). -- * -- * You should have received a copy of the GNU General Public License version -- * 2 along with this work; if not, write to the Free Software Foundation, -- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -- * -- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -- * or visit www.oracle.com if you need additional information or have any -- * questions. -- */ -- --/* -- * @test -- * @bug 6410367 6411310 -- * @summary FileObject should support user-friendly names via getName() -- */ -- --import java.io.*; --import java.util.*; --import java.util.jar.*; --import java.util.zip.*; --import javax.tools.*; -- --import com.sun.tools.javac.file.JavacFileManager; --import com.sun.tools.javac.util.Context; --import com.sun.tools.javac.util.Options; -- --// Test FileObject.getName returned from JavacFileManager and its support classes. -- --public class Test { -- public static void main(String... args) throws Exception { -- new Test().run(); -- } -- -- Set foundClasses = new TreeSet(); -- Set foundJars = new TreeSet(); -- -- void run() throws Exception { -- File rt_jar = findRtJar(); -- -- // names for entries to be created in directories and jar files -- String[] entries = { "p/A.java", "p/A.class", "p/resources/A-1.html" }; -- -- // test various combinations of directories and jar files, intended to -- // cover all sources of file objects within JavacFileManager's support classes -- -- test(createFileManager(), createDir("dir", entries), "p", entries); -- test(createFileManager(), createDir("a b/dir", entries), "p", entries); -- -- for (boolean useJavaUtilZip: new boolean[] { false, true }) { -- test(createFileManager(useJavaUtilZip), createJar("jar", entries), "p", entries); -- test(createFileManager(useJavaUtilZip), createJar("jar jar", entries), "p", entries); -- -- for (boolean useSymbolFile: new boolean[] { false, true }) { -- test(createFileManager(useJavaUtilZip, useSymbolFile), rt_jar, "java.lang.ref", null); -- } -- } -- -- if (errors > 0) -- throw new Exception(errors + " errors found"); -- -- // Verify that we hit all the impl classes we intended -- checkCoverage("classes", foundClasses, -- "RegularFileObject", "SymbolFileObject", "ZipFileIndexFileObject", "ZipFileObject"); -- -- // Verify that we hit the jar files we intended, specifically ct.sym as well as rt.jar -- checkCoverage("jar files", foundJars, -- "ct.sym", "jar", "jar jar", "rt.jar"); -- } -- -- // use a new file manager for each test -- void test(StandardJavaFileManager fm, File f, String pkg, String[] entries) throws Exception { -- System.err.println("Test " + f); -- try { -- if (f.isDirectory()) { -- for (File dir: new File[] { f, f.getAbsoluteFile() }) { -- for (String e: entries) { -- JavaFileObject fo = fm.getJavaFileObjects(new File(dir, e)).iterator().next(); -- test(fo, dir, e); -- } -- } -- } -- -- fm.setLocation(StandardLocation.CLASS_PATH, Collections.singleton(f)); -- fm.setLocation(StandardLocation.SOURCE_PATH, Collections.singleton(f.getAbsoluteFile())); -- for (StandardLocation l: EnumSet.of(StandardLocation.CLASS_PATH, StandardLocation.SOURCE_PATH)) { -- for (JavaFileObject fo: fm.list(l, pkg, EnumSet.allOf(JavaFileObject.Kind.class), true)) { -- // we could use fm.getLocation but the following guarantees we preserve the original filename -- File dir = (l == StandardLocation.CLASS_PATH ? f : f.getAbsoluteFile()); -- char sep = (dir.isDirectory() ? File.separatorChar : '/'); -- String b = fm.inferBinaryName(l, fo); -- String e = fo.getKind().extension; -- test(fo, dir, b.replace('.', sep) + e); -- } -- } -- } finally { -- fm.close(); -- } -- } -- -- void test(JavaFileObject fo, File dir, String p) { -- System.err.println("Test: " + fo); -- String expect = dir.isDirectory() ? new File(dir, p).getPath() : (dir.getPath() + "(" + p + ")"); -- String found = fo.getName(); -- // if ct.sym is found, replace it with the equivalent rt.jar -- String found2 = found.replaceAll("lib([\\\\/])ct.sym\\(META-INF/sym/rt.jar/", "jre$1lib$1rt.jar("); -- if (!expect.equals(found2)) { -- System.err.println("expected: " + expect); -- System.err.println(" found: " + found); -- if (!found.equals(found2)) -- System.err.println(" found2: " + found2); -- error("Failed: " + fo); -- } -- -- // record the file object class name for coverage checks later -- foundClasses.add(fo.getClass().getSimpleName()); -- -- if (found.contains("(")) { -- // record access to the jar file for coverage checks later -- foundJars.add(new File(found.substring(0, found.indexOf("("))).getName()); -- } -- } -- -- void checkCoverage(String label, Set found, String... expect) throws Exception { -- Set e = new TreeSet(Arrays.asList(expect)); -- if (!found.equals(e)) { -- e.removeAll(found); -- throw new Exception("expected " + label + " not used: " + e); -- } -- } -- -- JavacFileManager createFileManager() { -- return createFileManager(false, false); -- } From ptisnovs at icedtea.classpath.org Thu Mar 29 08:30:19 2012 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 29 Mar 2012 15:30:19 +0000 Subject: /hg/release/icedtea6-1.11: Removed revert-6885123.patch to fix R... Message-ID: changeset a134afa67a3f in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=a134afa67a3f author: ptisnovs date: Thu Mar 29 18:28:28 2012 +0200 Removed revert-6885123.patch to fix RH bug #789154 - javac error messages no longer contain the full path to the offending file. diffstat: ChangeLog | 8 + Makefile.am | 1 - NEWS | 3 + patches/revert-6885123.patch | 560 ------------------------------------------- 4 files changed, 11 insertions(+), 561 deletions(-) diffs (truncated from 610 to 500 lines): diff -r 9543acd2586e -r a134afa67a3f ChangeLog --- a/ChangeLog Mon Feb 20 16:05:07 2012 +0000 +++ b/ChangeLog Thu Mar 29 18:28:28 2012 +0200 @@ -1,3 +1,11 @@ +2012-03-29 Pavel Tisnovsky + + * patches/revert-6885123.patch: Removed to fix + RH bug #789154 - javac error messages no longer + contain the full path to the offending file. + * NEWS: Mention bugfix. + * Makefile.am: Updated. + 2012-02-20 Andrew Haley PR584: diff -r 9543acd2586e -r a134afa67a3f Makefile.am --- a/Makefile.am Mon Feb 20 16:05:07 2012 +0000 +++ b/Makefile.am Thu Mar 29 18:28:28 2012 +0200 @@ -346,7 +346,6 @@ patches/openjdk/7027667-AAShapePipeRegTest.patch \ patches/openjdk/7019861-AA-regression-fix.patch \ patches/g356743-libpng-1.5.patch \ - patches/revert-6885123.patch \ patches/openjdk/7032388-work_without_cmov_instruction.patch \ patches/openjdk/7031385-gcc-register-allocation-fix.patch \ patches/openjdk/6986968-crash_on_xim_restart.patch \ diff -r 9543acd2586e -r a134afa67a3f NEWS --- a/NEWS Mon Feb 20 16:05:07 2012 +0000 +++ b/NEWS Thu Mar 29 18:28:28 2012 +0200 @@ -12,6 +12,9 @@ New in release 1.11.2 (2012-XX-XX): +* Bug fixes + - RH789154: javac error messages no longer contain the full path to the offending file: + New in release 1.11.1 (2012-02-14): * Security fixes diff -r 9543acd2586e -r a134afa67a3f patches/revert-6885123.patch --- a/patches/revert-6885123.patch Mon Feb 20 16:05:07 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,567 +0,0 @@ ---- openjdk.old/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java 2011-02-28 17:07:28.000000000 +0100 -+++ openjdk/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java 2011-03-25 10:16:13.646180000 +0100 -@@ -78,7 +78,7 @@ - - //@Override - public String getName() { -- return file.getPath(); -+ return this.name; - } - - //@Override ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/JavaFileManagerTest.java 2011-03-28 15:51:43.000000000 +0200 -@@ -0,0 +1,119 @@ -+/* -+ * Copyright 2011 Red Hat, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ */ -+ -+ -+import java.util.*; -+import java.io.*; -+import java.nio.charset.*; -+ -+import javax.tools.*; -+import javax.tools.JavaFileManager.*; -+import javax.tools.JavaFileObject.*; -+ -+public class JavaFileManagerTest { -+ -+ /** -+ * Test data files are stored in a subdirectory named "test_data". -+ */ -+ private static final String TEST_DATA_DIRECTORY = "test_data"; -+ -+ /** -+ * Charset used by JavaFileManager. -+ */ -+ private static final Charset FILE_MANAGER_CHARSET = Charset.forName("US-ASCII"); -+ -+ /** -+ * Locale used by JavaFileManager. -+ */ -+ private static final Locale FILE_MANAGER_LOCALE = (java.util.Locale)null; -+ -+ /** -+ * Location of file objects being tested. -+ */ -+ private static final Location FILE_OBJECTS_LOCATION = javax.tools.StandardLocation.SOURCE_PATH; -+ -+ public static DiagnosticListener listener = new DiagnosticCollector(); -+ -+ private void doTest() throws IOException { -+ StandardJavaFileManager fileManager = getStandardFileManager(); -+ fileManager.setLocation(FILE_OBJECTS_LOCATION, Collections.singleton(getSourceDirPathFile())); -+ -+ checkFileManagerLocation(fileManager.getLocation(FILE_OBJECTS_LOCATION)); -+ checkFileManagerGetName(fileManager); -+ } -+ -+ private StandardJavaFileManager getStandardFileManager() { -+ return ToolProvider.getSystemJavaCompiler().getStandardFileManager( -+ listener, FILE_MANAGER_LOCALE, FILE_MANAGER_CHARSET); -+ } -+ -+ public static File getSourceDirPathFile() { -+ return new File(new File("."), TEST_DATA_DIRECTORY); -+ } -+ -+ /** -+ * Check if there's "./test_data" location included in a locations argument. -+ * @param locations set of locations returned by fileManager.getLocation() -+ */ -+ private void checkFileManagerLocation(Iterable locations) { -+ for (File file : locations) { -+ if (".".equals(file.getParent()) && TEST_DATA_DIRECTORY.equals(file.getName())) { -+ System.out.println("checkFileManagerLocation: ok"); -+ return; -+ } -+ } -+ throw new RuntimeException("fileManager.getLocation() returns wrong locations! " + locations.toString()); -+ } -+ -+ /** -+ * Check if method JavaFileManager.getName() returns correct file name. -+ * @param fileManager -+ * @throws IOException -+ */ -+ private void checkFileManagerGetName(JavaFileManager fileManager) throws IOException { -+ Map kinds = new HashMap(); -+ kinds.put(Kind.SOURCE, "Test.java"); -+ kinds.put(Kind.CLASS, "Test.class"); -+ kinds.put(Kind.HTML, "Test.html"); -+ kinds.put(Kind.OTHER, "Test.txt"); -+ for (Map.Entry kind : kinds.entrySet()) { -+ System.out.println("Testing JavaFileManager for kind " + kind.getKey()); -+ Iterable fileObjects = fileManager.list( -+ FILE_OBJECTS_LOCATION, "", Collections.singleton(kind.getKey()), false); -+ checkIfFileObjectsContainName(fileObjects, kind.getValue()); -+ } -+ } -+ -+ private void checkIfFileObjectsContainName(Iterable fileObjects, String name) { -+ //System.out.println(fileObjects); -+ for (JavaFileObject fileObject : fileObjects) { -+ //System.out.println(fileObject.getName()); -+ if (name.equals(fileObject.getName())) { -+ System.out.println("JavaFileObject.getName(): ok ('" + fileObject.getName() + "')"); -+ return; -+ } -+ } -+ throw new RuntimeException("JavaFileObject.getName() returns wrong name!"); -+ } -+ -+ public static void main(String argv[]) throws IOException { -+ new JavaFileManagerTest().doTest(); -+ } -+ -+} ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/JavaFileManagerTest.sh 2011-03-28 15:47:23.000000000 +0200 -@@ -0,0 +1,153 @@ -+#!/bin/sh -+ -+# -+# Copyright 2011 Red Hat, Inc. All Rights Reserved. -+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+# -+# This code is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License version 2 only, as -+# published by the Free Software Foundation. -+# -+# This code is distributed in the hope that it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+# version 2 for more details (a copy is included in the LICENSE file that -+# accompanied this code). -+# -+# You should have received a copy of the GNU General Public License version -+# 2 along with this work; if not, write to the Free Software Foundation, -+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ -+# -+# This script is the actual launcher of JavaFileManagerTest.java -+# -+ -+# @test -+# @summary Test that check proper behaviour of JavaFileManager and -+# JavaFileObject classes. -+ -+ -+ -+# check arguments set by JTreg -+checkArgs() { -+ if [ "${TESTSRC}" = "" ] -+ then -+ echo "TESTSRC not set. Test cannot execute. Failed." -+ exit 1 -+ fi -+ echo "TESTSRC=${TESTSRC}" -+ if [ "${TESTJAVA}" = "" ] -+ then -+ echo "TESTJAVA not set. Test cannot execute. Failed." -+ exit 1 -+ fi -+ echo "TESTJAVA=${TESTJAVA}" -+ if [ "${TESTCLASSES}" = "" ] -+ then -+ echo "TESTCLASSES not set. Test cannot execute. Failed." -+ exit 1 -+ fi -+} -+ -+ -+ -+# print paths to test sources and test classes -+printPaths() { -+ echo "TESTCLASSES=${TESTCLASSES}" -+ echo "CLASSPATH=${CLASSPATH}" -+} -+ -+ -+ -+# copy of all necessarry files into work directory -+copyWorkFiles() { -+ cp -r "${TESTSRC}/test_data" "${TESTCLASSES}/" -+ result=$? -+ if [ $result -eq 0 ] -+ then -+ echo "Copy of work files was successful." -+ else -+ echo "copy of work files have failed." -+ exit $result -+ fi -+ -+ cp "${TESTSRC}/JavaFileManagerTest.java" "${TESTCLASSES}" -+ result=$? -+ if [ $result -eq 0 ] -+ then -+ echo "Copy of work files was successful." -+ else -+ echo "copy of work files have failed." -+ exit $result -+ fi -+} -+ -+ -+ -+# compilation of Test class which is stored in test_data subdirectory -+compileTestClass() { -+ COMPILE="${TESTJAVA}/bin/javac ${TESTCLASSES}/test_data/Test.java" -+ echo ${COMPILE} -+ ${COMPILE} -+ result=$? -+ -+ if [ $result -eq 0 ] -+ then -+ echo "Compilation of the test class was successful." -+ else -+ echo "Compilation of the test class have failed." -+ # Cleanup -+ rm -rf ${TESTCLASSES}/ -+ exit $result -+ fi -+} -+ -+ -+ -+# compilation of the Test itself -+compileTest() { -+ COMPILE="${TESTJAVA}/bin/javac ${TESTCLASSES}/JavaFileManagerTest.java" -+ echo ${COMPILE} -+ ${COMPILE} -+ result=$? -+ -+ if [ $result -eq 0 ] -+ then -+ echo "Compilation of the test case was successful." -+ else -+ echo "Compilation of the test case failed." -+ # Cleanup -+ rm -rf ${TESTCLASSES}/ -+ exit $result -+ fi -+} -+ -+ -+ -+# run the test -+runTest() { -+ cd ${TESTCLASSES} -+ RUNCMD="${TESTJAVA}/bin/java JavaFileManagerTest" -+ echo ${RUNCMD} -+ ${RUNCMD} -+ result=$? -+ -+ if [ $result -eq 0 ] -+ then -+ echo "Execution successful" -+ else -+ echo "Execution of the test case failed." -+ fi -+ rm -rf ${TESTCLASSES}/ -+ exit $result -+} -+ -+ -+ -+checkArgs -+printPaths -+copyWorkFiles -+compileTestClass -+compileTest -+runTest -+ ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/test_data/Test.html 2011-03-25 18:19:45.000000000 +0100 -@@ -0,0 +1,5 @@ -+ -+ -+42 -+ -+ ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/test_data/Test.java 2011-03-28 14:53:50.000000000 +0200 -@@ -0,0 +1,5 @@ -+package test_data; -+ -+public class Test { -+ // nothing here -+} ---- /dev/null 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/javax/tools/JavaFileManager/test_data/Test.txt 2011-03-28 16:15:09.000000000 +0200 -@@ -0,0 +1,2 @@ -+42 -+ ---- openjdk/langtools/test/tools/javac/api/6411310/Test.java 2011-02-28 17:07:32.000000000 +0100 -+++ /dev/null 2011-03-27 16:20:13.277479669 +0200 -@@ -1,254 +0,0 @@ --/* -- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. -- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -- * -- * This code is free software; you can redistribute it and/or modify it -- * under the terms of the GNU General Public License version 2 only, as -- * published by the Free Software Foundation. -- * -- * This code is distributed in the hope that it will be useful, but WITHOUT -- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- * version 2 for more details (a copy is included in the LICENSE file that -- * accompanied this code). -- * -- * You should have received a copy of the GNU General Public License version -- * 2 along with this work; if not, write to the Free Software Foundation, -- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -- * -- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -- * or visit www.oracle.com if you need additional information or have any -- * questions. -- */ -- --/* -- * @test -- * @bug 6410367 6411310 -- * @summary FileObject should support user-friendly names via getName() -- */ -- --import java.io.*; --import java.util.*; --import java.util.jar.*; --import java.util.zip.*; --import javax.tools.*; -- --import com.sun.tools.javac.file.JavacFileManager; --import com.sun.tools.javac.util.Context; --import com.sun.tools.javac.util.Options; -- --// Test FileObject.getName returned from JavacFileManager and its support classes. -- --public class Test { -- public static void main(String... args) throws Exception { -- new Test().run(); -- } -- -- Set foundClasses = new TreeSet(); -- Set foundJars = new TreeSet(); -- -- void run() throws Exception { -- File rt_jar = findRtJar(); -- -- // names for entries to be created in directories and jar files -- String[] entries = { "p/A.java", "p/A.class", "p/resources/A-1.html" }; -- -- // test various combinations of directories and jar files, intended to -- // cover all sources of file objects within JavacFileManager's support classes -- -- test(createFileManager(), createDir("dir", entries), "p", entries); -- test(createFileManager(), createDir("a b/dir", entries), "p", entries); -- -- for (boolean useJavaUtilZip: new boolean[] { false, true }) { -- test(createFileManager(useJavaUtilZip), createJar("jar", entries), "p", entries); -- test(createFileManager(useJavaUtilZip), createJar("jar jar", entries), "p", entries); -- -- for (boolean useSymbolFile: new boolean[] { false, true }) { -- test(createFileManager(useJavaUtilZip, useSymbolFile), rt_jar, "java.lang.ref", null); -- } -- } -- -- if (errors > 0) -- throw new Exception(errors + " errors found"); -- -- // Verify that we hit all the impl classes we intended -- checkCoverage("classes", foundClasses, -- "RegularFileObject", "SymbolFileObject", "ZipFileIndexFileObject", "ZipFileObject"); -- -- // Verify that we hit the jar files we intended, specifically ct.sym as well as rt.jar -- checkCoverage("jar files", foundJars, -- "ct.sym", "jar", "jar jar", "rt.jar"); -- } -- -- // use a new file manager for each test -- void test(StandardJavaFileManager fm, File f, String pkg, String[] entries) throws Exception { -- System.err.println("Test " + f); -- try { -- if (f.isDirectory()) { -- for (File dir: new File[] { f, f.getAbsoluteFile() }) { -- for (String e: entries) { -- JavaFileObject fo = fm.getJavaFileObjects(new File(dir, e)).iterator().next(); -- test(fo, dir, e); -- } -- } -- } -- -- fm.setLocation(StandardLocation.CLASS_PATH, Collections.singleton(f)); -- fm.setLocation(StandardLocation.SOURCE_PATH, Collections.singleton(f.getAbsoluteFile())); -- for (StandardLocation l: EnumSet.of(StandardLocation.CLASS_PATH, StandardLocation.SOURCE_PATH)) { -- for (JavaFileObject fo: fm.list(l, pkg, EnumSet.allOf(JavaFileObject.Kind.class), true)) { -- // we could use fm.getLocation but the following guarantees we preserve the original filename -- File dir = (l == StandardLocation.CLASS_PATH ? f : f.getAbsoluteFile()); -- char sep = (dir.isDirectory() ? File.separatorChar : '/'); -- String b = fm.inferBinaryName(l, fo); -- String e = fo.getKind().extension; -- test(fo, dir, b.replace('.', sep) + e); -- } -- } -- } finally { -- fm.close(); -- } -- } -- -- void test(JavaFileObject fo, File dir, String p) { -- System.err.println("Test: " + fo); -- String expect = dir.isDirectory() ? new File(dir, p).getPath() : (dir.getPath() + "(" + p + ")"); -- String found = fo.getName(); -- // if ct.sym is found, replace it with the equivalent rt.jar -- String found2 = found.replaceAll("lib([\\\\/])ct.sym\\(META-INF/sym/rt.jar/", "jre$1lib$1rt.jar("); -- if (!expect.equals(found2)) { -- System.err.println("expected: " + expect); -- System.err.println(" found: " + found); -- if (!found.equals(found2)) -- System.err.println(" found2: " + found2); -- error("Failed: " + fo); -- } -- -- // record the file object class name for coverage checks later -- foundClasses.add(fo.getClass().getSimpleName()); -- -- if (found.contains("(")) { -- // record access to the jar file for coverage checks later -- foundJars.add(new File(found.substring(0, found.indexOf("("))).getName()); -- } -- } -- -- void checkCoverage(String label, Set found, String... expect) throws Exception { -- Set e = new TreeSet(Arrays.asList(expect)); -- if (!found.equals(e)) { -- e.removeAll(found); -- throw new Exception("expected " + label + " not used: " + e); -- } -- } -- -- JavacFileManager createFileManager() { From jgh at FreeBSD.org Thu Mar 29 09:28:40 2012 From: jgh at FreeBSD.org (Jason Helfman) Date: Thu, 29 Mar 2012 09:28:40 -0700 Subject: porting icedtea6 to FreeBSD In-Reply-To: <33c26e23-17f2-4c60-8b8e-eed23724e25b@zmail17.collab.prod.int.phx2.redhat.com> References: <20120329032532.GA24690@dormouse.experts-exchange.com> <33c26e23-17f2-4c60-8b8e-eed23724e25b@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <20120329162840.GE6444@dormouse.experts-exchange.com> On Thu, Mar 29, 2012 at 05:36:14AM -0400, Andrew Hughes thus spake: >So what's the basis for that? Wouldn't it be better to use that source >code rather than OpenJDK6? I agree. Now that I know what is it doing. > >> I am specifying this for --with-jdk-home What jdk do you suggest here? >> > >> >You don't seem to be using the latest; that would be 1.11.1. If you >> >want >> >to get the end result into IcedTea, you may be better working with >> >the >> >Mercurial version: What makes you say I am not using the latest? I did update to 1.11.1 for this latest build. https://redports.org/browser/jgh/java/icedtea6/Makefile >> >> I really would rather work with the released tarballs to support >> FreeBSD, >> unless something comes up where that can't be done. I'm really not >> convinced >> that I'm doing things right at this point to warrant a different path >> :) >> > >There just doesn't seem much point in working on an old release with issues >that may have already been fixed. Also, to accept any patches you may have, >we'll need them against HEAD not an old release. I'm not working on an old release, though. I am grabbing the same tarball from the same location as the build does for icedtea. I am confused though, as to what actual tarballs I should be grabbing. At the moment, I am taking: jaxp144_03.zip jdk6-jaf-b20.zip jdk6-jaxws2_1_6-2011_06_13.zip openjdk-6-src-b24-14_nov_2011.tar.gz Do I need more? From the build log, it seems this is all that is required. > >> I'm still trying to find out what icedtea does with openjdk :) > >Patches and builds it. Okay. This makes more sense now. > >> > >> >The patch issue is rather odd. Are you rerunning a build over an >> >existing >> >OpenJDK tree as Andrew said? What I'd recommend for ease of >> >debugging is >> >to build in a separate directory: >> >> I believe I am doing that, with the above specified. Do I need to be >> running >> against a different jdk home? There are several to choose from for >> FreeBSD. >> I wonder if this is the issue. However, I switched to use jdk1.6 and >> had the >> same patch related issue. > >The JDK isn't an issue with patching. I just mentioned it because it may >affect things when we actually get to building. > >> >> The text leading up to this was: >> -------------------------- >> |# HG changeset patch >> |# User robm >> |# Date 1322691030 0 >> |# Node ID ee0f12b18cb8d20c3fb61e96817bde6318a29221 >> |# Parent dd8956e41b892ed7102e1d5668781f2c68ea9ac5 >> |7082299: AtomicReferenceArray should ensure that array is Object[] >> |Summary: java.util.concurrent.AtomicReferenceArray needs to ensure >> |that internal array is always Object[]. >> |Reviewed-by: chegar, coffeys >> | >> |diff --git >> |a/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java >> |b/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java >> |--- >> |openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java >> |+++ >> |openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java >> -------------------------- >> Patching file >> openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java >> using Plan A... >> Reversed (or previously applied) patch detected! Assume -R? [y] >> >> > >> >$ mkdir icedtea6-build >> >$ cd icedtea6-build >> >$ ../icedtea6-1.11.1/configure >> >> This may partly my issue. I'm basically guessing what the correct >> options >> are to use. >> >> Here is what I am using currently: >> (LOCALBASE=/usr/local) >> >> --with-ecj-jar=${LOCALBASE}/share/java/classes/ecj-3.7.2.jar \ >> --with-rhino=${LOCALBASE}/share/java/rhino/rhino.jar \ >> --with-jdk-home=/usr/local/openjdk6 \ >> --with-jaxp-drop-zip=${DISTDIR}/jaxp144_03.zip \ >> --with-jaf-drop-zip=${DISTDIR}/jdk6-jaf-b20.zip \ >> --with-jaxws-drop-zip=${DISTDIR}/jdk6-jaxws2_1_6-2011_06_13.zip \ >> --with-openjdk-src-zip=${DISTDIR}/openjdk-6-src-b24-14_nov_2011.tar.gz > >Yes I saw this. All looks fine to me. > >Moving to 1.11 would allow the xerces/xalan dependencies to be dropped >(this change will also be in 1.10.7) Yes, I noticed this with the change to 1.11.1, and removed those from my Makefile. >> >> This has been resolved with later releases, and the patching is >> probably a >> result of misconfigured configured options. > >I doubt it from what I've seen of what you're doing. > >The issue seems to be that your OpenJDK sources are not in the expected state. It is the same checksum, though, and the same location that is fetched during the icedtea build. I just pre-fetch them, and assign it as a configure option. Here is a link to the files with the checksums that are used: https://redports.org/browser/jgh/java/icedtea6/distinfo Thanks! :) -jgh -- Jason Helfman | FreeBSD Committer jgh at FreeBSD.org | http://people.freebsd.org/~jgh From forax at univ-mlv.fr Thu Mar 29 09:48:08 2012 From: forax at univ-mlv.fr (=?utf-8?B?UmVtaSBGb3JheA==?=) Date: Thu, 29 Mar 2012 18:48:08 +0200 Subject: =?utf-8?B?UmU6IFF1ZXN0aW9ucyBvbiBqdm0gaW50ZXJwcmV0ZXI=?= Message-ID: <201203291648.q2TGm0UF024781@monge.univ-mlv.fr> Take a look to java.lang.instrument that allow you to alter the bytecode using by example ASM at runtime. Cheers, R?mi Sent from my Phone ----- Reply message ----- From: "Saravanaraj Velusamy" To: , Subject: Questions on jvm interpreter Date: Thu, Mar 29, 2012 10:20 Hi All, We are trying to alter the branch conditions taken by a java program at run time. For example if a Java code has conditions like this if( var == value1)? ??? PATH1; else ??? PATH2; Lets say we want to it take PATH2 (even though var might be equal to value1). We might not change all branch statements in the class file and we can assume there is another source (say a text file) which contains what conditions needs to be changed. We have two ideas to do the same. 1) To change the bytecode at that point during execution (like changing if_icmpeq to if_icmpne) 2) Find the place which contains the result of the first comparison and complement the result of the comparison. The example has a simple conditional statement. We would also want to consider loops, switch cases later. We would like to know what is the best way to go about and pointers in the code related to this. We are currently looking into bytecodeInterpreter.cpp of Zero instead of hotspot to avoid generated assembly for interpreter. Is there any way to find out the class file belonging to the current opcode ? Since we are not interested in the standard Java class files like String, Integer etc and focus on the ones from the User written classes and methods. We have looked into BCEL, ASM, JVMTI and found out that we cannot change the behavior at run time. Thanks in advance. - Saravanaraj -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120329/4541fbd5/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Mar 29 14:08:19 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 29 Mar 2012 21:08:19 +0000 Subject: [Bug 910] IcedTea-web browser plugin doesn't connect when i launch Oanda forex trading applet. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=910 --- Comment #1 from Deepak Bhole 2012-03-29 21:08:19 UTC --- Can you also post ~/.icedtea/log/* files? They might contain the error. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Thu Mar 29 15:49:25 2012 From: ahughes at redhat.com (Andrew Hughes) Date: Thu, 29 Mar 2012 18:49:25 -0400 (EDT) Subject: porting icedtea6 to FreeBSD In-Reply-To: <20120329162840.GE6444@dormouse.experts-exchange.com> Message-ID: <3f7e7672-2c17-468b-b8f1-707544b49b27@zmail17.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > On Thu, Mar 29, 2012 at 05:36:14AM -0400, Andrew Hughes thus spake: > >So what's the basis for that? Wouldn't it be better to use that > >source > >code rather than OpenJDK6? > > I agree. Now that I know what is it doing. > > > >> I am specifying this for --with-jdk-home > > What jdk do you suggest here? > I don't know what's available on FreeBSD. We've tended to use gcj to get off the starting blocks, but OpenJDK6 works too. > >> > > >> >You don't seem to be using the latest; that would be 1.11.1. If > >> >you > >> >want > >> >to get the end result into IcedTea, you may be better working > >> >with > >> >the > >> >Mercurial version: > > What makes you say I am not using the latest? I did update to 1.11.1 > for > this latest build. > https://redports.org/browser/jgh/java/icedtea6/Makefile Ok I didn't see that. Sorry. As I say, you may still find hg useful for contributing back. > >> > >> I really would rather work with the released tarballs to support > >> FreeBSD, > >> unless something comes up where that can't be done. I'm really not > >> convinced > >> that I'm doing things right at this point to warrant a different > >> path > >> :) > >> > > > >There just doesn't seem much point in working on an old release with > >issues > >that may have already been fixed. Also, to accept any patches you > >may have, > >we'll need them against HEAD not an old release. > > I'm not working on an old release, though. I am grabbing the same > tarball > from the same location as the build does for icedtea. I am confused > though, > as to what actual tarballs I should be grabbing. > > At the moment, I am taking: > > jaxp144_03.zip > jdk6-jaf-b20.zip > jdk6-jaxws2_1_6-2011_06_13.zip > openjdk-6-src-b24-14_nov_2011.tar.gz > > Do I need more? From the build log, it seems this is all that is > required. This looks right (from memory anyway). > > > >> I'm still trying to find out what icedtea does with openjdk :) > > > >Patches and builds it. > > Okay. This makes more sense now. > > > >> > > >> >The patch issue is rather odd. Are you rerunning a build over an > >> >existing > >> >OpenJDK tree as Andrew said? What I'd recommend for ease of > >> >debugging is > >> >to build in a separate directory: > >> > >> I believe I am doing that, with the above specified. Do I need to > >> be > >> running > >> against a different jdk home? There are several to choose from for > >> FreeBSD. > >> I wonder if this is the issue. However, I switched to use jdk1.6 > >> and > >> had the > >> same patch related issue. > > > >The JDK isn't an issue with patching. I just mentioned it because > >it may > >affect things when we actually get to building. > > > >> > >> The text leading up to this was: > >> -------------------------- > >> |# HG changeset patch > >> |# User robm > >> |# Date 1322691030 0 > >> |# Node ID ee0f12b18cb8d20c3fb61e96817bde6318a29221 > >> |# Parent dd8956e41b892ed7102e1d5668781f2c68ea9ac5 > >> |7082299: AtomicReferenceArray should ensure that array is > >> |Object[] > >> |Summary: java.util.concurrent.AtomicReferenceArray needs to > >> |ensure > >> |that internal array is always Object[]. > >> |Reviewed-by: chegar, coffeys > >> | > >> |diff --git > >> |a/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > >> |b/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > >> |--- > >> |openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > >> |+++ > >> |openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > >> -------------------------- > >> Patching file > >> openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java > >> using Plan A... > >> Reversed (or previously applied) patch detected! Assume -R? [y] > >> > >> > > >> >$ mkdir icedtea6-build > >> >$ cd icedtea6-build > >> >$ ../icedtea6-1.11.1/configure > >> > >> This may partly my issue. I'm basically guessing what the correct > >> options > >> are to use. > >> > >> Here is what I am using currently: > >> (LOCALBASE=/usr/local) > >> > >> --with-ecj-jar=${LOCALBASE}/share/java/classes/ecj-3.7.2.jar \ > >> --with-rhino=${LOCALBASE}/share/java/rhino/rhino.jar \ > >> --with-jdk-home=/usr/local/openjdk6 \ > >> --with-jaxp-drop-zip=${DISTDIR}/jaxp144_03.zip \ > >> --with-jaf-drop-zip=${DISTDIR}/jdk6-jaf-b20.zip \ > >> --with-jaxws-drop-zip=${DISTDIR}/jdk6-jaxws2_1_6-2011_06_13.zip \ > >> --with-openjdk-src-zip=${DISTDIR}/openjdk-6-src-b24-14_nov_2011.tar.gz > > > >Yes I saw this. All looks fine to me. > > > >Moving to 1.11 would allow the xerces/xalan dependencies to be > >dropped > >(this change will also be in 1.10.7) > > Yes, I noticed this with the change to 1.11.1, and removed those from > my > Makefile. Good. > >> > >> This has been resolved with later releases, and the patching is > >> probably a > >> result of misconfigured configured options. > > > >I doubt it from what I've seen of what you're doing. > > > >The issue seems to be that your OpenJDK sources are not in the > >expected state. > > It is the same checksum, though, and the same location that is > fetched > during the icedtea build. I just pre-fetch them, and assign it as a > configure option. > Here is a link to the files with the checksums that are used: > https://redports.org/browser/jgh/java/icedtea6/distinfo > Can you provide a log of what happens when you run make? Something is clearly going wrong, but I can't see what if the tarballs are ok. Are you starting from a clean directory? > Thanks! :) > > -jgh > > > -- > Jason Helfman | FreeBSD Committer > jgh at FreeBSD.org | http://people.freebsd.org/~jgh > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From jgh at FreeBSD.org Thu Mar 29 17:04:18 2012 From: jgh at FreeBSD.org (Jason Helfman) Date: Thu, 29 Mar 2012 17:04:18 -0700 Subject: porting icedtea6 to FreeBSD In-Reply-To: <3f7e7672-2c17-468b-b8f1-707544b49b27@zmail17.collab.prod.int.phx2.redhat.com> References: <20120329162840.GE6444@dormouse.experts-exchange.com> <3f7e7672-2c17-468b-b8f1-707544b49b27@zmail17.collab.prod.int.phx2.redhat.com> Message-ID: <20120330000418.GC11448@dormouse.experts-exchange.com> On Thu, Mar 29, 2012 at 06:49:25PM -0400, Andrew Hughes thus spake: >I don't know what's available on FreeBSD. We've tended to use gcj to get >off the starting blocks, but OpenJDK6 works too. I'll try openjdk6 first, and then if I can get it to work try others. >> What makes you say I am not using the latest? I did update to 1.11.1 >> for >> this latest build. >> https://redports.org/browser/jgh/java/icedtea6/Makefile > >Ok I didn't see that. Sorry. >As I say, you may still find hg useful for contributing back. Ok, I'll keep this in mind. >> >> Yes, I noticed this with the change to 1.11.1, and removed those from >> my >> Makefile. > >Good. > >> >> >> >> This has been resolved with later releases, and the patching is >> >> probably a >> >> result of misconfigured configured options. >> > >> >I doubt it from what I've seen of what you're doing. >> > >> >The issue seems to be that your OpenJDK sources are not in the >> >expected state. >> >> It is the same checksum, though, and the same location that is >> fetched >> during the icedtea build. I just pre-fetch them, and assign it as a >> configure option. >> Here is a link to the files with the checksums that are used: >> https://redports.org/browser/jgh/java/icedtea6/distinfo >> > >Can you provide a log of what happens when you run make? Something >is clearly going wrong, but I can't see what if the tarballs are ok. >Are you starting from a clean directory? I am starting from a clean directory every time I build. Attached is the log you've requested. Thanks! -jgh -- Jason Helfman | FreeBSD Committer jgh at FreeBSD.org | http://people.freebsd.org/~jgh -------------- next part -------------- ===> License check disabled, port has not defined LICENSE ===> Extracting for icedtea6-1.11.1 => SHA256 Checksum OK for icedtea6-1.11.1.tar.gz. => SHA256 Checksum OK for jaxp144_03.zip. => SHA256 Checksum OK for jdk6-jaxws2_1_6-2011_06_13.zip. => SHA256 Checksum OK for jdk6-jaf-b20.zip. => SHA256 Checksum OK for openjdk-6-src-b24-14_nov_2011.tar.gz. ===> Patching for icedtea6-1.11.1 /usr/bin/sed -i.bak -e 's|--dry-run||g' /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/Makefile.am /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/Makefile.in /usr/bin/sed -i.bak -e 's|--check|-q|g' /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/Makefile.am /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/Makefile.in ===> icedtea6-1.11.1 depends on executable: gcj46 - found ===> icedtea6-1.11.1 depends on package: eclipse-ecj>=3.7.2 - found ===> icedtea6-1.11.1 depends on package: xalan-j>=2.7.1 - found ===> icedtea6-1.11.1 depends on package: rhino>=1.7.r3 - found ===> icedtea6-1.11.1 depends on package: cups-client>=1.5.2 - found ===> icedtea6-1.11.1 depends on file: /usr/local/libdata/pkgconfig/mozilla-plugin.pc - found ===> icedtea6-1.11.1 depends on executable: pkg-config - found ===> icedtea6-1.11.1 depends on file: /usr/local/openjdk6/bin/java - found ===> icedtea6-1.11.1 depends on file: /usr/local/bin/autoconf-2.68 - found ===> icedtea6-1.11.1 depends on executable: pkg-config - found ===> icedtea6-1.11.1 depends on shared library: jpeg.11 - found ===> icedtea6-1.11.1 depends on shared library: gif.5 - found ===> icedtea6-1.11.1 depends on shared library: esd.2 - found ===> icedtea6-1.11.1 depends on shared library: glib-12.3 - found ===> icedtea6-1.11.1 depends on shared library: gnome.5 - found ===> icedtea6-1.11.1 depends on shared library: gtk-12.2 - found ===> icedtea6-1.11.1 depends on shared library: xml.5 - found ===> icedtea6-1.11.1 depends on shared library: Imlib.5 - found ===> icedtea6-1.11.1 depends on shared library: ORBit.2 - found ===> Configuring for icedtea6-1.11.1 checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... gawk checking whether make sets $(MAKE)... yes checking how to create a pax tar archive... gnutar checking build system type... amd64-portbld-freebsd8.2 checking host system type... amd64-portbld-freebsd8.2 checking for gcc... cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether cc accepts -g... yes checking for cc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of cc... none checking whether we are using the GNU C++ compiler... yes checking whether c++ accepts -g... yes checking dependency style of c++... none checking for make... /usr/bin/make checking for gzip... /usr/bin/gzip checking for ant... /usr/local/bin/ant checking for find... /usr/bin/find checking for patch... /usr/bin/patch checking for tar... /usr/bin/tar checking for chmod... /bin/chmod checking for sha256sum... /sbin/sha256 checking for wget... /dev/null checking for zip... /usr/local/bin/zip checking for unzip... /usr/local/bin/unzip checking for cpio... /usr/bin/cpio checking for file... /usr/bin/file checking for fastjar... no checking for jar... jar checking for ldd... ldd checking for gawk... /usr/local/bin/gawk checking for hg... no checking for an OpenJDK source directory... /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/openjdk checking for lsb_release... no checking whether to compile ecj natively... no checking which HotSpot build to use... original checking for linux32... no checking version of GCC... 4.2.1 (major version 4, minor version 2) checking for getconf... /usr/bin/getconf checking the number of online processors... getconf: no such configuration parameter `_NPROCESSORS_ONLN' 2 checking how many parallel build jobs to execute... 2 checking if cp supports --reflink... no checking if we can hard link rather than copy from /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1... yes checking if a PaX-enabled kernel is running... no checking for system library directory... checking for pkg-config... /usr/local/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for NSS... yes checking whether to disable the execution of the JTReg tests... no checking whether to disable the execution of the HotSpot JTReg tests... no checking whether to disable the execution of the langtools JTReg tests... no checking whether to disable the execution of the JDK JTReg tests... no checking for xvfb-run... no checking for an Ant home directory... /usr/share/ant checking whether to include PulseAudio support... no checking whether to build documentation... yes checking whether to enable experimental OpenJDK cross-compilation support... no checking whether to include the XRender pipeline... yes checking whether to include SystemTap tracing support... no checking whether to include the NSS-based security provider... disabled by default (edit java.security to enable) checking for distribution package version... none checking build identification... Custom build (Thu Mar 29 16:54:09 PDT 2012) checking whether to build a bootstrap version first... yes checking for a JDK home directory... /usr/local/jdk1.6.0 checking if a java binary was specified... no checking if /usr/local/jdk1.6.0/bin/java is a valid executable file... yes checking for javac... /usr/local/bin/javac checking if a javah binary was specified... no checking if /usr/local/jdk1.6.0/bin/javah is a valid executable file... yes checking if a jar binary was specified... no checking if /usr/local/jdk1.6.0/bin/jar is a valid executable file... yes checking whether jar supports @ argument... yes checking whether jar supports stdin file arguments... no checking whether jar supports -J options at the end... yes checking if a rmic binary was specified... no checking if /usr/local/jdk1.6.0/bin/rmic is a valid executable file... yes checking if a native2ascii binary was specified... no checking if /usr/local/jdk1.6.0/bin/native2ascii is a valid executable file... yes checking for an ecj JAR file... /usr/local/share/java/classes/ecj-3.7.2.jar checking for xsltproc... /usr/local/bin/xsltproc checking whether to include Javascript support via Rhino... /usr/local/share/java/rhino/rhino.jar checking for an OpenJDK source zip... /usr/ports/distfiles/openjdk-6-src-b24-14_nov_2011.tar.gz checking for a HotSpot source zip... not specified checking for an alternate jar command... not specified checking for a JAXP drop zip... /usr/ports/distfiles/jaxp144_03.zip checking for a JAF drop zip... /usr/ports/distfiles/jdk6-jaf-b20.zip checking for a JAXWS drop zip... /usr/ports/distfiles/jdk6-jaxws2_1_6-2011_06_13.zip checking whether to use CACAO as VM... no checking for a CACAO home directory... $(abs_top_builddir)/cacao/install checking for a CACAO source zip... not specified checking for a CACAO source directory... not specified checking whether to use JamVM as VM... no checking for a JamVM source zip... not specified checking whether to disable optimizations and build with -O0 -g... no checking whether to use the Shark JIT... no checking how to run the C preprocessor... cpp checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/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... yes checking whether byte ordering is bigendian... no checking for additional virtual machines to build... none checking whether to retrieve the source code from Mercurial... no checking which Mercurial revision to use... tip checking which Java timezone data directory to use... /usr/share/javazi checking if javax.xml.stream.events.Attribute.getDTDType() wrongly returns a QName... no checking if /usr/local/jdk1.6.0/bin/javah exhibits Classpath bug 39408... no checking if /usr/local/jdk1.6.0/bin/javah exhibits Classpath bug 40188... 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 XPROTO... yes checking for XT... yes checking for XP... yes checking for X11... yes checking for XINERAMA... yes checking for XRENDER... yes checking for absolute java home install dir... /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/openjdk.build/j2sdk-image checking for LIBPNG... yes checking for XTST... yes checking for FREETYPE2... yes checking for LIBFFI... yes configure: creating ./config.status config.status: creating Makefile config.status: creating nss.cfg config.status: creating javac config.status: creating javap config.status: creating jvm.cfg config.status: creating ergo.c config.status: creating tz.properties config.status: creating jconsole.desktop config.status: creating policytool.desktop config.status: executing depfiles commands ===> Building for icedtea6-1.11.1 mkdir -p stamps ; if test "xno" != "xno"; then no -O2 -pipe -fno-strict-aliasing -std=gnu89 -Wl,-Bsymbolic -findirect-dispatch -o native-ecj --main=org.eclipse.jdt.internal.compiler.batch.Main /usr/local/share/java/classes/ecj-3.7.2.jar ; fi ; touch stamps/native-ecj.stamp mkdir -p /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/bin stamps/ ln -sf /usr/local/jdk1.6.0/bin/java /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/bin/java ln -sf /usr/local/jdk1.6.0/bin/javah /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/bin/javah ln -sf /usr/local/jdk1.6.0/bin/rmic /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/bin/rmic ln -sf /usr/local/jdk1.6.0/bin/jar /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/bin/jar ln -sf /usr/local/jdk1.6.0/bin/native2ascii /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/bin/native2ascii ln -sf /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/javac /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/bin/javac ln -sf /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/javap /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/bin/javap mkdir -p /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/jre/lib && cp /usr/local/jdk1.6.0/jre/lib/rt.jar /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/jre/lib/rt.jar && ln -sf /usr/local/jdk1.6.0/jre/lib/amd64 /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/jre/lib/ && if ! test -d /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/jre/lib/amd64; then ln -sf ./amd64 /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/jre/lib/amd64; fi; mkdir -p /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/include && for i in /usr/local/jdk1.6.0/include/*; do test -r $i | continue; i=`basename $i`; rm -f /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/include/$i; ln -s /usr/local/jdk1.6.0/include/$i /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/include/$i; done mkdir -p /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/lib && ln -sf /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/jre/lib/rt.jar /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj/lib/tools.jar mkdir -p stamps touch stamps/bootstrap-directory-ecj.stamp rm -f /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/jdk1.6.0 ln -sf /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/ecj /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/bootstrap/jdk1.6.0 mkdir -p stamps touch stamps/bootstrap-directory-symlink-ecj.stamp mkdir -p drops ln -sf /usr/ports/distfiles/jaxp144_03.zip drops/jaxp144_03.zip if ! echo "c1a5348e17b330a7e4b18431e61a40efd2ba99a7da71102cf2c604478ef96012 drops/jaxp144_03.zip" | /sbin/sha256 -q ; then if [ -f drops/jaxp144_03.zip ] ; then mv drops/jaxp144_03.zip drops/jaxp144_03.zip.old ; fi ; /dev/null http://icedtea.classpath.org/download/drops/jaxp144_03.zip -O drops/jaxp144_03.zip; if ! echo "c1a5348e17b330a7e4b18431e61a40efd2ba99a7da71102cf2c604478ef96012 drops/jaxp144_03.zip" | /sbin/sha256 -q ; then echo "ERROR: Bad download of jaxp drop zip"; false; fi; fi ; 6c74f8eac6ca56ac1a0f2d2e9390530bdee2c03c371451cbabd1bb68fbb6598a mkdir -p stamps touch stamps/download-jaxp-drop.stamp mkdir -p drops ln -sf /usr/ports/distfiles/jdk6-jaxws2_1_6-2011_06_13.zip drops/jdk6-jaxws2_1_6-2011_06_13.zip if ! echo "229040544e791f44906e8e7b6f6faf503c730a5d854275135f3925490d5c3be3 drops/jdk6-jaxws2_1_6-2011_06_13.zip" | /sbin/sha256 -q ; then if [ -f drops/jdk6-jaxws2_1_6-2011_06_13.zip ] ; then mv drops/jdk6-jaxws2_1_6-2011_06_13.zip drops/jdk6-jaxws2_1_6-2011_06_13.zip.old ; fi ; /dev/null http://icedtea.classpath.org/download/drops/jdk6-jaxws2_1_6-2011_06_13.zip -O drops/jdk6-jaxws2_1_6-2011_06_13.zip; if ! echo "229040544e791f44906e8e7b6f6faf503c730a5d854275135f3925490d5c3be3 drops/jdk6-jaxws2_1_6-2011_06_13.zip" | /sbin/sha256 -q ; then echo "ERROR: Bad download of jaxws drop zip"; false; fi; fi ; 819ad775a137ec311e1f5d58bb63c45c476e4f827c7709c7c623527a5d726a2b mkdir -p stamps touch stamps/download-jaxws-drop.stamp mkdir -p drops ln -sf /usr/ports/distfiles/jdk6-jaf-b20.zip drops/jdk6-jaf-b20.zip if ! echo "78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012 drops/jdk6-jaf-b20.zip" | /sbin/sha256 -q ; then if [ -f drops/jdk6-jaf-b20.zip ] ; then mv drops/jdk6-jaf-b20.zip drops/jdk6-jaf-b20.zip.old ; fi ; /dev/null http://icedtea.classpath.org/download/drops/jdk6-jaf-b20.zip -O drops/jdk6-jaf-b20.zip; if ! echo "78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012 drops/jdk6-jaf-b20.zip" | /sbin/sha256 -q ; then echo "ERROR: Bad download of jaf drop zip"; false; fi; fi ; 0920f61f02b6a0e57cd1df9ee6c76e84b2b9bcda0c6405779d57e493188d89a3 mkdir -p stamps touch stamps/download-jaf-drop.stamp mkdir -p stamps touch stamps/download-drops.stamp mkdir -p stamps touch stamps/download-cacao.stamp mkdir -p stamps touch stamps/download-jamvm.stamp mkdir -p stamps touch stamps/hgforest.stamp ln -sf /usr/ports/distfiles/openjdk-6-src-b24-14_nov_2011.tar.gz openjdk-6-src-b24-14_nov_2011.tar.gz mkdir -p stamps touch stamps/download-openjdk.stamp mkdir -p stamps touch stamps/download-hotspot.stamp touch stamps/download.stamp set -e ; if ! test -d openjdk ; then mkdir openjdk ; /usr/bin/tar xf openjdk-6-src-b24-14_nov_2011.tar.gz -C openjdk; chmod -R ug+w openjdk ; sh /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/fsg.sh ; fi Further liberating OpenJDK... mkdir -p stamps touch stamps/extract-openjdk.stamp mkdir -p stamps touch stamps/extract-cacao.stamp mkdir -p stamps touch stamps/extract-jamvm.stamp mkdir -p stamps touch stamps/extract.stamp mkdir -p stamps touch stamps/replace-hotspot.stamp for target in /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/tools /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/src/*cpu/* ; do link=$(dirname $target | sed 's/^.*arm_port/openjdk/'); cp -rv -l $target $link; chmod -R ug+rwX $link; done /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/tools -> openjdk/hotspot/tools /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/tools/mkbc.c -> openjdk/hotspot/tools/mkbc.c /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/src/cpu/zero -> openjdk/hotspot/src/cpu/zero /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/src/cpu/zero/vm -> openjdk/hotspot/src/cpu/zero/vm /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp -> openjdk/hotspot/src/cpu/zero/vm/thumb2.cpp /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S -> openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp -> openjdk/hotspot/src/cpu/zero/vm/asm_helper.cpp /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/arm_port/hotspot/src/cpu/zero/vm/bytecodes_arm.def -> openjdk/hotspot/src/cpu/zero/vm/bytecodes_arm.def mkdir -p stamps touch stamps/ports.stamp if [ ! -e /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/generated.build ]; then cp -a /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/generated /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/generated.build && chmod -R ug+rwX /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/generated.build ; fi mkdir -p stamps touch stamps/generated.stamp cp openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.9.properties cp openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.10.properties cp openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.11.properties cp openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.12.properties mkdir -p stamps touch stamps/fonts.stamp mkdir -p stamps ; rm -f stamps/patch-fsg.stamp.tmp ; touch stamps/patch-fsg.stamp.tmp ; all_patches_ok=yes; for p in ; do if test x${all_patches_ok} = "xyes" && echo Checking $p && /usr/bin/patch -l -p0 -s -t -f < /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/$p ; then echo Applying $p ; /usr/bin/patch -l -p0 < /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/$p ; if ! grep "^\* $(basename $p)" /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/HACKING >> stamps/patch-fsg.stamp.tmp ; then echo "* $(basename $p): UNDOCUMENTED" >> stamps/patch-fsg.stamp.tmp ; fi ; else test x${all_patches_ok} = "xyes" && all_patches_ok=$p ; fi ; done ; mv stamps/patch-fsg.stamp.tmp stamps/patch-fsg.stamp ; if ! test x${all_patches_ok} = "xyes"; then echo ERROR patch ${all_patches_ok} FAILED! ; echo WARNING make clean-patch before retrying a fix ; exit 2; fi ; mkdir -p stamps ; rm -f stamps/patch.stamp.tmp ; touch stamps/patch.stamp.tmp ; all_patches_ok=yes; for p in patches/security/20120214/7082299.patch patches/security/20120214/7088367.patch patches/security/20120214/7110683.patch patches/security/20120214/7110687.patch patches/security/20120214/7110700.patch patches/security/20120214/7110704.patch patches/security/20120214/7118283.patch patches/security/20120214/7126960.patch patches/openjdk/6610244-modal-fatal-error-windows.patch patches/stdc-limit-macros.patch patches/openjdk/4993545-nativeinlightfixer.patch patches/openjdk/6637796-set_bounds.patch patches/openjdk/6607660-treelock.patch patches/openjdk/6607170-request_focus.patch patches/openjdk/4685768-focus.patch patches/openjdk/6616323-component_array.patch patches/openjdk/6682046-shape_calculation.patch patches/openjdk/6797195-hw_lw_mixing.patch patches/openjdk/6725214-direct3d-01.patch patches/openjdk/6748082-isDisplayLocal.patch patches/openjdk/6633275-shaped_translucent_windows.patch patches/security/20120214/7112642.patch patches/openjdk/6769607-modal-hangs.patch patches/openjdk/6791612-opengl-jni-fix.patch patches/openjdk/6755274-glgetstring-crash.patch patches/openjdk/6984543-onscreen_rendering_resize_test.patch patches/openjdk/6693253-security_warning.patch patches/openjdk/6444769-windowwithwarningtest.patch patches/notice-safepoints.patch patches/parisc-opt.patch patches/lucene-crash.patch patches/version.patch patches/version-hotspot.patch patches/text-relocations.patch patches/openjdk/7043921-java_rmi_cgi.patch patches/use-system-tzdata.patch patches/headers.patch patches/gcc-suffix.patch patches/memory-limits.patch patches/libraries.patch patches/jvmtiEnv.patch patches/lcms.patch patches/print_lsb_release.patch patches/uname.patch patches/freetypeversion.patch patches/nomotif-6706121.patch patches/nomotif.patch patches/nomotif-mtoolkit.patch patches/alpha-fixes.patch patches/alt-jar.patch patches/jdk-use-ssize_t.patch patches/use-idx_t.patch patches/params-cast-size_t.patch patches/clean-crypto.patch patches/arch.patch patches/lc_ctype.patch patches/xjc.patch patches/linker-libs-order.patch patches/testenv.patch patches/samejvm-safe.patch patches/pr261.patch patches/sparc-buildfixes.patch patches/sparc64-linux.patch patches/sparc-ptracefix.patch patches/sparc-trapsfix.patch patches/jtreg-6592792.patch patches/s390-noinline.patch patches/jtreg-dnd.patch patches/jtreg-jrunscript.patch patches/network-unreachable.patch patches/dnd-filelists.patch patches/disable-cc-incompatible-sanity-checks.patch patches/explicit-target-arch.patch patches/openjdk/7019808-stack_noexec.patch patches/parisc.patch patches/sh4-support.patch patches/policy-evaluation.patch patches/update-bootclasspath.patch patches/openjdk/6959123-libpng_14.patch patches/applet_hole.patch patches/jtreg-httpTest.patch patches/arm.patch patches/debug-dir.patch patches/override-redirect-metacity.patch patches/openjdk/6967533-pre_epoch.patch patches/fonts-rhel.patch patches/fonts-gentoo.patch patches/ipv4-mapped-ipv6-addresses.patch patches/jtreg-OpenGLContextInit.patch patches/openjdk/6510892-httpserver_test.patch patches/openjdk/6638712-wildcard_types.patch patches/openjdk/6650759-missing_inference.patch patches/numa_on_early_glibc.patch patches/jtreg-international-fonts.patch patches/f14-fonts.patch patches/jtreg-T6638712-fix.patch patches/jtreg-T6650759m-fix.patch patches/openjdk/7003777-bad-html-entity-parse.patch patches/jtreg-6929067-fix.patch patches/rendering-engine-tests.patch patches/openjdk/6800846-printing-quality.patch patches/rh661505-jpeg.patch patches/6703377-freetypescaler.patch patches/ia64-fix.patch patches/openjdk/6642612-filechooser_button_sizes.patch patches/jtreg-international-fonts-styles.patch patches/openjdk/6736649-text_bearings.patch patches/openjdk/6797139-jbutton_truncation.patch patches/openjdk/6883341-text_bearing_exception.patch patches/jtreg-png-reader.patch patches/openjdk/4724552-CubicCurve2D.patch patches/openjdk/4493128-CubicCurve2D.patch patches/openjdk/4645692-CubicCurve2D.solveCubic.patch patches/no-static-linking.patch patches/openjdk/7041156-gcc_export_dynamic.patch patches/g344659-sparc_fix.patch patches/openjdk/6728834-blurred-lcd-aa-text.patch patches/openjdk/6749060-bad-lcd-aa-non-opaque-dest.patch patches/openjdk/6708580-exa_slow.patch patches/openjdk/6896068-sg2d.patch patches/openjdk/7021314-no_javaws_man_page.patch patches/pr586-include_all_srcs.patch patches/jtreg-LastErrorString.patch patches/openjdk/6663040-com.sun.awt.patch patches/openjdk/6775317-non-AA-simple-shape-performance.patch patches/pr600-arm-jvm.cfg.patch patches/openjdk/6887494-NPE-in-pisces.patch patches/openjdk/6967436-6967433-floating-pt-conversion.patch patches/openjdk/6976265-stroke-control.patch patches/openjdk/6967434-bad-round-joins.patch patches/openjdk/6766342-AA-simple-shape-performance.patch patches/openjdk/7016856-pisces-performance.patch patches/openjdk/6934977-MappedByteBuffer.load.patch patches/jtreg-hotspot-bug-6196102.patch patches/jtreg-double-to-string.patch patches/openjdk/7023591-AAShapePipe.patch patches/openjdk/7027667-AAShapePipeRegTest.patch patches/openjdk/7019861-AA-regression-fix.patch patches/g356743-libpng-1.5.patch patches/revert-6885123.patch patches/openjdk/7032388-work_without_cmov_instruction.patch patches/openjdk/7031385-gcc-register-allocation-fix.patch patches/openjdk/6986968-crash_on_xim_restart.patch patches/openjdk/7036754-stroker-nan.patch patches/openjdk/pgram-pipe-regression.patch patches/openjdk/7034464-hugepage.patch patches/openjdk/7037939-hugepage.patch patches/openjdk/7043564-hugepage.patch patches/openjdk/mutter.patch patches/fonts-rhel-version.patch patches/openjdk/7036148-npe-null-jmenu-name.patch patches/jtreg-ChangeDir.patch patches/jtreg-TempBuffer.patch patches/jtreg-EncodedMultiByteChar.patch patches/jtreg-FileLoaderTest.patch patches/jtreg-FileMap.patch patches/jtreg-ChannelsWrite.patch patches/jtreg-bug7036148-test.patch patches/jtreg-ReadWriteProfileTest.patch patches/openjdk/6818312-com.sun.awt.SecurityWarning.getSize.patch patches/jtreg-MappedByteBuffer-Basic.patch patches/openjdk/7008106-WindowOpacity.patch patches/openjdk/6956668-misbehavior_of_XOR_operator_with_int.patch patches/openjdk/6699843-IllegalArgumentException_drawString.patch patches/openjdk/6918065-Crash_in_Java2D_blit_loop.patch patches/openjdk/6623219-Font_canDisplayUpTo_does_not_work.patch patches/support_linux_3.patch patches/openjdk/6783910-java_awt_Color_brighter_darker_fix.patch patches/openjdk/6785424-SecurityException_locating_physical_fonts.patch patches/openjdk/7047069-Array_can_dynamically_change_size.patch patches/openjdk/6796786-invalid_FP_identity_transform.patch patches/openjdk/7042070-Typo_in_Test6796786.patch patches/openjdk/6679308-Poor_text_rendering_on_translucent_image.patch patches/openjdk/6842838-64-bit_failure_in_handling_invalid_manifest.patch patches/openjdk/6882768-test_for_6842838_is_broken.patch patches/pr639-broken_shark_build.patch patches/powerpc-stacksize.patch patches/jtreg-remove-test-6987555.patch patches/jtreg-remove-test-6991596.patch patches/openjdk/7036220-shark_llvm_29_headers.patch patches/openjdk/7029152-String_intrinsics_miss_optimization.patch patches/openjdk/6711682-JCheckBox_in_JTable_does_not_respond_to_click.patch patches/openjdk/6758179-D3D_AlphaComposite_is_applied_incorrectly.patch patches/jtreg-ConstructDeflaterInput-fix.patch patches/openjdk/6613904-GroupLayout_createParallelGroup_null_arg.patch patches/openjdk/7049339-anyblit-broken.patch patches/jtreg-hotspot-Test7020373-fix.patch patches/openjdk/4917091-javac_rejects_array_over_128_in_length.patch patches/openjdk/6390045-error_cannot_access_java_lang_void.patch patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch patches/openjdk/6934356-Vector_writeObject_serialization_DL.patch patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch patches/pr690-shark-jit-hs20.patch patches/pr696-zero-fast_aldc-hs20.patch patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch patches/openjdk/5082756-ImageIO_plugins_metadata_boolean_attributes.patch patches/openjdk/6296893-BMP_Writer_handles_TopDown_prop_incorrectly.patch patches/openjdk/7103224-glibc_name_collision.patch patches/arm-debug.patch patches/arm-hsdis.patch patches/openjdk/7103610-_NET_WM_PID_and_WM_CLIENT_MACHINE_are_not_set.patch patches/openjdk/7102369-7094468-rmiregistry.patch patches/openjdk/6851973-kerberos.patch patches/openjdk/7091528-javadoc_class_files.patch patches/openjdk/7103725-ssl_beast_regression.patch patches/openjdk/7140882-dont-return-booleans-from-methods-returning-pointers.patch patches/openjdk/remove-mimpure-option-to-gcc.patch patches/rhino.patch patches/openjdk/6307603-xrender-01.patch patches/openjdk/6961633-xrender-02.patch patches/openjdk/7018387-xrender_gc_leak.patch patches/nss-not-enabled-config.patch ; do if test x${all_patches_ok} = "xyes" && echo Checking $p && /usr/bin/patch -l -p0 -s -t -f < /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/$p ; then echo Applying $p ; /usr/bin/patch -l -p0 < /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/$p ; if ! grep "^\* $(basename $p)" /usr/local/workspace/redports/java/icedtea6/work/icedtea6-1.11.1/HACKING >> stamps/patch.stamp.tmp ; then echo "* $(basename $p): UNDOCUMENTED" >> stamps/patch.stamp.tmp ; fi ; else test x${all_patches_ok} = "xyes" && all_patches_ok=$p ; fi ; done ; mv stamps/patch.stamp.tmp stamps/patch.stamp ; if ! test x${all_patches_ok} = "xyes"; then echo ERROR patch ${all_patches_ok} FAILED! ; echo WARNING make clean-patch before retrying a fix ; exit 2; fi Checking patches/security/20120214/7082299.patch Applying patches/security/20120214/7082299.patch Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |# HG changeset patch |# User robm |# Date 1322691030 0 |# Node ID ee0f12b18cb8d20c3fb61e96817bde6318a29221 |# Parent dd8956e41b892ed7102e1d5668781f2c68ea9ac5 |7082299: AtomicReferenceArray should ensure that array is Object[] |Summary: java.util.concurrent.AtomicReferenceArray needs to ensure that internal array is always Object[]. |Reviewed-by: chegar, coffeys | |diff --git a/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java b/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java |--- openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java |+++ openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java -------------------------- Patching file openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java using Plan A... Reversed (or previously applied) patch detected! Assume -R? [y] From Dmitry.Samersoff at oracle.com Thu Mar 29 22:44:39 2012 From: Dmitry.Samersoff at oracle.com (Dmitry Samersoff) Date: Fri, 30 Mar 2012 09:44:39 +0400 Subject: Questions on jvm interpreter In-Reply-To: <201203291648.q2TGm0UF024781@monge.univ-mlv.fr> References: <201203291648.q2TGm0UF024781@monge.univ-mlv.fr> Message-ID: <4F754847.2080600@oracle.com> Saravanaraj, I would recommend method below: 1. Add a static method to your class. Use value returned by this method to drive all conditions. 2. Use ASM library to change body of this static method as necessary in runtime. -Dmitry On 2012-03-29 20:48, Remi Forax wrote: > Take a look to java.lang.instrument that allow you to alter the bytecode > using by example ASM at runtime. > > Cheers, > R?mi > > Sent from my Phone > > ----- Reply message ----- > From: "Saravanaraj Velusamy" > To: , > > Subject: Questions on jvm interpreter > Date: Thu, Mar 29, 2012 10:20 > > > Hi All, > > We are trying to alter the branch conditions taken by a java program at > run time. > > For example if a Java code has conditions like this > > if( var == value1) > PATH1; > else > PATH2; > > Lets say we want to it take PATH2 (even though var might be equal to > value1). We might not change all branch statements in the class file and > we can assume there is another source (say a text file) which contains > what conditions needs to be changed. > > We have two ideas to do the same. > 1) To change the bytecode at that point during execution (like changing > if_icmpeq to if_icmpne) > 2) Find the place which contains the result of the first comparison and > complement the result of the comparison. > > The example has a simple conditional statement. We would also want to > consider loops, switch cases later. > > We would like to know what is the best way to go about and pointers in > the code related to this. We are currently looking into > bytecodeInterpreter.cpp of Zero instead of hotspot to avoid generated > assembly for interpreter. > Is there any way to find out the class file belonging to the current > opcode ? Since we are not interested in the standard Java class files > like String, Integer etc and focus on the ones from the User written > classes and methods. > > We have looked into BCEL, ASM, JVMTI and found out that we cannot change > the behavior at run time. > > Thanks in advance. > - Saravanaraj -- Dmitry Samersoff Java Hotspot development team, SPB04 * There will come soft rains ... From svelusa at ncsu.edu Thu Mar 29 23:13:01 2012 From: svelusa at ncsu.edu (Saravanaraj Velusamy) Date: Fri, 30 Mar 2012 02:13:01 -0400 Subject: Questions on jvm interpreter In-Reply-To: <4F754847.2080600@oracle.com> References: <201203291648.q2TGm0UF024781@monge.univ-mlv.fr> <4F754847.2080600@oracle.com> Message-ID: Dmitry et al, Thanks a ton for your inputs. I forgot to mention an important constraint. We will have access only to the compiled class file and not the source. So we are of the opinion that modifying jvm interpreter or the usage of low level bytecode manipulation library are our only options to solve the problem. Please correct, if our understanding is wrong. Regards, Saravanaraj On Fri, Mar 30, 2012 at 1:44 AM, Dmitry Samersoff < Dmitry.Samersoff at oracle.com> wrote: > Saravanaraj, > > I would recommend method below: > 1. Add a static method to your class. > Use value returned by this method to drive all conditions. > 2. Use ASM library to change body of this static method as necessary > in runtime. > > -Dmitry > > > On 2012-03-29 20:48, Remi Forax wrote: > > Take a look to java.lang.instrument that allow you to alter the bytecode > > using by example ASM at runtime. > > > > Cheers, > > R?mi > > > > Sent from my Phone > > > > ----- Reply message ----- > > From: "Saravanaraj Velusamy" > > To: , > > > > Subject: Questions on jvm interpreter > > Date: Thu, Mar 29, 2012 10:20 > > > > > > Hi All, > > > > We are trying to alter the branch conditions taken by a java program at > > run time. > > > > For example if a Java code has conditions like this > > > > if( var == value1) > > PATH1; > > else > > PATH2; > > > > Lets say we want to it take PATH2 (even though var might be equal to > > value1). We might not change all branch statements in the class file and > > we can assume there is another source (say a text file) which contains > > what conditions needs to be changed. > > > > We have two ideas to do the same. > > 1) To change the bytecode at that point during execution (like changing > > if_icmpeq to if_icmpne) > > 2) Find the place which contains the result of the first comparison and > > complement the result of the comparison. > > > > The example has a simple conditional statement. We would also want to > > consider loops, switch cases later. > > > > We would like to know what is the best way to go about and pointers in > > the code related to this. We are currently looking into > > bytecodeInterpreter.cpp of Zero instead of hotspot to avoid generated > > assembly for interpreter. > > Is there any way to find out the class file belonging to the current > > opcode ? Since we are not interested in the standard Java class files > > like String, Integer etc and focus on the ones from the User written > > classes and methods. > > > > We have looked into BCEL, ASM, JVMTI and found out that we cannot change > > the behavior at run time. > > > > Thanks in advance. > > - Saravanaraj > > > -- > Dmitry Samersoff > Java Hotspot development team, SPB04 > * There will come soft rains ... > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120330/116f3b57/attachment.html From Dmitry.Samersoff at oracle.com Fri Mar 30 01:51:56 2012 From: Dmitry.Samersoff at oracle.com (Dmitry Samersoff) Date: Fri, 30 Mar 2012 12:51:56 +0400 Subject: Questions on jvm interpreter In-Reply-To: References: <201203291648.q2TGm0UF024781@monge.univ-mlv.fr> <4F754847.2080600@oracle.com> Message-ID: <4F75742C.3000107@oracle.com> Saravanaraj, Changing condition on fly is not a straightforward, (* but doable *) because you have to change switch table as well as a number comparison bytecodes. Leaving out of scope licensing problem, you can try to use one of existing decompiler to decompile a class file back to java and change as match as you can off line. Also you can consider to write a C code to manipulate bytecode instead of using ASM - see see hprof in ivmti demo directory. -Dmitry On 2012-03-30 10:13, Saravanaraj Velusamy wrote: > Dmitry et al, > > Thanks a ton for your inputs. > > I forgot to mention an important constraint. We will have access only to > the compiled class file and not the source. So we are of the opinion > that modifying jvm interpreter or the usage of low level bytecode > manipulation library are our only options to solve the problem. > > Please correct, if our understanding is wrong. > > Regards, > Saravanaraj > > > On Fri, Mar 30, 2012 at 1:44 AM, Dmitry Samersoff > > wrote: > > Saravanaraj, > > I would recommend method below: > 1. Add a static method to your class. > Use value returned by this method to drive all conditions. > 2. Use ASM library to change body of this static method as necessary > in runtime. > > -Dmitry > > > On 2012-03-29 20:48, Remi Forax wrote: > > Take a look to java.lang.instrument that allow you to alter the > bytecode > > using by example ASM at runtime. > > > > Cheers, > > R?mi > > > > Sent from my Phone > > > > ----- Reply message ----- > > From: "Saravanaraj Velusamy" > > > To: >, > > > > > Subject: Questions on jvm interpreter > > Date: Thu, Mar 29, 2012 10:20 > > > > > > Hi All, > > > > We are trying to alter the branch conditions taken by a java > program at > > run time. > > > > For example if a Java code has conditions like this > > > > if( var == value1) > > PATH1; > > else > > PATH2; > > > > Lets say we want to it take PATH2 (even though var might be equal to > > value1). We might not change all branch statements in the class > file and > > we can assume there is another source (say a text file) which contains > > what conditions needs to be changed. > > > > We have two ideas to do the same. > > 1) To change the bytecode at that point during execution (like > changing > > if_icmpeq to if_icmpne) > > 2) Find the place which contains the result of the first > comparison and > > complement the result of the comparison. > > > > The example has a simple conditional statement. We would also want to > > consider loops, switch cases later. > > > > We would like to know what is the best way to go about and pointers in > > the code related to this. We are currently looking into > > bytecodeInterpreter.cpp of Zero instead of hotspot to avoid generated > > assembly for interpreter. > > Is there any way to find out the class file belonging to the current > > opcode ? Since we are not interested in the standard Java class files > > like String, Integer etc and focus on the ones from the User written > > classes and methods. > > > > We have looked into BCEL, ASM, JVMTI and found out that we cannot > change > > the behavior at run time. > > > > Thanks in advance. > > - Saravanaraj > > > -- > Dmitry Samersoff > Java Hotspot development team, SPB04 > * There will come soft rains ... > > -- Dmitry Samersoff Java Hotspot development team, SPB04 * There will come soft rains ... From ahughes at redhat.com Fri Mar 30 06:52:54 2012 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 30 Mar 2012 14:52:54 +0100 Subject: [2.1 Branch - PATCH FOR REVIEW] Bump changesets Message-ID: <20120330135254.GA21735@rivendell.middle-earth.co.uk> This simple patch bumps the changesets for IcedTea7 2.1 to their latest. A standard full build with systemtap and NSS completes. /home/andrew/projects/openjdk/icedtea7-2.1/configure --with-parallel-jobs=9 --with-jdk-home=/home/andrew/build/jamvm-jdk --with-openjdk-src-zip=/home/downloads/java/icedtea7/2.1/openjdk.tar.gz --with-cacao-src-zip=/home/downloads/java/cacao/cacao7.tar.gz --enable-pulse-java --with-hotspot-src-zip=/home/downloads/java/icedtea7/2.1/hotspot.tar.gz --with-corba-src-zip=/home/downloads/java/icedtea7/2.1/corba.tar.gz --build=x86_64-pc-linux-gnu --disable-jdk-tests --disable-langtools-tests --disable-hotspot-tests --with-jaxp-src-zip=/home/downloads/java/icedtea7/2.1/jaxp.tar.gz --with-jaxws-src-zip=/home/downloads/java/icedtea7/2.1/jaxws.tar.gz --with-jdk-src-zip=/home/downloads/java/icedtea7/2.1/jdk.tar.gz --with-langtools-src-zip=/home/downloads/java/icedtea7/2.1/langtools.tar.gz --enable-systemtap --with-abs-install-dir=/home/andrew/build/icedtea7-2.1 --enable-nss --with-jamvm-src-zip=/home/downloads/java/jamvm/jamvm7.tar.gz --with-javah=/home/andrew/build/jamvm-jdk/bin/javah 2012-03-29 Andrew John Hughes * Makefile.am: (HOTSPOT_CHANGESET): Sync to HEAD. (JDK_CHANGESET): Likewise. (HOTSPOT_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. Ok for 2.1? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 -------------- next part -------------- diff --git a/Makefile.am b/Makefile.am --- a/Makefile.am +++ b/Makefile.am @@ -5,18 +5,18 @@ COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) CORBA_CHANGESET = 5617f6c5cc94 -HOTSPOT_CHANGESET = 0e651e004747 +HOTSPOT_CHANGESET = 30c4dc24823a JAXP_CHANGESET = 1cf75c0e2c96 JAXWS_CHANGESET = 7edfbfe974f2 -JDK_CHANGESET = 50f6f276a06c +JDK_CHANGESET = 2d8ad70a2243 LANGTOOLS_CHANGESET = b534c4c6cd9b OPENJDK_CHANGESET = 22cc03983e20 CORBA_SHA256SUM = 963915483530f311ff313635f79ed11ea7ce5a1c0dbee5d1acb1994132857fa3 -HOTSPOT_SHA256SUM = d68455e5cdb14280cd61155a4e9d531e90b073607f4367e93ead0fcf34476ae1 +HOTSPOT_SHA256SUM = 1a9290c85a280a21256c96e98f2461a88481d63fc4792725845caaeb155fa623 JAXP_SHA256SUM = 8ce48c704f38285207ee6dc56c45b2d214083b4d4d36be02901401b594ce701e JAXWS_SHA256SUM = 823ca6b8fd780bf1b1565a90cfc8ec6f0ee422a5d25ffb20b1ce0272dc4955aa -JDK_SHA256SUM = 5f8b5edbebb358730425e64a31eaa11c346467ba10ffe1848f2d2ad2ea53bc3d +JDK_SHA256SUM = a3f1748212086feb3351772c1bc3eb6a2918fac474a37bec219d97b668676f40 LANGTOOLS_SHA256SUM = c77dd42d83f06d18fa8aa65c93d137608a2e02cf24b68fc10d7b1c0bcc12a93c OPENJDK_SHA256SUM = ada790b4754f521ebfad0dd909ea29b92b2b3c1b84b2e99d32673343727d95d7 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120330/1e81812d/attachment.bin From dbhole at redhat.com Fri Mar 30 06:58:49 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 30 Mar 2012 09:58:49 -0400 Subject: [2.1 Branch - PATCH FOR REVIEW] Bump changesets In-Reply-To: <20120330135254.GA21735@rivendell.middle-earth.co.uk> References: <20120330135254.GA21735@rivendell.middle-earth.co.uk> Message-ID: <20120330135848.GI14039@redhat.com> * Dr Andrew John Hughes [2012-03-30 09:54]: > This simple patch bumps the changesets for IcedTea7 2.1 to their > latest. A standard full build with systemtap and NSS completes. > Looks good to me. OK for 2.1. Cheers, Deepak > /home/andrew/projects/openjdk/icedtea7-2.1/configure --with-parallel-jobs=9 --with-jdk-home=/home/andrew/build/jamvm-jdk --with-openjdk-src-zip=/home/downloads/java/icedtea7/2.1/openjdk.tar.gz --with-cacao-src-zip=/home/downloads/java/cacao/cacao7.tar.gz --enable-pulse-java --with-hotspot-src-zip=/home/downloads/java/icedtea7/2.1/hotspot.tar.gz --with-corba-src-zip=/home/downloads/java/icedtea7/2.1/corba.tar.gz --build=x86_64-pc-linux-gnu --disable-jdk-tests --disable-langtools-tests --disable-hotspot-tests --with-jaxp-src-zip=/home/downloads/java/icedtea7/2.1/jaxp.tar.gz --with-jaxws-src-zip=/home/downloads/java/icedtea7/2.1/jaxws.tar.gz --with-jdk-src-zip=/home/downloads/java/icedtea7/2.1/jdk.tar.gz --with-langtools-src-zip=/home/downloads/java/icedtea7/2.1/langtools.tar.gz --enable-systemtap --with-abs-install-dir=/home/andrew/build/icedtea7-2.1 --enable-nss --with-jamvm-src-zip=/home/downloads/java/jamvm/jamvm7.tar.gz --with-javah=/home/andrew/build/jamvm-jdk/bin/javah > > 2012-03-29 Andrew John Hughes > > * Makefile.am: > (HOTSPOT_CHANGESET): Sync to HEAD. > (JDK_CHANGESET): Likewise. > (HOTSPOT_SHA256SUM): Likewise. > (JDK_SHA256SUM): Likewise. > > Ok for 2.1? > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > diff --git a/Makefile.am b/Makefile.am > --- a/Makefile.am > +++ b/Makefile.am > @@ -5,18 +5,18 @@ > COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) > > CORBA_CHANGESET = 5617f6c5cc94 > -HOTSPOT_CHANGESET = 0e651e004747 > +HOTSPOT_CHANGESET = 30c4dc24823a > JAXP_CHANGESET = 1cf75c0e2c96 > JAXWS_CHANGESET = 7edfbfe974f2 > -JDK_CHANGESET = 50f6f276a06c > +JDK_CHANGESET = 2d8ad70a2243 > LANGTOOLS_CHANGESET = b534c4c6cd9b > OPENJDK_CHANGESET = 22cc03983e20 > > CORBA_SHA256SUM = 963915483530f311ff313635f79ed11ea7ce5a1c0dbee5d1acb1994132857fa3 > -HOTSPOT_SHA256SUM = d68455e5cdb14280cd61155a4e9d531e90b073607f4367e93ead0fcf34476ae1 > +HOTSPOT_SHA256SUM = 1a9290c85a280a21256c96e98f2461a88481d63fc4792725845caaeb155fa623 > JAXP_SHA256SUM = 8ce48c704f38285207ee6dc56c45b2d214083b4d4d36be02901401b594ce701e > JAXWS_SHA256SUM = 823ca6b8fd780bf1b1565a90cfc8ec6f0ee422a5d25ffb20b1ce0272dc4955aa > -JDK_SHA256SUM = 5f8b5edbebb358730425e64a31eaa11c346467ba10ffe1848f2d2ad2ea53bc3d > +JDK_SHA256SUM = a3f1748212086feb3351772c1bc3eb6a2918fac474a37bec219d97b668676f40 > LANGTOOLS_SHA256SUM = c77dd42d83f06d18fa8aa65c93d137608a2e02cf24b68fc10d7b1c0bcc12a93c > OPENJDK_SHA256SUM = ada790b4754f521ebfad0dd909ea29b92b2b3c1b84b2e99d32673343727d95d7 > From xerxes at zafena.se Fri Mar 30 07:04:18 2012 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Fri, 30 Mar 2012 16:04:18 +0200 Subject: [2.1 Branch - PATCH FOR REVIEW] Bump changesets - ok Message-ID: <4F75BD62.7050905@zafena.se> > This simple patch bumps the changesets for IcedTea7 2.1 to their > latest. A standard full build with systemtap and NSS completes. > > /home/andrew/projects/openjdk/icedtea7-2.1/configure --with-parallel-jobs=9 --with-jdk-home=/home/andrew/build/jamvm-jdk --with-openjdk-src-zip=/home/downloads/java/icedtea7/2.1/openjdk.tar.gz --with-cacao-src-zip=/home/downloads/java/cacao/cacao7.tar.gz --enable-pulse-java --with-hotspot-src-zip=/home/downloads/java/icedtea7/2.1/hotspot.tar.gz --with-corba-src-zip=/home/downloads/java/icedtea7/2.1/corba.tar.gz --build=x86_64-pc-linux-gnu --disable-jdk-tests --disable-langtools-tests --disable-hotspot-tests --with-jaxp-src-zip=/home/downloads/java/icedtea7/2.1/jaxp.tar.gz --with-jaxws-src-zip=/home/downloads/java/icedtea7/2.1/jaxws.tar.gz --with-jdk-src-zip=/home/downloads/java/icedtea7/2.1/jdk.tar.gz --with-langtools-src-zip=/home/downloads/java/icedtea7/2.1/langtools.tar.gz --enable-systemtap --with-abs-install-dir=/home/andrew/build/icedtea7-2.1 --enable-nss --with-jamvm-src-zip=/home/downloads/java/jamvm/jamvm7.tar.gz --with-javah=/home/andrew/build/jamvm-jdk/bin/javah > > 2012-03-29 Andrew John Hughes > > * Makefile.am: > (HOTSPOT_CHANGESET): Sync to HEAD. > (JDK_CHANGESET): Likewise. > (HOTSPOT_SHA256SUM): Likewise. > (JDK_SHA256SUM): Likewise. > > Ok for 2.1? > -- > Andrew :) Yes, this patch are good, no extra white-space that can break the build, sha256sums match. Please push to the icedtea7-2.1 branch! Cheers Xerxes > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > -------------- next part -------------- > diff --git a/Makefile.am b/Makefile.am > --- a/Makefile.am > +++ b/Makefile.am > @@ -5,18 +5,18 @@ > COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) > > CORBA_CHANGESET = 5617f6c5cc94 > -HOTSPOT_CHANGESET = 0e651e004747 > +HOTSPOT_CHANGESET = 30c4dc24823a > JAXP_CHANGESET = 1cf75c0e2c96 > JAXWS_CHANGESET = 7edfbfe974f2 > -JDK_CHANGESET = 50f6f276a06c > +JDK_CHANGESET = 2d8ad70a2243 > LANGTOOLS_CHANGESET = b534c4c6cd9b > OPENJDK_CHANGESET = 22cc03983e20 > > CORBA_SHA256SUM = 963915483530f311ff313635f79ed11ea7ce5a1c0dbee5d1acb1994132857fa3 > -HOTSPOT_SHA256SUM = d68455e5cdb14280cd61155a4e9d531e90b073607f4367e93ead0fcf34476ae1 > +HOTSPOT_SHA256SUM = 1a9290c85a280a21256c96e98f2461a88481d63fc4792725845caaeb155fa623 > JAXP_SHA256SUM = 8ce48c704f38285207ee6dc56c45b2d214083b4d4d36be02901401b594ce701e > JAXWS_SHA256SUM = 823ca6b8fd780bf1b1565a90cfc8ec6f0ee422a5d25ffb20b1ce0272dc4955aa > -JDK_SHA256SUM = 5f8b5edbebb358730425e64a31eaa11c346467ba10ffe1848f2d2ad2ea53bc3d > +JDK_SHA256SUM = a3f1748212086feb3351772c1bc3eb6a2918fac474a37bec219d97b668676f40 > LANGTOOLS_SHA256SUM = c77dd42d83f06d18fa8aa65c93d137608a2e02cf24b68fc10d7b1c0bcc12a93c > OPENJDK_SHA256SUM = ada790b4754f521ebfad0dd909ea29b92b2b3c1b84b2e99d32673343727d95d7 > From ddadacha at redhat.com Fri Mar 30 12:59:58 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 30 Mar 2012 15:59:58 -0400 Subject: [RFC][icedtea-web] Fix JarSigner to check that cert start dates have passed Message-ID: <4F7610BE.7070703@redhat.com> Hi, Currently, JarSigner never sets notYetValidCert to true, the notBefore date is never checked when sorting out the certificates. If it were true, the certificate would be considered as having signing issues and all the unverified prompts would start triggering. Attached is a patch to fix this, everything else is already taken care of WRT notYetValidCert being checked in other places. ChangeLog +2012-03-30 Danesh Dadachanji + + Certificate start dates are not being checked, they are still verified + even if the date has yet not been reached. + * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): If the start + date is in the future, set notYetValidCert to true. + Okay for HEAD? Thoughts on backporting? I don't think this should wait to be backported since currently it is verifying certificates it should not be letting through, misleading users when dialogs prompt. Cheers, Danesh -------------- next part -------------- A non-text attachment was scrubbed... Name: not-yet-valid-certs.patch Type: text/x-patch Size: 1299 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120330/0813e979/not-yet-valid-certs.patch From dbhole at redhat.com Fri Mar 30 13:20:49 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 30 Mar 2012 16:20:49 -0400 Subject: [RFC][icedtea-web] Fix JarSigner to check that cert start dates have passed In-Reply-To: <4F7610BE.7070703@redhat.com> References: <4F7610BE.7070703@redhat.com> Message-ID: <20120330202049.GM14039@redhat.com> * Danesh Dadachanji [2012-03-30 16:02]: > Hi, > > Currently, JarSigner never sets notYetValidCert to true, the > notBefore date is never checked when sorting out the certificates. > If it were true, the certificate would be considered as having > signing issues and all the unverified prompts would start > triggering. Attached is a patch to fix this, everything else is > already taken care of WRT notYetValidCert being checked in other > places. > > ChangeLog > +2012-03-30 Danesh Dadachanji > + > + Certificate start dates are not being checked, they are still verified > + even if the date has yet not been reached. > + * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): If the start > + date is in the future, set notYetValidCert to true. > + > > > Okay for HEAD? Thoughts on backporting? I don't think this should > wait to be backported since currently it is verifying certificates > it should not be letting through, misleading users when dialogs > prompt. > I think this one is fine for 1.1 and 1.2 in addition to HEAD. Cheers, Deepak From ddadacha at redhat.com Fri Mar 30 14:04:32 2012 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 30 Mar 2012 17:04:32 -0400 Subject: [RFC][icedtea-web] Fix JarSigner to check that cert start dates have passed In-Reply-To: <20120330202049.GM14039@redhat.com> References: <4F7610BE.7070703@redhat.com> <20120330202049.GM14039@redhat.com> Message-ID: <4F761FE0.8090802@redhat.com> On 30/03/12 04:20 PM, Deepak Bhole wrote: > * Danesh Dadachanji [2012-03-30 16:02]: >> Hi, >> >> Currently, JarSigner never sets notYetValidCert to true, the >> notBefore date is never checked when sorting out the certificates. >> If it were true, the certificate would be considered as having >> signing issues and all the unverified prompts would start >> triggering. Attached is a patch to fix this, everything else is >> already taken care of WRT notYetValidCert being checked in other >> places. >> >> ChangeLog >> +2012-03-30 Danesh Dadachanji >> + >> + Certificate start dates are not being checked, they are still verified >> + even if the date has yet not been reached. >> + * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): If the start >> + date is in the future, set notYetValidCert to true. >> + >> >> >> Okay for HEAD? Thoughts on backporting? I don't think this should >> wait to be backported since currently it is verifying certificates >> it should not be letting through, misleading users when dialogs >> prompt. >> > > I think this one is fine for 1.1 and 1.2 in addition to HEAD. Bah noticed a bug in the patch, if the cert expires in 6 months or less, that flag is set and the notYetValidCert isn't. I tested it with a 365 day valid cert the first time around. :S Updated patch in attachment, ChangeLog is the same. Thanks to Omair's comment, I did a slightly more extensive search on where notBefore() is called as well as my original search for "notYetValidCert", everything looks logical now. I've now tested this with: - a cert that has notBefore=$YESTERDAY, notAfter=$TOMORROW: Both "not yet valid" and "expiring in 6 months" warnings show in More Info dialog. - a cert that has notBefore=$YESTERDAY, notAfter=$NEXT_YEAR: Just "not yet valid" warning shows in More Info dialog. Is there anything else I should test? /me can't think of anything off the bat. Cheers, Danesh -------------- next part -------------- A non-text attachment was scrubbed... Name: not-yet-valid-certs-02.patch Type: text/x-patch Size: 1162 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20120330/f0b07da6/not-yet-valid-certs-02.patch From dbhole at redhat.com Fri Mar 30 14:22:32 2012 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 30 Mar 2012 17:22:32 -0400 Subject: [RFC][icedtea-web] Fix JarSigner to check that cert start dates have passed In-Reply-To: <4F761FE0.8090802@redhat.com> References: <4F7610BE.7070703@redhat.com> <20120330202049.GM14039@redhat.com> <4F761FE0.8090802@redhat.com> Message-ID: <20120330212231.GO14039@redhat.com> * Danesh Dadachanji [2012-03-30 17:04]: > On 30/03/12 04:20 PM, Deepak Bhole wrote: > >* Danesh Dadachanji [2012-03-30 16:02]: > >>Hi, > >> > >>Currently, JarSigner never sets notYetValidCert to true, the > >>notBefore date is never checked when sorting out the certificates. > >>If it were true, the certificate would be considered as having > >>signing issues and all the unverified prompts would start > >>triggering. Attached is a patch to fix this, everything else is > >>already taken care of WRT notYetValidCert being checked in other > >>places. > >> > >>ChangeLog > >>+2012-03-30 Danesh Dadachanji > >>+ > >>+ Certificate start dates are not being checked, they are still verified > >>+ even if the date has yet not been reached. > >>+ * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): If the start > >>+ date is in the future, set notYetValidCert to true. > >>+ > >> > >> > >>Okay for HEAD? Thoughts on backporting? I don't think this should > >>wait to be backported since currently it is verifying certificates > >>it should not be letting through, misleading users when dialogs > >>prompt. > >> > > > >I think this one is fine for 1.1 and 1.2 in addition to HEAD. > > Bah noticed a bug in the patch, if the cert expires in 6 months or > less, that flag is set and the notYetValidCert isn't. I tested it > with a 365 day valid cert the first time around. :S > This looks fine. Btw, do we really need a warning for something about to expire? Until it expires, the cert is completely valid. Perhaps we should remove it? Cheers, Deepak > Updated patch in attachment, ChangeLog is the same. Thanks to > Omair's comment, I did a slightly more extensive search on where > notBefore() is called as well as my original search for > "notYetValidCert", everything looks logical now. > > I've now tested this with: > - a cert that has notBefore=$YESTERDAY, notAfter=$TOMORROW: Both > "not yet valid" and "expiring in 6 months" warnings show in More > Info dialog. > - a cert that has notBefore=$YESTERDAY, notAfter=$NEXT_YEAR: Just > "not yet valid" warning shows in More Info dialog. > > Is there anything else I should test? /me can't think of anything > off the bat. > > Cheers, > Danesh > diff --git a/netx/net/sourceforge/jnlp/tools/JarSigner.java b/netx/net/sourceforge/jnlp/tools/JarSigner.java > --- a/netx/net/sourceforge/jnlp/tools/JarSigner.java > +++ b/netx/net/sourceforge/jnlp/tools/JarSigner.java > @@ -297,9 +297,15 @@ public class JarSigner implements CertVe > if (cert instanceof X509Certificate) { > checkCertUsage((X509Certificate) cert, null); > if (!showcerts) { > + long notBefore = ((X509Certificate) cert) > + .getNotBefore().getTime(); > long notAfter = ((X509Certificate) cert) > .getNotAfter().getTime(); > > + if (now < notBefore) { > + notYetValidCert = true; > + } > + > if (notAfter < now) { > hasExpiredCert = true; > } else if (notAfter < now + SIX_MONTHS) { From bugzilla-daemon at icedtea.classpath.org Sat Mar 31 08:00:17 2012 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 31 Mar 2012 15:00:17 +0000 Subject: [Bug 911] New: Server minecraft crashed. that would make that work? Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=911 Bug #: 911 Summary: Server minecraft crashed. that would make that work? Classification: Unclassified Product: IcedTea Version: 6-hg Platform: 64-bit OS/Version: Linux Status: NEW Severity: critical Priority: P3 Component: JamVM AssignedTo: xerxes at zafena.se ReportedBy: bam99 at ya.ru CC: unassigned at icedtea.classpath.org Created attachment 679 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=679 # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f00bd61e43f, pid=1932, tid=139641251747584 # # JRE version: 6.0_18-b18 # Java VM: OpenJDK 64-Bit Se -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.