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